Msg91 Help Doc
More

More


With the new product updates, you can now add new team members and assign them to different user roles. Here are the steps to add new members to your team:


Step 1: Log in tot he MSG91 panel and click on the dropdown beside your username on the top left.


16683923612601668392


Step 2: Click on the All users option from the sidebar.


Kb168775397108201316


Step 4: Click on the Invite User option on the top right.


Kb168775397946259168


Step 5: Fill in the email of the new user. Add IPs allowed if any specific IP needs to be mentioned or leave it blank.


Screenshot 2022-11-1


Step 6: Select the Rule from the drop-down or you can add your own rule. 


16683930002201668393


  • Step 6.1: To add your own rule, click on Rules


16683927490581668392


  • Step 6.2: Certain Rules are predefined and available. If you want to create your own rule, click on Create Rule. Give a rule name and tick all the option that is applicable.

16683928693951668392


Step 8: Click on the Invite button at the bottom.


Step 9: The newly added member receives an invitation email, and needs to sign-up if they have not signed up before. (Note: Verification is mandatory for the user to be able to access the account).

Note- If the invited member already has an existing account with MSG91 then in that case they will need to accept the invite from the existing account. You can see the invite in the Pending Invitations section in the Companies option.


Screenshot 2022-11-1


Step 10. If the invited user does not receive the invitation email, you can resend it from the Reinvite option available for that user.


16683934724721668393


In case of trouble, you can reach us at

[email protected]

How to add a new team member to the team?
create ruleMSG91MSG91 paneluser rolesadding team member
Invalid Date


Use Case

Brands launch bulk campaigns and broadcast messages to a large audience using either Call-to-Action (CTA) WhatsApp Ads or WhatsApp marketing templates. To enhance campaign effectiveness, generate leads, or automate workflows, businesses can integrate WhatsApp Chatbots.

The chatbot is triggered based on the specific ad or template the user responds to, ensuring a tailored experience.

WhatsApp templates allow businesses to define variables and pass dynamic values within messages. The chatbot captures these values and stores the template message along with them. These stored values can be used in subsequent chatbot interactions if required.


Implementation

WhatsApp Template Integration

When a business sends an outbound WhatsApp message, the following variables store campaign-related data:

  • replied_message_variable – Stores mapped variables

  • replied_message – Stores complete message content

  • template_name – Name of the WhatsApp template

  • template_language – Language of the template

  • campaign_name – Name of the campaign

  • campaign_request_id – Unique request ID for the campaign

  • message_uuid – Unique identifier for the message

  • replied_message_type – Type of message replied to

  • template_id – Unique ID of the template

To display these variables in a Send a Message card, enclose them in double curly brackets ({{variable_name}}).
For script-based access, use the format:
_flow_variables.replied_message_variable.

For example, if a template contains two placeholders ({{1}} and {{2}}), the bot saves the entire template in the variable replied_message. The variables within the template can be accessed using replied_message_variable.

These stored values can be further used in the bot's flow.


Click-to-WhatsApp (CTW) Ads

For Click-to-WhatsApp (CTW) Ads, the bot receives referral data, which can be retrieved and used in the same format as templates.

Example Referral Object:

"replied_message": [
  {
    "referral": {
      "source_url": "https://fb.me/2new123",
      "source_id": "123533385",
      "source_type": "ad",
      "body": "new hello",
      "headline": "gasfgaefawf",
      "media_type": "video",
      "video_url": "https://www.facebook.com/",
      "thumbnail_url": "url",
      "ctwa_clid": "lJKVANOvL6J0FCSCEdTcA"
    }
  }
],
"template_name": null,
"template_language": null,
"campaign_name": null,
"campaign_request_id": null

To fetch source_url, use the following format:

_flow_variable.sourceurl = _flow_variables.replied_message.[0].referral.source_url

To display it in a Send a Message card, simply use:
{{sourceurl}}


Storing WhatsApp Template Content, CTWA Ads, and Variable Data Efficiently
Feb 27, 2025


Push SMS


An SMS that is sent (pushed) into the inbox of the customer without her/him opting for it is a Push SMS. It has content like offers, alerts, or announcements for any new launch of the product. These SMS are sent via the Promotional route.


Promotional SMS are Push SMS and cannot be sent on numbers with DND (do not disturb) activated. These SMS could only be sent between 9 AM and 9 PM.

Push SMS is the SMS that you tend to push into the inbox of your customer. In a case where you send Push SMS on DND numbers, they can complain about this to TRAI (Telecom Regulatory Authority of India), and you are subjected to consequences if found guilty.


Let’s see this as an example-

The launch SMS that a business sends to the people (including those who have not subscribed to the services) via a promotional route is a Push SMS.



Pull SMS


An SMS that is sent upon users’ subscription (pulled by the customer) is a Pull SMS. It generally has updates, information, and alerts that the user asks for. A Pull SMS is sent via the Transactional route and can be sent on DND numbers, round the clock 24*7.


These are the SMS that the user tends to pull into the inbox of your customer. In the case of DND numbers where you send Pull SMS on DND numbers, the SMS is sent to them and unlike Push SMS the users do not complain to TRAI (Telecom Regulatory Authority of India) as they subscribe to the service themselves.


Let’s see this as an example-

The after-sales delivery updates and service reminders that the business sends to their customers who have bought their product and hence subscribed for the services via transactional route is a pull SMS.



Push vs Pull SMS

The direction of SMS:


  • Push SMS: SMS is directed from the business to the customer’s inbox by the business

  • Pull SMS: SMS is directed into the customer’s inbox by customers

SMS Route:


  • Push SMS: SMS are sent via Promotional route

  • Pull SMS: SMS are sent via Transactional route


For DND Numbers:


  • Push SMS: Cannot send SMS to DND numbers, if sent then might face consequences upon customer’s complaint to TRAI

  • Pull SMS: Can send SMS to DND numbers

What is the difference between Push SMS and Pull SMS?
Invalid Date

A CORS error (Cross-Origin Resource Sharing error) occurs when you're trying to make a request from one website (or domain) to another website, and the browser blocks the request for security reasons.

Why CORS Error Occurs -
​CORS errors occur when a web page tries to access data or resources from a different domain, and the server of that domain hasn't granted permission for the request by including the appropriate CORS headers in its response. This security mechanism helps prevent unauthorized access and protects users' data and privacy.


  • Same-Origin Policy: Browsers have a security policy called the Same-Origin Policy. It's a fundamental security feature that prevents web pages from making requests to a different domain than the one that served the web page. This policy exists to protect users from potentially harmful actions by other websites.

  • Cross-Domain Requests: When a web page attempts to make an XMLHttpRequest or fetch data from a different domain (different origin), the browser checks if the server hosting the requested resource explicitly allows such requests. This is done through CORS headers.

  • CORS Headers: To allow cross-origin requests, the server hosting the resource must include specific CORS headers in its response. These headers tell the browser which domains are permitted to access the resource. If the server doesn't include these headers or doesn't include the requesting domain in the list of allowed origins, the browser blocks the request and triggers a CORS error.

    Note: If the API is running on

    localhost

    and you are still experiencing a CORS issue, it's likely because the API is running on a different port than your web application. MSG91 API does not allow cross-domain requests you will need first to make the request to your server and then call the API from there.

    How to resolve this issue -


    You can add a proxy to your web application. A proxy will forward requests from your web application to the API endpoint, allowing you to bypass the CORS restrictions. Here's an example of how to set up a proxy using the HTTP-proxy-middleware package:


    1) Install the "HTTP-proxy-middleware package"

    npm install http-proxy-middleware --save

    2) In your web application code, create a new file called setupProxy.js in the src directory. This file will contain the configuration for the proxy.

    const { createProxyMiddleware } = require('http-proxy-middleware');

    module.exports = function(app) {

      app.use(

        '/api',

        createProxyMiddleware({

          target: '

    http://localhost:3001

    ', // Replace with the URL of your API endpoint

          changeOrigin: true,

        })

      );

    };


    3) In your "package.json" file, add a new "proxy" field that points to the URL of your web application. This will tell the browser to use the proxy for all requests that match the specified path.

    "proxy": "

    http://localhost:3000

    "


    With these steps, any requests to API in your web application will be forwarded to "your proxy path" (replaced with the URL of your API endpoint), allowing you to bypass the CORS restrictions.


Also, you can refer to these links for more:
 

http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain


http://stackoverflow.com/questions/16989505/jquery-cross-domain-ajax



CORS ERROR
erroroccurscors
Invalid Date


Enabling IP Security in your MSG91 account helps you to have a track of API calls from whitelisted IPs only. When there is an API hit, we’ll match the connecting IP against this list to allow or deny access. With this feature, even if your API is discovered or stolen, only your servers will be able to use it.


Isn't this super easy to set it up, we highly recommend you to use this feature.

For Cloud service users, where IPs are dynamically allocated on new instance creation,  we have got you covered. Here is the list of major cloud service providers' authorized solutions for associating a fixed IP to the instance.


Cloud Service Providers

Solution

Amazon Elastic Beanstalk

https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-static-IP-address/

Amazon EC2 [Elastic Compute Cloud]

https://aws.amazon.com/premiumsupport/knowledge-center/ec2-associate-static-public-ip/

AWS Instances with Pool of Instances/ Dynamic Instances

https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html

GCP [Google Cloud Platform]

https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#reserve_new_static

Azure

https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-network-interface-addresses

Digital Ocean

https://docs.digitalocean.com/products/networking/floating-ips/

Heroku

https://devcenter.heroku.com/articles/fixie#:~:text=Fixie%20is%20an%20add%2Don,impermanent%20set%20of%20IP%20addresses

Static IP Resolution on Various Cloud Providers
Invalid Date

CREDIT - 

Credits are the number of sms you currently have in your account. When you send an SMS, your credits get deducted accordingly. Credit Deduction refers to the number of credits deducted from your balance for sending the message.

When you send an SMS in English the credit limit is 150-160 characters whereas in the Unicode option i.e. when you send SMS in other languages, the limit is 55-70 characters.

 You will be able to see the credits consumed by your content on the top right corner of the Text box.

16593022277321659302


CREDIT CALCULATION


The value for a single credit in English is 160 characters. With the number of characters increasing, the second credit consists of 306 characters, and moving on in this manner the value of credit deduction increases by adding 153 characters in the SMS every time. As the number of characters keeps on increasing the number of credits deducted will also increase.


For English the credit calculation is as below:

160 Characters (Standard SMS) 1 SMS Credit

306 Characters 2 SMS Credit 

459 Characters 3 SMS Credit

612 Characters 4 SMS Credit

765 Characters 5 SMS Credit


For Unicode the credit calculation is as below:

70 Characters (Standard SMS) 1 SMS Credit 

134 Characters (Multi-part SMS) 2 SMS credit 

(2 * 67 characters) 2 SMS Credits / Units-201 Characters (Multi-part SMS) 3 credits

(3 * 67 characters) 3 SMS Credits / Units-268 Characters (Multi-part SMS)

(4 * 67 characters) 4 SMS Credits / Units-335 Characters (Multi-part SMS)

(5 *67 characters) 5 SMS Credits / Units-402 Characters (Multi-part SMS)

(6 * 67 characters) 6 SMS Credits / Units-469 Characters (Multi-part SMS)

You can see the number of credits as well as a deduction in the delivery report of your SMS.

What is the character limit for a single credit in English & Unicode? How is credit calculated?
credit calculationdeductionUnicodeSMScredit limit
Invalid Date

MSG91 sends alerts for payment status, low balance, API failure to the secondary email address registered in your MSG91 account. Follow these simple steps to add more email addresses to which these alerts should be sent:

Step 1:  Log in to your MSG91 account. Click on the company name dropdown arrow and select the Settings option.

Kb169994767198245716


Step 2:  Click the "Alerts" option in the settings.


Kb169994772746455716


Step 3:  The following alerts fall under the Tech and Billing category-

Tech Alerts

Billing Alerts

101 - Missing mobile number

Low Balance

102 - Missing message

Payment status

202 - Invalid mobile number

Subscription renewal Success

203 - Invalid sender ID or DLT Entity ID Missing

Estimated billing amount (renewal)

207 - Invalid authentication key

Subscription Bill

301 - Insufficient balance to send an SMS

Low Voice Balance

311 - When the same SMS content is sent to the same number within 10 seconds. This is a security feature used to avoid multiple deliveries. The first SMS will be delivered and the second will be rejected. The balance will also be deducted only once.


418- IP Whitelisting 


Subscription renewal Failure


Subscription Future upgrade failure 


Whatsapp Prepaid balance auto-recharge failure 


Subscription Expiry email 


Insufficient balance alert 


10% balance remaining 


5% balance remaining 

401 Unauthorised (Email)

403 Forbidden (Email)

422 Invalid Request Body (Email)

500 Internal Server Error (Email)

504 Gateway Timeout (Email)

All WhatsApp Error Code mentioned in this

link

will be sent.

Enter the email addresses in the Emails section to get the alerts on email.

Note- SMS alerts on mobile numbers will be live soon!


Kb169994783087080416


Kb171272978944895171


Billing and Tech Alerts
TechBillingAlerts
Invalid Date
Prev