IP Library Granted Patent US 12,395,459
Granted Patent B2
US 12,395,459 · App. 18/458,492 · Granted Aug 19, 2025

Logic injection in messaging state machines

Inventors: Dana Majid (Amsterdam, NL); Robert Vis (Amsterdam, NL)
Assignee: MessageBird BidCo B.V.
H04L51/23H04L51/222H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,395,459
App. No.
18/458,492
Granted
Aug 19, 2025
Kind
B2
Abstract

A computer-implemented method, comprising using a message application processor, receiving a first request from a separate application server computer executing a particular computer program application to create and cause sending a digital electronic mess age; in response to the request, the message application processor creating the message and assigning a status value to the message, the status value being associated with a first state of the message; the message application processor causing the message to transition to a subsequent state; the message application processor performing a flow hook lookup to determine whether a flow definition is associated with the transition from the first state to the subsequent state and with the particular computer program application, and in response thereto, evaluating the flow definition based on the message to result in executing an operation specified in the flow definition using one or more of a payload of the message, the status value, or a channel identifier of the message; the message application processor selecting, based on the channel identifier, a particular communication channel among a plurality of different communication channels, and transmitting a request to the particular communication channel to transmit the message using the particular communication channel.

Claims (30)

1. A computer-implemented method, comprising:

using a message application processor, receiving a first request from a separate application server computer executing a particular computer program application to create and cause sending a digital electronic message;

in response to the first request, the message application processor creating the message and assigning a status value to the message, the status value being associated with a first state of the message;

the message application processor causing the message to perform a transition to a subsequent state;

the message application processor performing a flow hook lookup to determine whether a flow definition is associated with the transition from the first state to the subsequent state and with the particular computer program application, and in response thereto, evaluating the flow definition based on the message to result in executing an operation specified in the flow definition using one or more of a payload of the message, the status value, or a channel identifier of the message;

the operation in the flow definition specifying a fetch of a plurality of data values from a specified network location, the computer implemented method further comprising, in response to executing the fetch, storing the plurality of data values in a corresponding plurality of program variables in a main memory of the message application processor;

the message application processor selecting, based on the channel identifier, a particular communication channel among a plurality of different communication channels, and transmitting a request to the particular communication channel to transmit the message using the particular communication channel.

2. The computer-implemented method of claim 1 , the operation in the flow definition specifying a transformation of the message from a first payload value to a second payload value.

3. The computer-implemented method of claim 1 , the operation in the flow definition specifying a transformation of the status value to a third state.

4. The computer-implemented method of claim 1 , the operation in the flow definition specifying a transformation of the channel identifier to specify a different particular communication channel among the plurality of different communication channels.

5. The computer-implemented method of claim 1 , the operation in the flow definition specifying an HTTP request to a specified network location.

6. The computer-implemented method of claim 1 , the plurality of different communication channels comprising two or more of SMS, MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER, APPLE BUSINESS CHAT, INSTAGRAM DIRECT, TIKTOK, EMAIL, ZALO, GOOGLE BUSINESS MESSAGING, LINE, TWITTER.

7. The computer-implemented method of claim 1 , the first state and the subsequent state comprising two states among a plurality of different possible states of a state machine that the message application processor implements to process the message.

8. The computer-implemented method of claim 7 , the plurality of different possible states comprising: created, scheduled, buffered, sent, delivered, delivery failure, expired.

9. The computer-implemented method of claim 7 , the operation in the flow definition specifying a plurality of machine executable script code instructions.

10. One or more non-transitory computer-readable storage media storing one or more sequences of instructions which, when executed using one or more hardware processors of a message application processor cause the message application processor to perform:

receiving a first request from a separate application server computer executing a particular computer program application to create and cause sending a digital electronic message;

in response to the first request, creating the message and assigning a status value to the message, the status value being associated with a first state of the message;

causing the message to perform a transition to a subsequent state;

performing a flow hook lookup to determine whether a flow definition is associated with the transition from the first state to the subsequent state and with the particular computer program application, and in response thereto, evaluating the flow definition based on the message to result in executing an operation specified in the flow definition using one or more of a payload of the message, the status value, or a channel identifier of the message;

the operation in the flow definition specifying a fetch of a plurality of data values from a specified network location, the one or more non-transitory computer-readable storage media further comprising sequences of instructions which when executed by the message application processor cause, in response to executing the fetch, storing the plurality of data values in corresponding plurality of program variables in main memory of the message application processor;

selecting, based on the channel identifier, a particular communication channel among a plurality of different communication channels, and transmitting a request to the particular communication channel to transmit the message using the particular communication channel.

11. The one or more non-transitory computer-readable storage media of claim 10 , the operation in the flow definition specifying a transformation of the message from a first payload value to a second payload value.

12. The one or more non-transitory computer-readable storage media of claim 10 , the operation in the flow definition specifying a transformation of the status value to a third state.

13. The one or more non-transitory computer-readable storage media of claim 10 , the operation in the flow definition specifying a transformation of the channel identifier to specify a different particular communication channel among the plurality of different communication channels.

14. The one or more non-transitory computer-readable storage media of claim 10 , the operation in the flow definition specifying an HTTP request to a specified network location.

15. The one or more non-transitory computer-readable storage media of claim 10 , the plurality of different communication channels comprising two or more of SMS; MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER, APPLE BUSINESS CHAT, INSTAGRAM DIRECT, TIKTOK, EMAIL, ZALO, GOOGLE BUSINESS MESSAGING, LINE, TWITTER.

16. The one or more non-transitory computer-readable storage media of claim 10 , the first state and the subsequent state comprising two states among a plurality of different possible states of a state machine that the message application processor implements to process the message.

17. The one or more non-transitory computer-readable storage media of claim 16 , the plurality of different possible states comprising: created, scheduled, buffered, sent, delivered, delivery failure, expired.

18. The one or more non-transitory computer-readable storage media of claim 16 , the operation in the flow definition specifying a plurality of machine executable script code instructions.

Assignments (2)
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Apr 23, 2026
From: BIRD BIDCO B.V.; MESSAGEBIRD UK LIMITED; BIRD.COM, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075472/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2023
From: MAJID, DANA; VIS, ROBERT
To: MESSAGEBIRD BIDCO B.V.
Reel/Frame 065491/0283 →
Continuity (2)
Provisional Application 63402771 · Aug 31, 2022
Related Publication 20240073175A1 · Feb 29, 2024
References Cited (12)
US 20050198148A1 · Cabrera et al. · 2005 [cited by applicant]
US 20060182131A1 · Dziekan, Jr. · 2006 [cited by applicant]
US 20080205444A1 · Campbell et al. · 2008 [cited by applicant]
US 20080294735A1 · Muntermann · 2008 [cited by examiner]
US 20100169424A1 · Gustafsson · 2010 [cited by examiner]
US 20170272504A1 · Cahill · 2017 [cited by examiner]
US 20180097756A1 · Lew · 2018 [cited by examiner]
US 20190356580A1 · Licardie et al. · 2019 [cited by applicant]
US 20210021649A1 · Rathod · 2021 [cited by applicant]
JP 5073812B2 · 2012 [cited by applicant]
WO 2017211141A1 · 2017 [cited by applicant]
Anonymous, Communication and search report in European patent application EP23194628.6, dated Feb. 1, 2024, 9 pages, pub. by European Patent Office, Munich, Germany. [cited by applicant]