Connectivity Platform
  • Connectivity Platform Documentation
  • WhatsApp Business Account
    • Can I have multiple WhatsApp Managers in my dashboard?
    • Can my WhatsApp Business subscription be billed monthly?
    • Getting an Official Business Account ("Green Tick") for WhatsApp
    • How do I change my WhatsApp Business display name
    • How to cancel your WhatsApp Business API subscription
    • How to check my quality rating and messaging limits?
    • How to remove 2FA on my WhatsApp channel?
    • Managing your WhatsApp Business account information
    • Migrating WhatsApp Business from another provider (BSP)
    • Migrating to another provider (BSP)
    • My WhatsApp Business Account has been disabled, what can I do?
    • WhatsApp Account FAQ's
    • WhatsApp Billing & Pricing
    • WhatsApp Business App vs API
  • Account
    • Accounts, Workspaces, Users, & Subaccounts
    • Activation code
    • Add & switch between Workspaces
    • Changing ownership of your Workspace
    • Delete an Account and Workspace
    • How to add, edit & delete users
    • I don't remember the email address attached to my Account
    • I’ve lost my password
    • Make someone else in charge of the Account
    • My activation code has not come through
    • Transfer credit to another Account
    • Update personal details on my account
    • Why does MessageBird need my mobile phone number?
  • Add the Omnichannel widget to your online store
    • Adding the MessageBird Omnichannel Widget to a Shopify store
    • Adding the MessageBird Omnichannel Widget to a Squarespace store
    • Adding the MessageBird Omnichannel Widget to a Wix store
    • Adding the MessageBird Omnichannel Widget to a WordPress site or WooCommerce store
  • Admin resources
    • Manager Portal
  • Advanced functionalities
    • Create and use custom functions in Flow Builder
    • Create and use your own custom Flow Builder steps
    • Create your own date formatting function in Flow Builder
    • How to set up Google Places on WhatsApp and Telegram
    • Integrate GCP Cloud Functions and omni-channel automation with FlowBuilder
    • Integrate MongoDB and Omni-Channel automation with FlowBuilder
    • Integrate granular conversational reporting in FlowBuilder with Microsoft Power BI
    • Making an API request and formatting the results in a Flow Function
    • Using Databases
  • Advanced inbox automations and routing
    • Routing setup flow
    • Sentiment Routing
  • Advanced settings
    • Data retention settings
  • Agent resources
    • Contact merging in Inbox
    • Setting your agent status
  • Application security
    • Does MessageBird conduct code scans?
    • Does MessageBird conduct penetration testing on application?
    • How does MessageBird manage SDLC?
  • Basics
    • FlowBuilder Overview Page
    • FlowBuilder Steps Glossary
    • Getting Started with Flow Builder
    • Triggers, Numbers, Templates, & Steps
    • What is Flow Builder?
  • build-and-manage-a-flow
    • Autosave Feature and Version History
    • Get insights about conversation movement with the Flow Heatmap
    • Manage Data Retention of your Flow
    • Steps Grouping
  • business-continuity-and-disaster-recovery
    • Does MessageBird have BCP?
  • contacts
    • Add existing contacts to groups
    • Create a Group
    • Export contacts
    • Formatting your contact numbers
    • How many contacts can I store?
    • How to forward an invoice to a different email address?
    • Managing group subscribers
    • Remove Contacts
  • conversations-chat-api
    • I'm not able to send a message to a certain User ID via the API
    • No messages in Conversation channel
    • Unable to Install Channel
  • country-restrictions-and-regulations
    • Sender ID Availability and Restrictions per Country
    • Australia
    • Canada
    • China
    • France
    • Germany
    • India
    • Japan
    • Malaysia
    • New Zealand
    • Nigeria
    • Norway
    • Romania
    • Russia
    • Singapore
    • South Africa
    • Turkey
    • United Arab Emirates
    • United Kingdom
    • United States
    • United States 10DLC FAQ
  • customizing-the-omnichannel-widget
    • Can I hide the MessageBird privacy consent message in Live Chat on the Omnichannel Widget?
    • Can I hide the “Powered by MessageBird” branding on the Omnichannel Widget?
    • Can I upload a custom logo as my Omnichannel Widget icon?
    • How can I show or hide my agent profiles in Live Chat and the Omnichannel Widget?
    • How can I update the language of my Omnichannel Widget?
    • How to customize the Omnichannel Widget
    • Update my Live Chat company name and avatar
    • What is the default MessageBird privacy consent message in Live Chat?
  • data-governance-and-security
    • Are the responsibilities regarding data stewardship defined, assigned, documented, and communicated?
    • Does MessageBird encrypt the data?
    • How is access to customer data managed in MessageBird?
    • Is production data used for testing?
    • Bird Security Overview
    • What is MessageBird’s data retention strategy?
    • Where is data stored and processed?
  • data-protection
    • Can MessageBird services be used by customers operating in heavily regulated sectors (such as health
    • Did MessageBird appoint a Data Protection Officer (DPO)?
    • Does MessageBird collect sensitive data?
    • Does MessageBird have a Data Processing Agreement (DPA)?
    • Does MessageBird notify its customers in the event of data breaches?
    • Does MessageBird require a transfer mechanism to process EU citizens' data?
    • Does MessageBird share customer data with, or enable direct access by, any third-party?
    • Does MessageBird support data subjects requests?
    • How long does MessageBird retain personal data?
    • Is MessageBird Data controller or processor?
    • What are the legal grounds for the processing of personal data?
    • What does MessageBird provide as a service?
    • What kind of data does MessageBird collect?
    • What mitigating measures has MessageBird taken in relation to the invalidated Privacy Shield?
  • developer-faqs
    • How do I send text-to-speech messages via the API?
    • What is the difference between a live key and a test key?
  • email-platform-formerly-sparkpost
    • Add more IP addresses to your account
    • Billing frequencies and overages
    • Cancel your MessageBird Email (SparkPost) account
    • Choose the best email-sending package
    • Limits of free email sending accounts
    • Pay your MessageBird Email (SparkPost) invoice
    • Sending less than the monthly email sending limit Volume
    • Sending more than the monthly email sending limit
    • Volume limits on plan overages
  • email-to-sms
    • I am having trouble setting up Email to SMS
    • My Email to SMS did not deliver
    • Receiving Email to SMS
    • Sending Email to SMS to a group does not work
    • Sending Email to SMS
    • Setting up Email to SMS
  • faq
    • Benefits of Programmable Conversations
    • Can I create my own mix of communication channels and add other channels?
    • Can we integrate Conversations into our CRM software?
    • Do I need to purchase a number to publish SMS, Voice, and Webhook flows?
    • Does the Conversations API give automatic access to Whatsapp for Business?
    • Global coverage
    • How does the ‘Repeat’ attribute work?
    • How many flows can I make per number?
    • Is audio, video, chat, image and location sharing possible with Conversations?
    • Supported Languages by MessageBird Natural Language Processing
    • What are Available Variables?
    • What is Programmable Conversations?
    • What is a Continued Action?
    • What is an IVR menu?
    • Which communication channels are supported?
    • Why can’t I use Voice services due to my account currency?
  • faqs
    • Can my customers use the Omnichannel Widget on mobile?
    • What is domain whitelisting in the Omnichannel Widget?
    • Why can’t I see the Omnichannel Widget on my website?
  • flow-triggers
    • Learn how triggers work in Flow Builder
    • Setting up a flow triggered by a webhook in Flow Builder [video]
    • Triggering a flow from an incoming omnichannel message in Flow Builder [video]
    • Triggering a flow with an incoming voice call in Flow Builder [video]
  • get-started-with-the-omnichannel-widget
    • Display, hide or remove the Omnichannel Widget
    • How to create and manage multiple Omnichannel Widgets
    • How to install channels on the Omnichannel Widget
    • Inbox Agent statuses in Live Chat
    • Omnichannel Widget onboarding guide for Inbox
    • Preview my Omnichannel Widget before installing and enabling
    • Sending Emojis in Live Chat
  • getting-started
    • Abandoned Cart Recovery onboarding guide
    • Abandoned checkout best practices
    • Best Practices for SMS
    • Best Practices for WhatsApp Business
    • Best practices for your Knowledge Base datasets
    • Choosing an originator
    • Creating access keys
    • Currencies
    • Deleting your account
    • Email performance reporting with the Verify API
    • Getting Started with SMS FAQ's
    • Getting Started with WhatsApp FAQ's
    • Getting Whatsapp Opt-ins from Customers
    • Getting approval to send to restricted countries
    • Getting started with SMS
    • Google Business Messages FAQs
    • How can I get my namespace ID?
    • How do I start using WhatsApp Business?
    • How long can my WhatsApp channel remain unverified?
    • How to create a Google My Business account
    • How to get a number for the Verify API
    • How to see successful authentication metrics via the Verify logs
    • Requirements
    • How to set up Email as a channel for the Verify API
    • How to set up Entity Recognition in Flow Builder
    • How to set up Fill Form in Flow Builder
    • How to set up Google Business Messages as a channel
    • How to set up a balance warning + auto order
    • How to set up the Recognize Intent step
    • IVR
    • Length of an SMS
    • Mandatory 2FA Authentication for new and existing users
    • Message Templates guidelines
    • Number types
    • Picking a number for WhatsApp Business
    • Placing & receiving calls
    • Porting Numbers
    • Receiving Delivery Reports (DLRs)
    • Requesting Access for Restricted Countries
    • Restrictions for SMS Numbers
    • Setting up notification contacts
    • Start testing with the MessageBird WhatsApp Sandbox
    • Third party applications
    • Topping up balance
    • Using Entities in Flowbuilder to recognize timezones
    • Verified Caller IDs
    • Verifying your Facebook Business Account
    • Voice Number Restrictions
    • What does it mean to be a Verified WhatsApp Service Provider?
    • What features are supported by WhatsApp for Business?
    • What is Messagebird’s Abandoned Cart Recovery Solution?
    • WhatsApp Business Step-by-Step Onboarding
    • WhatsApp Channel Activation FAQ's
    • WhatsApp Channel Activation
    • WhatsApp phone number: From mobile app to API
    • WhatsApp: Why and how to get your customers to Opt-In?
    • When will customers receive the Abandoned Cart Recovery message?
    • Where do I find my Facebook Business ID?
    • Why do I need a service provider like MessageBird for WhatsApp Business solution?
    • Will verifying my Facebook Business Account get me an Official Business Account?
    • Working with WhatsApp Message Templates
  • hlrlookup
    • HLR Request failed or is incomplete
    • No Information in HLR response
    • The difference between Lookup and HLR
    • North-America toll free verification
    • Varying or Incorrect HLR Information
    • What are the different HLR statuses and their meanings?
  • how-to-guides
    • Create an omnichannel FAQ BOT with Flow Builder
    • Dealing with multimedia content in messages using Flow Builder
    • Forwarding calls using Flow Builder
    • Forwarding your SMS
    • How do I set the same flow for all my numbers (Default Flow)?
    • How to Call HTTP endpoint with SMS
    • How to add products in Meta Commerce Manager
    • How to automatically parse receipts in Flow Builder
    • How to build an IVR menu
    • How to create complex Regular Expressions (regex) conditions
    • How to forward calls to another phone number or SIP URI
    • How to forward incoming SMS to an email
    • How to search through Flow Builder Logs
    • How to set up Email OTP solution in Flow Builder
    • How to set up a Feedback Bot
    • How to set up a Flow to send outbound SMS
    • How to use Multiple WhatsApp Business Accounts - WABA's in FlowBuilder
    • Language Recognition with Flow Builder
    • Managing Meta Messenger Referrals in Flow Builder
    • Set up Telegram account masking
    • Set up a generic OAuth integration
    • Set up answering machine detection
    • Set up image recognition for WhatsApp
  • inbox-basics
    • How to log in to Inbox
    • Inbox onboarding guide
    • Setting up notifications for Inbox
  • inbox-for-good
    • Activate FAQ bots
    • Building an emergency Contact Center
    • Send live updates and notifications via SMS
    • Set up Interactive Phone Menus
  • inbox-reporting
    • Download Reports
    • Download reports in CSV format
    • Get to know Inbox reporting
    • Inbox reports glossary
    • Inbox reports in action
  • information-security-management-program
    • Does MessageBird have a security and privacy awareness program?
    • Does MessageBird have an Information Security Management Framework?
    • Does MessageBird have an incident response program?
    • Does MessageBird have an internal audit team?
    • Does MessageBird have any third party attestations for security?
    • Does MessageBird have documentation of their ISMS?
    • Is Management responsible for the security program?
    • What are the roles and responsibilities pertaining to security and privacy across MessageBird?
    • What is the security team at MessageBird?
  • infrastructure-security
    • Can MessageBird provide an overview of how its infrastructure is being secured?
    • Does MessageBird have a patch and vulnerability management program?
    • How are changes managed?
  • insights-reporting
    • Insights
  • instagram
    • How do I filter out Instagram story mentions?
    • How do I know if I'm eligible for Instagram?
    • I cannot find my Instagram channel after installation
    • I'm having issues when installing my Instagram channel
    • Inbound messages are not arriving to my Instagram channel
  • installing-channels
    • Adding Instagram as an Inbox channel
    • Getting started with Viber for Business
    • How to add a channel
    • How to connect and disconnect a channel from Inbox
    • How to find your Facebook Page ID
    • How to use WhatsApp Sandbox with Inbox
    • Install Facebook Messenger as an Inbox channel
    • Install LINE as an Inbox channel
    • Install SMS as an Inbox channel
    • Install Telegram as an Inbox channel
    • Install WeChat as an Inbox channel
    • Install WhatsApp as an Inbox channel
    • Install your Custom Email Domain as an Inbox channel
  • integrations
    • Connect and use Salesforce with Flow Builder
    • Connecting Inbox to Zendesk using Flow Builder
    • Updating HubSpot contacts with Inbox using Flow Builder
  • managing-inbox-admins-and-agents
    • Adding a new agent to Inbox
    • Deleting an agent
    • Import agents to Inbox using CSV
    • Inbox user roles and permissions
  • managing-inbox-contacts
    • Add a contact manually
    • Add a contact via a ticket
    • Import contacts via CSV file
    • Managing your Inbox contacts
  • messaging
    • Add an embeddable WhatsApp Button to your website
    • Do customers need to opt-in to receive WhatsApp messages from my business?
    • I want to connect my WhatsApp API phone number to my Facebook Page (Classic Pages)
    • Is there a limit to the number of WhatsApp messages I can send?
    • Is two-way messaging possible with WhatsApp?
    • Media Templates
    • Message Templates & Session Messages
    • Messaging Features & Restrictions
    • Messaging with WhatsApp FAQ's
    • Receive WhatsApp messages statuses via the API
    • What is the difference between Message Template and Template Message?
    • WhatsApp Campaigns delivery status report
    • WhatsApp messaging restriction toward Turkey
  • other-integrations
    • Can I use MessageBird with Zapier
    • How can I perform HLR Lookups?
    • How can I use the Short Message Peer-to-Peer (SMPP) network protocol?
    • How do I connect RSA SecurID (EMC) to MessageBird's SMS Gateway?
    • How do I connect SafeNet to MessageBird's SMS Gateway?
    • How do I connect SecurEnvoy to MessageBird's SMS Gateway?
    • How to set up multi-channel merchants notifications for Mollie
  • partner-accounts-api
    • Can Accounts be migrated into a Partner Network?
    • Can Child Accounts get invoiced separately?
    • Can the Partner Network be viewed in the Dashboard?
    • How is a Partner Account setup?
    • How is a Partner Network invoiced?
    • How is a Partner Network setup?
    • How many levels of Child Accounts can a Partner Network have?
    • What Services can a Partner Network use?
    • What is a Partner Account?
    • What is an example of a Partner?
    • What is the Partner Accounts API?
  • payment-billing
    • Add balance
    • Billing
    • Can I get account balance Refunded?
    • Do you offer post-pay contracts?
    • How can I change my order or invoice address?
    • How does SMS and Voice pricing work?
    • How to change the default payment method
    • How to set up Auto Top Up
    • Invoices
    • Managing Saved Payment Methods
    • Payment methods we support
    • Payment processing
    • Prepaid account billing
    • Pricing
    • Setting low balance notifications
    • Subscriptions
    • Suddenly getting billed by MessageBird
    • WhatsApp Conversation Based Pricing Changes 2023
    • Will I be charged VAT?
  • quickstarts-and-tutorials
    • Automate customer interactions using AI
    • Build an omnichannel FAQ BOT with Intent Recognition
    • How to automatically Parse Invoices in Flow Builder
    • How to set up appointment scheduling in Google Calendar using Flow Builder
    • Quickstart guide: Set up Computer Vision in Flow Builder
    • Set up an identity verification process flow with the Analyze Image step
  • receiving-sms
    • Forwarding your inbound SMS
    • I am receiving spam on my Virtual Mobile Number (VMN)
    • I did not receive an SMS on my Number
    • Managing opt-outs
    • Setting your account up to receive inbound SMS
    • Viewing your inbound SMS
    • Automatic SMS Subscriptions (Opt-in/Opt-out)
  • salesforce-marketing-cloud
    • Journey Builder setup guide
    • Journey Builder: Best practices and troubleshooting
    • Marketing Cloud Integration setup guide
    • Release history
    • Using WhatsApp rich-media templates
  • salesforce-sales-service-cloud
    • Configure the MessageBird for Salesforce app
    • Configuring business flows in Salesforce (optional)
    • Install the MessageBird for Salesforce app
    • MessageBird Conversations in the Contacts Page
    • MessageBird conversations on the Case page
    • Release history
    • Sync MessageBird conversations to Salesforce
  • salesforce
    • How to set up the MessageBird Salesforce Sales & Service Cloud integration
  • sending-sms
    • A2P vs
    • My SMS was delivered in multiple parts
    • My SMS was delivered multiple times
    • My SMS was delivered with a delay
    • My SMS was delivered with an overwritten sender ID (Changed Originator)
    • My SMS was not delivered
    • SMS Delivery Statuses
    • SMS Reporting
    • SMS Troubleshooting FAQ's
    • Scheduling your SMS
    • Sending SMS in bulk
    • Sending SMS
    • Setting a Validity Period for your SMS
    • Using Flash SMS
    • Using special characters, Unicode, and GSM-T charsets for sending SMS in different languages
    • Using templates & personalisation
  • set-up-inboxs-built-in-automations
    • Automated welcome message
    • Business hours
    • Create Follow-up actions in Inbox
    • Email notifications for Inbox tickets
    • Language recognition
    • Sentiment analysis for Inbox
    • Using Inbox automations
  • short-codes-keywords-sub-keywords
    • How long does it take for a Short Code to be provided?
    • In which countries can I get a Short code & Keyword?
    • Keywords & Sub Keywords
    • What can I do with a Keyword?
    • What is a short code?
  • sip-trunking
    • Configure your origination SIP Trunk
    • Configure your termination SIP Trunk
    • How to configure SIP Trunks on 3CX
    • How to set up an inbound SIP-Trunk
    • How to set up an outbound SIP-Trunk
    • MessageBird IP whitelist for voice calls
    • SIP Server & connection details
    • SIP Trunking with MessageBird
    • SIP Trunking
    • What is a SIP Trunk?
  • steps-catalogue
    • Fetching variable steps in Flow Builder
    • Format for 'Play a sound file' Step
    • How to use Verify with Flow Builder
    • Using Flow Builder to create a ticket in Inbox
    • Using Flow Builder to send Facebook (Meta) Messenger messages
    • Using Flow Builder to send WhatsApp messages
    • Using FlowBuilder to send Instagram Messages
    • Using database steps in Flow Builder
    • Using the "Reply to channel message" step in Flow Builder [video]
    • Using the "Send Conversation" message step in Flow Builder [video]
    • Using the "Wait for a response" step in Flow Builder [video]
  • subscriptions
    • Managing your Inbox Subscription Plan
  • support
    • Basic MessageBird troubleshooting and support tips
    • MessageBird Support Plans
  • terms-conditions
    • Terms & Conditions
    • What is MessageBird's Service Level Agreement (SLA)?
  • third-party-risk-management
    • How are vendors managed?
  • tickets
    • Get to know the lifecycle of an Inbox ticket
    • Hiding and deleting tags from agents
    • How to create and use Canned Replies
    • How to use variables in Canned Replies
    • Inbox Ticket Statuses
    • Replying and closing a ticket
    • Reviewing past tickets
    • Send ticket information to Slack with Actions
  • troubleshoot-a-flow
    • Export Flow Builder Logs
    • Flow Builder Logs
    • Issues forwarding incoming SMS via Flow Builder
    • My Flow is not working
    • My media file in my flow is not playing
    • Number not available for Flow
    • Set up alerts to monitor your flows
    • What errors can I get in the Flow Builder?
  • troubleshooting-voice
    • Call Information
    • Failed API Requests
    • Media file not playing
    • Voice Billing Details
    • Where can I find my Voice logs?
  • troubleshooting
    • API Issues
    • Cannot find templates submitted via Facebook Business Manager
    • Developer logs and errors
    • Error code when sending a WhatsApp Template Message via API
    • Failed Payments
    • How to delete orders and invoices
    • I am having login or authentication issues with the Old API
    • I am missing my delivery reports
    • I am not receiving notifications for Inbox tickets
    • I am receiving an error 500 in my dashboard
    • I can't initiate a conversation with a customer
    • I cannot add my VAT number
    • I cannot see the WhatsApp message in Inbox
    • I did not receive an SMS when trying to claim free test credits
    • I did not receive my account activation email
    • I don't see the Verify codes in my dashboard
    • I have launched my GBM but I do not see a ‘Message’ button
    • I have limited messaging options in my dashboard
    • I see an unknown item on my bank statement from MessageBird
    • Missing HLR results
    • My OTP codes sent via Email are getting in the spam folder
    • My WhatsApp Business API application is not approved
    • My WhatsApp Message Template is not sending
    • My automatic subscription charge was unsuccessful
    • My end users are not receiving their codes
    • My template application has been rejected
    • One of my agents has left the company
    • SMS errors & error codes
    • The Email channel is not working for my Verify requests
    • The owner of my Workspace is no longer with the company
    • Tickets not showing up in Inbox
    • What is the "quality rating" of a WhatsApp channel?
    • WhatsApp Account policy violations and enforcement
    • WhatsApp: Messaging Limits and Tier system
    • WhatsApp: Returning to the mobile app
    • Where can I find my MessageBird Workspace ID?
    • Whitelist MessageBird's IP addresses
  • use-cases
    • Automate the retrieval of call recordings and transcripts in Flow Builder
    • Automatically detect and translate the language in your customers' messages
    • Broadcast WhatsApp Message Templates with Flow Builder & Postman
    • Country recognition with Flow Builder
    • Create click to WhatsApp ads and link them to Flow Builder
    • Detect and extract text from images with Flow Builder
    • Fetching data during conversations with Flow Builder
    • How to Send WhatsApp Media & Text Templates Using Google Sheets
    • How to block SPAM contacts in Inbox
    • How to set up WooCommerce order notifications with Flow Builder
    • Import historical Shopify information to Inbox
    • Integrate Google signup form with WhatsApp through Flow Builder
    • Is reselling of WhatsApp for Business allowed?
    • Multi DTMF behaviour with Flow Builder
    • Use buttons to create interactive WhatsApp Template Messages
    • What are the use cases for WhatsApp Business?
  • using-different-channels-with-the-omnichannel-widget
    • How can my customers use Facebook Messenger with the Omnichannel Widget?
    • How can my customers use LINE with the Omnichannel Widget?
    • How can my customers use SMS with the Omnichannel Widget?
    • How can my customers use Telegram with the Omnichannel Widget?
    • How can my customers use Voice Calling with the Omnichannel Widget?
    • How can my customers use WhatsApp with the Omnichannel Widget?
  • using-gbm
    • How to send and receive Google Business Messages with Inbox
    • How to use Google Business Messages with Flow Builder
  • using-inbox
    • Using ticket rules in Inbox
  • using-live-chat
    • Getting started with Live Chat pop-up messages
    • Live Chat message statuses
    • Send, receive, and download attachments
    • Set up Conversation Bridging (Beta) in Live Chat
    • Set up Live Chat pop-up buttons
    • Show Omnichannel Widget URL as a Custom Attribute in Inbox
  • using-sms
    • SMS FAQ's
  • using-the-abandoned-cart-recovery-solution
    • Checkout events from Shopify
    • Managing your Webhooks
    • Specifying your audience and conditions
  • virtual-numbers
    • Buy a Virtual Mobile Number (VMN)
    • Can I port numbers to MessageBird?
    • In which countries can I get a Virtual Mobile Number (VMN)?
    • International 2-Way Messaging
    • National ID Number
    • Registration Number
    • SMS Number Restrictions
    • SMS Virtual Mobile Numbers (VMN)
    • Voice Numbers
    • What is the difference between a Shared and a Dedicated Number?
    • Why am I unable to buy a Number?
  • voice-calls
    • Billing & pricing
    • How many legs does a call have?
    • How to make an outbound call
    • How to receive a call
    • Masked transfer
    • Random Caller ID (CLI) on Voice calls
    • Recordings & transcriptions
    • What are the different call status and their meanings?
    • Where can I view my call details?
    • Number restrictions in China
  • voice-messages
    • How to send a Voice Message
    • What is the difference between a Voice Message and Voice Call?
Powered by GitBook
On this page
  • What is Fill Form?
  • An automated conversational sign up form
  1. getting-started

How to set up Fill Form in Flow Builder

PreviousHow to set up Entity Recognition in Flow BuilderNextHow to set up Google Business Messages as a channel

Last updated 1 year ago

In this guide, you will learn how to use the Fill Form step in to automatically extract multiple pieces of structured text from incoming messages. The possibilities are endless! Customizable forms enable you to tailor them to your use case. We look forward to seeing what you end up building with this step!

We will discuss the following in this article:

Requirements to use Fill Form:

What is Fill Form?

The Fill Form step tries to capture structured data from unstructured text, allowing your customers to provide free-form natural responses while your flow can still automatically extract the relevant information and automate on top of that. So what do we mean by capturing structured data from unstructured text? Let’s look at an example for an imaginary airline company:

Bot: “Where are you flying from?”

User: “I’m currently in Paris”

Bot: “Where do you want to go?”

User: “I want to fly to Amsterdam please”

After this short piece of interaction, we want to obtain a form with two fields, namely the origin and destination of the user. Internally, we should build a form that expresses the following:

Origin: “Paris”
Destination: “Amsterdam”

This means that we need to retrieve parts of the user input that are relevant to our use-case. Also, we need to be able to deal with alternative phrasings of these inputs. For example, rather than saying “I’m currently in Paris”, your customer could have said “I am now in Paris, so I’ll be flying from there!”. In both cases, we just want to focus on the actual origin: “Paris”.

An automated conversational sign up form

Let’s think of a more complicated use case to illustrate the power of the new Fill Form step. Imagine we’re building a conversational sign-up form to onboard new users. We’ll want to extract the following:

  • Full name

  • Email address

  • Phone number

  • City

  • Postal code

  • House number

Overview of steps

So what are the steps we go through?

  1. Create a Form dataset

  2. Add custom entities to the form if needed

  3. Create a flow with a Fill Form step

These are just the high-level descriptions. Let’s now dive into the steps one by one!

Step 1: Set up a channel

Step 2: Create a Form knowledge base

This next step is about setting up a Form knowledge base. This is a new kind of Knowledge Base that can be found under the Knowledge Bases overview, which is available in the menu on the left of the dashboard. So go ahead and click on “Knowledge Bases”. Then, we’ll create a new dataset by clicking “Create dataset” on the top right. We’ll select “Form” as the “Dataset type”. Our dataset name will be “Sign Up Form”, but of course the name is really up to you! MessageBird’s Named Entity Recognition employs machine learning models that are trained for 1 language specifically. Therefore, we’d like you to specify the language in which you want to automate your conversations so that our platform selects the right models behind the scenes. In this case, we set the “Language” to “English”.

Click on “Next: Set up parameters” to navigate to the next step. In the next window, we’re asked to enlist our fields. We’ll cover them one by one. For each field we need to give the following: Form input This is the name that you want to give to the first field of the form. Make sure the name is self-explanatory so that you quickly know what kind of data to expect in this kind of field.

We’ll do a similar thing for the phone number which is achieved through using “phone-number” as the name of the field, “phone-number” as the entity type and “What is your phone number?” as the prompt.

Step 3: Add custom entities to the form if needed

For the next field, we want to extract the postal code, according to the standard Dutch format. The Dutch postal code system uses 4 digits followed by 2 letters (first digit being non-zero). Since we know the exact specification, we can implement this kind of entity with regular expressions.

Click “Create entity” to save the newly created custom entity and add it to your form dataset. We’ll finalise the form's knowledge base with the fields below:

Form Input

Type

Prompt

house-number

numeral

What’s your house number?

city

geopolitical

What is the name of your city?

If everything has worked out so far, your screen should look like the image below. When ready, move to the final stage of the flow creation by clicking on “Next Review & save”.

Click on “Save Dataset” to save this form dataset and to make it available for use in your flows!

Step 4: Create a flow with a Fill Form step

Now that we’ve made the fill form dataset, we can create a flow in Flow Builder to automate the sign-up for your leads. Click on “Flow Builder” in the menu on the left side of the dashboard to navigate to the overview of your flows. Click on “Create new Flow” and select “Create Custom Flow”. In the window that pops up select the Omnichannel trigger or a trigger that corresponds to the channel that you created in step 1. Click on “Next” to start building your flow. Once you see the flow, click on the trigger step at the top of the flow and select the channel you’ve just created from the options on the right.

Then click on the ‘+’ icon below the trigger step and search for “Fill Form”. Click on the step to insert it in the flow. Once the step is in the flow, you should see the step’s configuration on the right. There should be a dropdown for the “Knowledge Base” you want to select. Go ahead and select “Sign Up Form”. If it doesn’t appear here, make sure you have successfully completed step 1 to 3, all the way to saving the form dataset at the end. You can then specify how long you want to wait for incoming messages before giving up and how often you allow the user to specify a form value in case our platform fails to extract it from the given user response. Failures can happen because of spelling mistakes, ambiguity or simply due to a misunderstanding. In the case of a detection failure, our Fill Form step repeats the question to let the end user know we want them to rephrase their response. In our case, we want to wait for at most 10 minutes and repeat each prompt at most 3 times.

The final field in the step configuration allows you to specify the name of the variable that will contain the data that was extracted using your Fill Form step. This variable can be used in the remainder of your flow to e.g. send out HTTP API requests to your service or to ask for confirmation from your customer about the detected fields. For now, we’ll use the default name that’s given to this variable: “form”.

After we set up the step we can decide what to do in case of a successful sign-up. For example, we can follow up with a message that asks to confirm the data we just extracted. To do this, we’ll add a “Reply to channel message” step as displayed below. Note that we can access individual fields with {{form.full-name}}, {{form.email-address}} etc. In general, the format is {{<name of variable from Fill Form step>.<field in form knowledge base>}}

Alternatively, you can find a JSON representation of the form in the root variable, in this quickstart that would be the “form” variable. This can be useful when calling an HTTP endpoint with all of the detected fields in the payload. Let’s wait for the user’s response to this confirmation by adding a “Wait for a response” step. We’ll put the response in a variable named “confirmation”.

A user might reply with many different ways of saying ‘yes’ or ‘no’, for example: “Sure!”, “Yes, looks good!”, “Affirmative!” or “Nope!”, “Not OK”, “No that’s incorrect”. If you want to robustly deal with such cases, you can use our public “Yes / No” intent model. Setting it up is easy: add another step “Recognize Intent” and select the “Yes - No [Multlingual]” dataset. The “Content to recognize'' in this case is “confirmation” which should be visible in the dropdown. If the user is trying to express confirmation or rejection, the ML-powered intent recognition will pick it up whilst dealing with any reasonable variations to saying ‘yes’ or ‘no’. If the user replies with something that’s neither a “yes” or a “no” to the question, the “Fallback intent” is assigned to the “Output variable”. In the end, the intent recognition step will look as follows:

Depending on whether the user confirmed or rejected the detected fields we want to do different things: - Confirmed: perform an outbound HTTP call with the fields as a payload - Rejected: create an inbox ticket to allow a human agent to step in - Fallback: try to confirm again. For each of these cases we can branch off using the “Branch” step. If the “confirmed” variable (see last figure) equals “yes” we want to reply to express our gratitude and promise the customer to follow up via email. Let’s first look at the ‘happy path’. For this we add a branch that compares the “confirmed” variable with “yes”.

Within the branch we add a “Reply to channel message”:

Then we’ll add a step to send out an HTTP request to an API on your platform:

After sending this message, we’ll create an Inbox ticket for them so that the remainder can be taken over by an agent. Finally, we want to make sure we ask again for confirmation if our entity recognition didn’t detect a ‘yes’ or ‘no’ response. This we’ll do with a brief message saying we didn’t yet understand their response after which we use a Jump To step to go back to the step where we awaited the confirmation.

When all of this is put in place, you should obtain something like:

The final scenario we need to take care of is an unsuccessful attempt at filling the form, which is on the right branch of a Fill Form step. In that case, we want to do a similar thing as done in the ‘no’ step after the confirmation detection: we’ll just inform about the handover and create an inbox ticket.

And that’s it! Congratulations on building your first Fill Form flow! It’s always a good idea to try out the flow through the simulator. Next to “Publish” and “Save draft” you should see a “Simulate” button on top:

When clicking on “Simulate” you should see a phone screen popping up on the right side of your screen. We’ll write our first message here to get the conversation started.

You should see the first prompt you entered as the first outgoing message. Now go ahead and give a realistic name.

So far, so good! You can now continue to fill all the questions in the form to eventually get to the confirmation message:

As a last step, we confirm the information:

If you’re confident enough with the flow and want to start using it on your first batch of users, you can now stop the Simulator to return to the edit view. There you can click “Publish” on the top of the flow edit screen. Your channel should now send incoming messages through this flow!

Other use cases

The tables below provide some additional inspiration for you to configure your own form filling knowledge bases.

Order cancellation

Form Input

Type

Prompt

customer-id

Custom (Regular expression)

Could you give me your customer ID?

order-id

Custom (Regular expression)

Could you give me your order number?

Booking a table at a restaurant

Form Input

Type

Prompt

time

time

When would you like to come in?

number-of-guests

numeral

With how many people are you coming in?

Booking a flight

Form Input

Type

Prompt

origin

geopolitical

Where would you like to depart from?

destination

geopolitical

Where would you like to go?

time

time

When would you like to travel?

max-price

amount-of-money

What is the budget for a single ticket?

number-of-tickets

numeral

How many tickets would you like to book?

Donation form

Form Input

Type

Prompt

name

person

What is your name?

email

email

What is your email address?

donation

amount-of-money

How much would you be willing to donate?

Booking a room

Form Input

Type

Prompt

name

person

What is your name?

email

email

What is your email address?

number-of-guests

numeral

With how many people are you visiting?

preferred-bed-type

Custom (keywords “single”, “double”, “queen”, “king”)

What is your preferred bed type?

A

or any other channel from

We want to ensure we are extracting the names of cities in both cases. One common technique to extract such data from natural language is referred to as Named Entity Recognition (NER). We have already introduced an NER step to Flow Builder , but we realized that building a flow for achieving the interaction as the one described above can be tricky. This is where our new Fill Form step comes in. It does not just use NER to extract the relevant data, but it’ll make it easy to do so for an arbitrary number of fields while prompting your customer for every field in turn. Note that our NER engine not only extracts city names, but many other kinds of entities such as names, credit card numbers, phone numbers, email addresses etc. To see a complete overview, head over to the .

Set up a channel for or on our platform. If you have already done this, feel free to skip this step!

Follow to get started with Telegram. Alternatively, you can look through .

Type This is the type of field you want to extract. It can be one of the entities that are predefined or you can create a custom one. If you’re not sure what type to pick, be sure to read about to know more about the possibilities. Prompt This is the phrase to ask the customer to provide the relevant data. Usually, it’ll look something like “Can you tell me X?” such as “Can you tell me your name?” or “Can you tell me your order ID?”, but you’re free to change this in any way that makes sense. Sign Up Form fields So let’s look at our first field from the list we defined earlier. The name we give to this field will simply be “full-name”, so we’ll put that under “Form input”. We want to extract the full name of a person. The entity type that best fits this is “person”. Finally, the “Prompt” will be “Could you give me your full name?”. After filling in these values, your window should look like the one in the image above. Our next field will be the email address. We’ll use the name “email-address”, the entity type “email” and the prompt “What is your email address?”.

To learn more about regular expressions and test your regular expressions take a look and select the “Python” flavor. The exact syntax used by our regular expressions can be found . The regular expression in this case should look something like “[1-9]\d{3} ?[a-zA-Z]{2}”. Navigate to the bottom of the Entity Type dropdown and select “Create custom entity”. Then, you can specify the name of the custom entity, e.g. “nl-postal-code”, the type of custom entity “Regular expressions” and the patterns you want to search for. In this case we have exactly 1 pattern: “[1-9]\d{3} ?[a-zA-Z]{2}”. After filling in the above regular expression pattern the form should look like the image below:

Make sure to enable the “Body” and put the “form” variable there. The “Content-Type header” should be set to “application/json”. If you can, we strongly recommend to ensure proper authentication. Next we’ll think about the case where the user rejects our interpretation of the form we just gave them. In that case we’ll connect them to an agent in Inbox and inform them accordingly.

MessageBird account
Telegram
MessageBird's offering
previously
NER quickstart
Telegram
any other channel
these steps
our remaining quickstarts for other channels
named entity recognition (NER)
here
here
setting up an OAuth integration
Flow Builder
What is Fill Form?
An automated conversational sign up form
Overview of steps
Step 1: Set up a channel
Step 2: Create a Form knowledge base
Step 3: Add custom entities to the form if needed
Step 4: Create a flow with a Fill Form step
Other use cases
Order cancellation
Booking a table at a restaurant
Booking a flight
Donation form
Booking a room