The Sendroid Ultimate 2-way Messaging system is a feature, which allows you to send Outgoing messages as well as receive Incoming messages on Sendroid Ultimate. The 2-Way messaging feature is available for both Text & WhatsApp message types and currently supports only Textual messages.
All incoming messages received on Sendroid Ultimate can be read under the Inbox menu.
Typically, when you receive an inbound message, your gateway provider will either push the message to you using some kind of Callback action or requires you to connect to their server to fetch received messages.
For your incoming messages to be accessible on Sendroid Ultimate, you need to Create a New SMS Gateway on Sendroid Ultimate using the Incoming SMS Gateway template, then have your gateway provider forward any received message in real-time to Sendroid Ultimate Incoming SMS Callback URL (http://your_sendroid_url/incomingCallback) using HTTP POST or GET or create a custom event hook that connects to your gateway provider's API to fetch your incoming messages from time to time, then forward received messages to Sendroid Ultimate callback URL.
How It Works
The Sendroid Ultimate Callback URL is built to always listen for incoming HTTP GET or POST requests containing the 3 parameter names you defined while creating each of your Incoming SMS Gateways (i.e. Sender, To and Message parameter names). If an incoming HTTP request contains all 3 defined parameters for any of your incoming SMS gateway, Sendroid Ultimate then knows that a new message has been received.
When ever a new message is received, Sendroid Ultimate will perform the following operations with the message;
1, Insert the sender's number, recipient (shortcode), message body and current date/time into the system's inbox. At this point, the message will only be visible to the admin.
2, Checks if the recipient (shortcode) is assigned to any customer customer's account. If assigned, Sendroid will re-assign the message to the customer's inbox
3, Uses the recipient (shortcode) and message body to determine if the received message contains an Opt-In or Opt-Out keyword for any Marketing List. If matched, Sendroid Ultimate will Add or Remove the sender's number from the marketing list, depending on which keyword was matched. If the matching marketing list belongs to a customer, Sendroid will re-assign the message to the customer's inbox. (provided #2 logic is false)
4, Fires any custom event hooks set to run when an incoming message is received
Whats You Need To Use The 2-Way Messaging Feature
Before you can use the 2-way messaging feature on Sendroid Ultimate, you must;
1, Have a gateway provider that supports 2-way messaging
2, Your 2-way messaging gateway provider must have a system that forwards received message to a remote callback URL through unencoded HTTP GET or POST
3, In most cases, a hosted number, shot-code or long-code capable of receiving messages with your 2-way message provider
4, A working Sendroid Ultimate installation.
Configuring 2-way messaging on Sendroid Ultimate
Like I mentioned in the beginning of this article, you will only be able to see your incoming messages in Sendroid Ultimate after you have setup the system to listen for incoming messages.
Before I give you th setup steps, it will be best if I introduce some important terms we will be using;
Short-Code: This is a number or numbers assigned to you by your 2-way message provider, which is capable of receiving incoming messages over the Internet
Callback URL: This is the location of the script on Sendroid Ultimate that is responsible for handling incoming messages. This is usually http://your_sendroid_url/incomingCallback
Sender Parameter: This is the name of the variable your gateway provider uses to pass the incoming message Sender's Number to your callback URL. This value is Case Sensitive and is usually supplied to you by your gateway provider
To Parameter: This is the name of the variable your gateway provider uses to pass the Short-Code or Number the incoming message was received on. This value is Case Sensitive and is usually supplied to you by your gateway provider
Message Parameter: This is the name of the variable your gateway provider uses to pass the incoming message Body to your callback URL. This value is Case Sensitive and is usually supplied to you by your gateway provider
Having introduced the terms, lets look at the setup steps;
Step 1, Depending on your gateway provider, you will first need to setup your account or short-codes to forward incoming messages to your Sendroid ultimate Callback URL. Please contact your gateway provider for instructions on how to do this
Step 2, Login to your Sendroid ultimate as a super admin, navigate to Settings - General Settings and set the Enable 2-Way Messaging field to Yes
Step 3, Navigate to Settings - SMS Gateways and click on Create New Gateway
Step 4, In the Gateway Template field, select Incoming SMS Gateway
Step 5, Type a Display Name for your new 2-way gateway
Step 6, Enter the correct values for Sender, To and Message parameter names exactly as supplied by your gateway provider. Remember these values are case-sensitive
Step 7, Save your new gateway and you are done.
If all things are properly setup and working, you should start seeing any new message you received in the Sendroid ultimate inbox.
Troubleshooting & FAQs
I do not see any messages on my 3endroid Ultimate Inbox! It is possible you have not received any messages on any of your configured short-codes yet. Please login to your provider's portal and check if you really received any messages
I can see new messages at my provider's portal but not on Sendroid ultimate: It is possible those messages were received before you setup the incoming message gateway on 3endroid Ultimate. It is also possible that you have not use the correct callback URL while setting up your account or short-codes. You need to also make sure the parameter names you used on your Sendroid ultimate gateway setup is exactly what your providers supplied to you.
My SMS Gateway doesn't provide or support callback functionality for incoming messages! If the callback functionality is not available for your gateway, you will need to use your gateway provider's API (if available) to develop a custom system that fetches incoming messages from your gateway then forwards it to 3endroid Ultimate callback system using tools like cURL or file_get_content