TextIt
Go to website
Back
Articles on:
Flows
This collection helps you build and manage your flows. Find information on ActionSets & RuleSets, flow variables, flow types, importing & exporting flows, and m
Contact Variables
Contact Variables @contact - references the contact receiving the message. This is the active contact - the person whose responses are being handled by the workflow. When using the Send a Message to Someone Else action, @contact refers to the contact or group of contacts to which the message is being sent. Each extension, e.g. @contact.name or @contact.fields.field_name, references a specific contact field. @contact - T
Very popular
Calling a Webhook
In the example above, we're asking contacts to send their name, which will look up their PID using a webhook with Airtable. Webhooks simply POST flow data structured as JSON to an external service every time a contact reaches a Call Webhook action. When a contact reaches this node, we'll call the URL you've configure
Very popular
Configuring a Webhook with Airtable
Airtable enables you to build and organize databases for just about any project you could imagine. The basic version is totally free to use and allows for real time collaboration with team members, making it an ideal data organization tool. In the example below, we're using the Call Webhook action in a flow to look up sales agents by zip code as stored in an Airtable database that we've created. Build your Airtable
Very popular
Flow Types
We provide three flow types that are made available depending on the capabilities of the channel you've connected to your account. Messaging workflows are applied to SMS and social media channels, as well as our Surveyor applications, while voice workflows differ in structure. Flow type is chosen when creating a flow: , period (.) or plus sign (+). As an example, you might record the birth of a child by soliciting messages in the following format: "birth [gender]+[name]+[mother's birth year]," which could yield the result "birth f+Noel+1985". In the case above, the term "birth" acts as a keyword trigger, initiating the flow. In the following exampl
Popular
Starting a Flow
A flow can be started in one of a many ways: You can manually start a flow at any time via the "Start Flow" box in the flow editor. You can check the "Restart contacts who have already entered this flow" setting to send to contacts who have already received a message from your flow. Additionally, the "Interrupt contacts currently active in flows" setting allows you to decide whether your flow will interrupt others. Your contacts can start a flow by sending a [keyword trigger
Popular
Adding Timeouts to a Flow
When your contacts don't respond to a message in a flow, you can add a timeout to send an automatic message. This feature allows you remind your contacts to respond, to let them know they can restart the flow at a later time, or to place other actions on non-responsive contacts, such as adding or removing them in a group, sending an email, and more.
Popular
Introduction to Flows
A flow is a visual representation of conditional branch logic that's applied to your contacts once they enter it. Once a contact has entered a flow, they interact directly with its nodes. Nodes are composed of actions and Split Actions, and determine the length of a flow, which can be as short as a single node or as long as you want. Actions An [action](/en/article/actio
Some readers
Sending Messages with a Flow
In the example below, we've asked an initial question, received a response, and created a new Send Message action that will send automatically when a contact reaches that node in the flow: We'd then go on to create Send Message actions for each of the possible
Some readers
Global Variables
Globals are shared values that can be referenced in flows, as well as broadcasts and campaigns, within your account referenced by @globals.value_name. They allow you to create a value once and use it repeatedly without having to reenter the value. Likewise, globals make updating a shared value much easier. Rather than manually changing
Some readers
Creating a Multi-Language Flow
Once you've set your account's primary and secondary languages, you can edit your flows to toggle between multiple languages depending on your contacts' language preferences. Once you have selected the languages for your workspace, you can create multi language flows by following these steps: Navigate to the "Flows" tab and create a flow. Select the flow's primary language. This will be the language you'll see when designing yo
Some readers
Setting your Contacts' Language Preferences
Using a Flow Use the Update the Contact action to update your contacts' language preferences from within a flow. Contacts will then receive messages in their preferred languages if the flow they're interacting with has been translated. In the example below, we'
Some readers
Creating an Image Attachment URL
To collect images from your contacts and generate a URL, you'll need to create two nodes: A Wait for Response action to collect the your contact's image using an open-ended response rule: 2. A Split by Expression action to save the image in your flow
Some readers
Start Somebody Else in a Flow
Use the Start somebody else in a flow action to place a separate contact or group in a flow when a contact reaches this step. In the example below, we're starting fathers, referenced using the contact variable @fields.spouse, in the "Questions for Dads" flow when the expecting mothers reach the second step of a registration flow. Create that step by adding a new node a
Some readers
Send Somebody Else a Message
Note: @contact inside the Send somebody else a message action refers to the active contact in the run, not the recipient for the message. To reference the details for the recipient, instead start that contact in a flow and use the normal Send message action with @contact . Place this action at any node in a flow to send a message to someone other than the active contact that reaches that point. For example, this action can be used to: alert others of a contact's progress in a
Some readers
Exporting a Flow
Use this action to export flows. You can export a flow to share with other accounts, or to save a specific version of your flow for later use. To export a flow: Navigate to the flows tab. Click the flow you want to export. Once in the flow editor, click the ☰ menu icon: Select the "Export Definition" option within the ☰ menu dropdown: Click the 'Export' b
Some readers
Changing the Default Flow Language
When you create a new flow, you have the option to choose the default language. This means that if a contact does not have a language preference set, then they will automatically receive the flow's messages in the default language. Remember that to be able to translate a flow into multiple languages, you'll need to m
Some readers
Fixing Missing Dependencies
In some cases, you might find that a flow depends on something that no longer exists. When this happens, you will see the action title in red (as seen above) to let you know that a flow issue is present. For example, you might be looking at a flow that references a contact field by using an expression like @fields.age. However, at some point you may have deleted the contact fie
Some readers
Exporting Flow Results
Exporting results from a single flow To export your flow results, simply choose the flow you'd like to view under the "Flows" tab, then click the ☰ menu icon in the upper right-hand corner: Next, choose "Results": You'll be brought to the results page for you
Some readers
Adding a Topic to your Facebook Messenger Flow
Facebook has updated their API to require that all messages sent to a contact after 24 hours have an appropriate 'tag', or what we call a 'topic'. Message tags allow you to send important and relevant 1:1 updates to contacts outside the standard messaging window of 24 hours after a contact's last message. By default your flows will use the NON_PROMOTIONAL_SUBSCRIPTION tag for your outgoing messages whic
Some readers
Response Rules
Response rules evaluate the operand designated by the Split Action type. In the example below, we see that a Wait for Response action evaluates the incoming message, or the @input.text operand. Response rules provide a series of tests that you can run against the selected operand. For example, the "has only the phrase" response rule tests the operand for any of the words you designate. Response rules are executed from top to bottom–the first rule that matches takes effect
Some readers
Importing a Flow
Use this action to import flows into your account. To import a flow: Click on your account in the top right corner of the page. Click on the ☰ menu to access its drop-down menu and then click on the Import to begin the import process.
Some readers
Split by Contact Field
This action is useful to check that your contacts have particular contacts fields completed or not. This avoids having to ask your contacts for the same information repeatedly while ensuring empty contact fields are updated. In the example below, we want to see if our contact already has a name saved in their contact information. If they do, we'll route the contact through Has Name. If there is no existing text in the Name contact field, they will be asked to send their name and we'
Some readers
Introduction to Flow Variables
By default, a flow containing Split Actions contains a collection of variables resulting from each Split Action evaluation. For example, the Wait for Response action below will produce the flow variable @results.phone when a contact responds and passes through it to the next node. Each variable starts with the "@" symbol, which triggers an auto-complete drop-down menu
Some readers
Sending Airtime with DT One
The action Send Airtime enables you to transfer airtime to prepaid phones on over 550 mobile operators across 160 countries through one single API connection with DT One, formerly TransferTo. See how to create your DT Shop account at the end of this article. Enabling Airtime Transfer After setting up your
Some readers
Adding Labels to Responses
Use the Label the Incoming Message action to label incoming messages handled by your workflow. Whereas sorting contacts into groups allows you to segment contacts based on their responses, labeling incoming messages allows you to isolate responses to a specific question. Message labels can be viewed - and also created - in the "Messages" tab: How it Works Let's say you
Some readers
Viewing Results
Viewing Results When your contacts interact with a flow, their responses are stored as flow results which you can access by selecting "Results" from the ☰ menu icon in the flow editor: The results page will provide a 'Download' button in addition to an 'Overvi
Some readers
Assigning Keywords to a Flow
You can assign keywords to a flow to allow your contacts to start it at their discretion. A keyword is the first word in an incoming message. To assign a keyword to a flow: (1) Navigate to the "flows" tab and choose a flow. (2) Select "Edit" from the ☰ menu icon in the top right portion of the flow editor. (3) Add your keyword(s). Note that they aren't ca
Some readers
Actions
A flow is a visual representation of conditional branch logic that's applied to your contacts once they enter it. Once a contact has entered a flow, they interact directly with its nodes. Nodes are composed of actions and Split Actions, and determine the length of a flow, which can be as short as a single node or as long as you want. Actions ![](https://storage.crisp.chat/
Some readers
Start Flow Sending Options
When you manually start a flow, you'll notice that there are checkboxes within the dialogue box. These are the sending options: Checking Restart contacts who have already entered this flow will ensure that contacts who have previously entered the flow will restart it from the beginning. Checking **Interrupt contacts currently
Some readers
Setting an Expiration for a Flow
When contacts are inactive a flow, you may want to automatically remove them after a certain time period. You can do this by setting an expiration. First, enter your flow and click the ☰ menu icon and choose "Edit". Next, choose an expiration time from the dropdown menu. ![](https://storage.crisp.chat/users/helpdesk/website/aaa0598338783000/4ae026d6-b249-47b7-b423-b0b973
Some readers
Routing Contacts with Splits
Split Actions are the pivot points in a flow, "splitting" it into new branches. They're conditional statements that enable you to direct your contacts after evaluating: an incoming message or recording a request to a webhook a Zapier flow event an airtime transfer the contact's activity in a subflow
Some readers
Splitting by Group Membership
Route a contact through a flow's logic using a 'Split by Group Membership' node. This will allow you to send customized messages to a contact depending on their groups. For example, you could stop contacts who've already completed a previous registration flow where they've already been added to a group from restarting all over again: By splitting on the group membership only cont
Some readers
Adding Classifiers to a Flow
Classifiers let you interpret words and phrases into intents you can act on. Various services let you train your own classifier which you can then use in your flows to draw meaning from the unstructured text contacts send you. We support the following classifier platforms: Wit.ai is a Facebook owned natural language platform that supports up to 132 languages. The service is free and easy to use and a great choice for small to medium sized bots. [LUIS](https://lu
Some readers
Navigating the Flow Editor
The flow editor is where you'll build edit your flows. Each time you create or click on a flow, you'll enter the flow editor: Anatomy of the Flow Editor 1. Name The name you gave the flow when you created it. 2. Create Message This button brings up a new node. We generally recommend beginning a flow with a Send Message action, though you may find a dif
Some readers
Organizing Flows with Labels
Labels are intended to help you manage a large number of flows. By applying the same label to more than one flow, you can better organize them. You can even create child labels: To label your flows, first check the boxes next to the flows you want to group together. By clicking on the label button at the top of the list, you'll have the option to apply an existing la
Some readers
Creating a Flow
To create a flow, navigate to the "Flows" tab and click the "Create Flow" button: The "Create Flow" dialogue will appear, where you can: give the flow a name assign it keyword triggers select the type of flow you'd like to create set the [language](/en
Few readers
Using a Flow
Using a Flow Use the Set language for contact action to update your contacts' language preferences from within a flow. Contacts will then receive messages in their preferred languages if the flow they're interacting with has been translated. In the example below, we're asking our contacts which language they prefer - English, Spanish or Chinese. Once the action evaluates their responses for language preference, contacts will pass through one of three Set language for contact
Few readers
Use a 'Split Randomly' Action to Create Evenly-Distributed Buckets
The Split Randomly action can be used for randomly passing your contacts through equally-distributed pathways in your flow. In the example below, we're immediately splitting contacts who enter a flow into two different groups named "A Flow" and "B Flow". We'
Few readers
Sending a Message to a Group
Sending a message to a group of contacts is as easy as creating a flow. Once you've created your flow, add an action containing the message you'd like to send and then select your target group from the contacts dropdown in the flow start node. Let's walk through the steps. First click on the Flows tab in the navigation bar. From the Flows page, click on "Create Flow". Name your flow and leave the other settings as their defaults, clicking "Crea
Few readers
Starting Somebody Else in a Flow from a Query
The Start Somebody Else in a Flow action allows you to place a separate contact or group in a flow when a contact reaches this step. But what if you want to start contacts who are the result of a search? We've added this new feature to allow you to easily start contacts who fit your query in another flow. In the example flow below, we've asked a school guidance counselor to send the first three letters of a student group's school ID. We also
Few readers
Switching Flows from the Old Editor to the New Editor
Switching a flow from the old editor to the new one is very easy. Enter your flow and click the ☰ menu icon in the top right corner: Next, choose "New Editor" from the dropdown menu: Your flow will instantly switch to the new editor. You'll immediately notice t
Few readers
Adding Notes to a Flow
Adding a yellow sticky note to a flow is as simple as double-tapping within the white space of your flow editor. A blank note will appear: You can then edit the note to write whatever you'd like, such as a note to your teammates: To delete a note, just click
Few readers
Using the Context Explorer
The Context Explorer feature found in the simulator within each flow's editor allows you to view and better understand all the variables available in your flow. The explorer gives a detailed breakdown of values and their expressions, which can be copied for use elsewhere. To use the Context Explorer, first navigate to the flow's editor. In our example, we want to see all the available variables for a f
Few readers
Viewing the Flow Start Log
Viewing your Flow Start Log is helpful in understanding your account's activity. You'll see a list of all the flows that have been started, the account login that started them, and more. To view the log, first navigate to the 'Flows' tab: Scroll down and find the 'Flow Start Log' button on the lefthand side: ![](https://storage.crisp.chat/users/helpdesk/website/161f1826edf72100/d
Few readers
Copying a Flow
Copying a flow is useful when you'd like to create an exact duplicate of your flow or build off of an existing flow's structure. Create a Copy Go to your account page and click on the "Flows" tab in the upper right-hand corner. Select the flow you'd like to copy. Click on the ☰ menu icon in the top right-hand corner in the flow editor and choose "Copy": ![](ht
Few readers
Invalid Regular Expressions
A Regular Expression, commonly referred to as regexes, can be used to build custom rules that are more advanced. Regexes need to conform to a strict syntax to ensure that they are well understood when they are evaluated. If you find yourself using this advanced form of rule matching, make sure you are familiar with how they are constructed. We use perl style rules for pattern matching. If you are interested, you can read more on the basic syntax we support, [here](https://golang.org/pkg/regex
Few readers
Starting Contacts in a Flow based on a Search
You can search for contacts based on a query and start them in a flow. This allows you to search for contacts based on specific contact fields already present in your account. How it Works First, navigate to the editor of the flow you'd like to start and click the 'Start Flow' button: ![](https://storage.crisp.chat/users/helpdesk/website/7ec1d5204dc8b800/4e24a1d6-98e1-4664-b118-eec967
Few readers
Starting a Contact in a Flow from the Contact's Information Page
You can now start a contact in a flow directly from their individual information page. After navigating to the Contacts tab, click on the contact you'd like to start from your list: On the contact's unique information and message history page, you'll then click the 3
Few readers
Excluding Contacts when Starting Flows
Sometimes when starting a bunch of contacts in a flow you might want to leave some of them out. For example, you might want to: Skip contacts who don't typically respond Skip contacts who are actively working throu
Few readers
Searching for Contacts Currently in Flows
You've always been able to search for contacts with a query based on the contact's field. Now, you can also search for contacts currently in a particular flow, or those not in any flow, by using the same query method. Contacts currently in a flow Once you know the flow, you can search for active contacts: Go to your Contacts tab. In the search
Few readers
Targeting Recent Users When Starting a Flow
Want to improve your flow's response rate? Try targeting only recent users. When starting a flow, you'll notice exclusion options for your contacts: Checking the first box means that any contacts who haven't sent you a message in the past 90 days will not be started in the flow. Only contacts
Few readers