# Developer Platform

Welcome to your team’s developer platform

<h2 align="center">FlowBridge Connect Documentation</h2>

<p align="center">Everything you need to build, launch, and scale AI-powered chat integrations.<br>From Meta platforms to Telegram &#x26; Slack — connect your AI agents seamlessly.</p>

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><h4><i class="fa-leaf">:leaf:</i></h4></td><td><strong>Quick Start Guide</strong></td><td>Quickly set up an integration</td><td><a href="/spaces/9qvWi43l9ivADiJhqOPC/pages/7FvWQMF0kTK7HGhlQfmo">/spaces/9qvWi43l9ivADiJhqOPC/pages/7FvWQMF0kTK7HGhlQfmo</a></td><td><a href="/files/YZ5yqtsvKkyCplZoJBM1">/files/YZ5yqtsvKkyCplZoJBM1</a></td></tr><tr><td><h4><i class="fa-server">:server:</i></h4></td><td><strong>Integrations</strong></td><td>Learn about the different integrations supported by FlowBridge Connect</td><td><a href="/spaces/9qvWi43l9ivADiJhqOPC/pages/l0wTMxOdNzQSzcBjrG3c">/spaces/9qvWi43l9ivADiJhqOPC/pages/l0wTMxOdNzQSzcBjrG3c</a></td><td><a href="/files/k18NxspIPYoYQZoAQmcG">/files/k18NxspIPYoYQZoAQmcG</a></td></tr><tr><td><h4><i class="fa-terminal">:terminal:</i></h4></td><td>What is FlowBridge?</td><td>Learn about what we do and how to do it!</td><td><a href="/spaces/9qvWi43l9ivADiJhqOPC/pages/LThc2RqOxBKU56Qt3TMy">/spaces/9qvWi43l9ivADiJhqOPC/pages/LThc2RqOxBKU56Qt3TMy</a></td><td><a href="/files/nAuMuV3vQwwhjwYVhR4Z">/files/nAuMuV3vQwwhjwYVhR4Z</a></td></tr></tbody></table>

### Get started in 5 minutes

Connecting to social channels is as easy as pouring a cup of coffee. Just follow these 3 simple steps and your ready to go!

{% stepper %}
{% step %}

### Create a Client Company

Once you registered your FlowBridge Connect account, you will be transferred to your FlowBridge environments admin panel. From here you click on "Client Companies" and give it the name of your or your client's business.&#x20;
{% endstep %}

{% step %}

### Create a Voiceflow Project

Now you want to create a project, and associate it with the business you created. Companies can have multiple projects associated with them and are able to select which project they want to view on the Customer Panel.&#x20;

Fill in the API key as well as the Project ID from your Voiceflow project in to the fields and click create!
{% endstep %}

{% step %}

### Create a Client Integration

From here, we want to connect the social channel and associate it with a project. We support multiple social channels each with their own set-up process. For Meta it's a matter of clicking "Login with Facebook" and following to prompts. Once completed, you're completely set up and ready to go!&#x20;

Learn more about the different integration channels on the Social Integrations page in the docs!
{% endstep %}
{% endstepper %}

<h2 align="center">Join a community of AI experts</h2>

<p align="center">Join our Discord community to learn, share or request support</p>

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4><i class="fa-discord">:discord:</i></h4></td><td><strong>Discord community</strong></td><td>Join our Discord community to post questions, get help, and share resources with over 3,000 like-minded developers.</td><td><a href="https://discord.gg/7DenVJnHs6" class="button secondary" data-icon="discord">Join Discord</a></td><td><a href="/files/yA9SLfB3gGonTOXQAg0k">/files/yA9SLfB3gGonTOXQAg0k</a></td></tr></tbody></table>


# Welcome

Welcome to the official documentation for **FlowBridge**, the platform that helps you deploy and manage AI assistants across messaging and social channels—fast, at scale, and with full control.

### What is FlowBridge? &#x20;

FlowBridge is built for agencies, teams, and developers who want to connect conversational agents (for example, built in Voiceflow) to channels like WhatsApp, Instagram, Facebook Messenger, Telegram, and more—all under one platform. &#x20;

You’ll be able to: &#x20;

* Deploy agents across multiple channels in minutes&#x20;
* Process voice notes, images, and rich media as part of a natural conversation
* Capture leads, manage conversations, and hand off to humans when needed
* White-label dashboards and manage multiple clients from a single control panel&#x20;

### Who is this documentation for?

This documentation is for:

* AI automation agencies who deliver conversational agents to clients
* Conversation designers and Voiceflow power users
* Developers who build integrations, customise agent logic and maintain production bots
* Technical project leads managing multi-client deployments

If you’re looking to go from idea → deployment → management of AI assistants across social messaging channels, you’re in the right place.

### What you’ll achieve with FlowBridge

By using FlowBridge you’ll be able to:

* ✨ Reduce developer dependency: launch agents without exclusively relying on build teams
* ⏱ Speed up time to market: integrate your agents and get live quickly
* 📈 Scale across clients and channels: one platform, many deployments
* 🤖 Enable richer conversations: support voice, images and dynamic media
* 🧩 Manage the conversation lifecycle: from capture to leading → human-handoff → analytics

### Ready to get started?

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4><i class="fa-bolt">:bolt:</i></h4></td><td><strong>Quickstart</strong></td><td>Create your first integration</td><td></td><td></td><td><a href="/pages/7FvWQMF0kTK7HGhlQfmo">/pages/7FvWQMF0kTK7HGhlQfmo</a></td></tr><tr><td><h4><i class="fa-leaf">:leaf:</i></h4></td><td><strong>Integrations</strong></td><td>Learn about the different integrations</td><td></td><td></td><td><a href="/pages/l0wTMxOdNzQSzcBjrG3c">/pages/l0wTMxOdNzQSzcBjrG3c</a></td></tr></tbody></table>


# Quickstart

Connecting your voiceflow project to FlowBridge is quick and easy. For this section you'll need 2 things:

* [ ] A project you created on [Voiceflow](https://voiceflow.com/) that you have "published" through the publish button on your flow
* [ ] A free account on [FlowBridge Connect](https://flowbridge.app/)

Once you have these 2 things, we're ready to get you integrated with one of the integrations! For this example, we'll use Facebook Messenger as our integration. You can go to the Integrations documentation to get more information on the specific integration you need!

### Lets integrate with Facebook!

Once you've created a FlowBridge Connect account, you should be redirected to your personal environment. The URL will be a sub-domain of FlowBridge chosen by you (i.e `https://{your-sub-domain}.flowbridge.app`)\
\
This is the domain to your personal environment, where you login and manage your integrations. This is also the link you share with your clients to be able to login and view the analytics and chats.

There a Customer panel as well as a Admin panel. The customer panel is where you can view chat messages, initiate human handoff, reset user states and more.

The Admin Panel is where you will manage your client companies, voiceflow projects and integrations.

Let's make the first integration!

{% stepper %}
{% step %}

### Create a client company

Within the Admin Panel of your FlowBridge connect environment, you will see a navigation option `Client Companies` . Voiceflow Projects are associated with Client Companies. When you create a normal (non-admin) user, you can associate it with a client company too. Once they login to your environment, they will only be able to see Voiceflow projects associated with the company they are associated to. \
\
Lets call the Client Company "My Company"

<figure><img src="/files/qArKfGgCLmyokWoNIiZ0" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Create a Voiceflow Project

The next step is to create a Voiceflow project within your FlowBridge Connect environment. This serves as the "Bridge" between FlowBridge Connect and Voiceflow. \
\
We first associate the Voiceflow Project with a Client Company. This means users associated with that company will be able to see this project.

<figure><img src="/files/QYz8uuFZWDURICSrJGut" alt=""><figcaption></figcaption></figure>

To find the Project ID for your voiceflow project, once you open the specific project on Voiceflow, you can hit the cogwheel icon, click "general" and your Project ID will be found there:

<figure><img src="/files/r3YFBl9zON6tMYw3zK06" alt=""><figcaption></figcaption></figure>

To find the API key, in the same settings screen, you will see an option `API Keys` in the navigation. You will be able to copy the API token there, and paste it in to the "Voiceflow API Token" field&#x20;

<figure><img src="/files/oNSiYz9TG40DOQrvbGkp" alt=""><figcaption></figcaption></figure>

Now you can click `Create` and your voiceflow project is now available to associate to an integration&#x20;
{% endstep %}

{% step %}

### Create the Facebook Integration

Our next step is to create an integration and associate it with the Voiceflow project. You can integrate multiple different integrations to the same project such as Instagram and Facebook. For this example, we'll demonstrate the Facebook integration.

Go to the `Client Integrations` page in the navigation on the admin panel of your FlowBridge Connect environment and create a new integration

First, we'll want to associate both a Company and Voiceflow Project for the integration. We'll select the 2 we just made&#x20;

<figure><img src="/files/MV8jR875xjhbYm4hM0fB" alt=""><figcaption></figcaption></figure>

Next we'll be prompted to give the integration a name. Let's give it a logical name so we know which integration this is like `{Project Name} {Integration Name}`

<figure><img src="/files/mppx13yYbJrRnA9ZWpEl" alt=""><figcaption></figcaption></figure>

Now we want to select which integration channel we want to connect with. In our case it will be Facebook. Once you select the channel, different options may appear based on which integration channel you're trying to integrate with.&#x20;

In the case of Facebook, we have the option to use the Meta API provider, or a custom provider. Custom providers allow you to create your own Developer App on the meta platform ([https://developers.facebook.com](https://developers.facebook.com/))&#x20;

We don't provide support on custom integrations, though the option is provided to you for advanced use cases but requires you to also go through Meta App review.&#x20;

Let's stick with Meta API. After clicking the "Login with Facebook" button, a popup should appear (make sure your browser has popups enabled). This is a page provided by Meta. Follow the prompts on the screen until you reach the last page with the button `Got it`

<figure><img src="/files/6pB2gBhqRWBtJPDk7HDh" alt=""><figcaption></figcaption></figure>

Once you press `Got it` the integration page should appear again and after a couple of moments, it should show the Access token provided by Meta.&#x20;

You now can select which facebook page this integration i for based on which pages you have allowed us to manage through the popup screen.

<figure><img src="/files/mJoOdeL3wiKnI0yEIABt" alt=""><figcaption></figcaption></figure>

You can press the "Create" button (it might be disabled for a couple of seconds as FlowBridge Connect tries to connect to Meta)&#x20;
{% endstep %}

{% step %}

### Integration is live

Now you've fully completed the integration! Go ahead and try to send a message to your facebook page and it should trigger the voiceflow response!
{% endstep %}
{% endstepper %}

### Some considerations

* Your Voiceflow Project should ALWAYS start with a capture utterance step. This is because users will  be initiating the conversation to Voiceflow. If you do not start with a capture step, it Voiceflow will skip over the first messages until the next capture step.
* You can connect multipe integrations to the same project.
* When using Voiceflow and FlowBridge, there are some extra considerations to keep in mind when building out your flow. Voiceflow was built around the use of Webchat where user sessions generally end upon the page closing. Given instant messaging platforms such as WhatsApp and Messenger don't actually "close", the state never ends. This can cause issues when updating the flow. Users with an existing session may need their user state reset, setting them back to the beginning of the flow, to receive the latest version. This can be done on the Client Panel > Chat Messages > Click on the chat > Click the `Reset User State` button


# Message Types Supported

Since FlowBridge Connect v7, we have pushed to have feature parity across all channels. This means all message types supported here are supported on all channels.&#x20;

## Message types from Voiceflow

Currently we support all message types from voiceflow, though they may behave differently on different channels. One example is the Carousels, as WhatsApp, Slack and Telegram don't natively support Carousels, we convert each carousel item in to individual cards and send them over as such to those channels so the functionality will continue to work, all be it through indiviual cards.\
\
We support:

* Text
* Images
* Cards
* Carousels (Though read the message above)
* Buttons
* Agent steps + Carousels/Buttons they may create
* All the remaining steps are being handled on the voiceflow side such as set variables & condition steps. They will work by default as they do not require processing by FlowBridge

## Message types from social channels

Similar to the above, we have strived as part of FlowBridge Connect v7 to have feature parity on all channels, so all channels support:

* Messages from the user
* Images being sent by the user
* Files being sent by the user
* Voice notes (They automatically get transcribed and sent to Voiceflow as normal text)
* Location message (This will set variables automatically, see [Automatically Populated Variables](/documentation/basics/automatically-populated-variables))
* Video messages
* Stickers (For Meta platform)

## Voice Notes

One of the great things FlowBridge Connect offers is the ability to accept voice notes. This requires not changes in your flow what-so-ever and works on all social channels. We use the open AI whisper model to convert speech in to text and send it over as text to your Voiceflow project. This means out of the box, users will be able to send voice messages and it will just auto-magically work!&#x20;


# Client & Admin Panels

FlowBridge Connect is meant to be used as a white-labeled solution for both your integration needs, and sharing with your client. For this reason there are 2 sections available in your FlowBridge Connect environment, the Admin Panel and Client Panel. Let's go a bit deeper in to the differences.

## Admin Panel

The admin panel is meant to be used by you as a service provider/developer. Here is where you can manage your FlowBridge Connect environment. You create new client companies, integrations, add voiceflow projects, create users, change layout and much more.&#x20;

Essentially, the admin panel is the brain of your entire FlowBridge experience. Normal user accounts can not access this part of the site.

## Client Panel

This is the central hub for your clients to view and manage their chatbots. Here they can see analytics, view chat messages between users and the chat bot and initiate handoff mode to jump in to the conversation.&#x20;

You as an Admin can create new users and associate them to a specific Client Company you created. These users can login to your FlowBridge Connect environment using the sub-domain name you chose during registration. Users will only be able to see and manage Voiceflow projects that have been associated with the company they are associated with. The are able to change which project they are looking at through the drop-down menu at the top of the client panel.

## Human Handoff (Live chat)

You can read more about the human handoff/live chat functionality on the [Human Handoff (Live chat)](/documentation/basics/human-handoff-live-chat) page


# Social Integrations

We currently support 5 integration, you can read more about them in their specific integration pages.

* [WhatsApp](/documentation/social-integrations/whatsapp)

{% embed url="<https://youtu.be/5WPce2Gp-Bw>" %}

* [Facebook Messenger](/documentation/social-integrations/facebook-messenger)
* [Instagram Messenger](/documentation/social-integrations/instagram-messenger)

{% embed url="<https://youtu.be/ZcOKO0zoVkE>" %}

* [Telegram](/documentation/social-integrations/telegram)

{% embed url="<https://youtu.be/K9b0iSC5ohY>" %}

* [Slack (NEW)](/documentation/social-integrations/slack-new)

{% embed url="<https://youtu.be/1vlxxtzA_1k>" %}

* [Discord (NEW)](/documentation/social-integrations/discord-new)


# WhatsApp

{% embed url="<https://youtu.be/5WPce2Gp-Bw>" %}

To integrate WhatsApp with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration.

## WhatsApp Specific Steps

Once you're on the `Create Client Integration` page, and have selected WhatsApp as the social channel, you will have some options to choose from. First of, you will need to choose a provider. There are 2 provider types:

### FlowBridge (Meta API) - :white\_check\_mark: **RECOMMENDED**

This option is the quickest and easiest way to connect. Once selected, you will see a button `Login with Facebook` which will open a popup allowing you to connect your Facebook/Meta account. From here you can choose to create a new or use an existing business asset and WhatsApp business account.&#x20;

You will be prompted to put in a phone number and receive a one-time pin code through SMS or Phone. Once you've validated your number, you can continue on in the embedded login flow until it closes. Once closed, FlowBridge will try to make a connection to WhatsApp. You will need to select which number/whatsapp business asset you want to connect and click on `create` .&#x20;

Once the creation is complete, you're ready to go! Go ahead and open WhatsApp and try to send a message to the number. Your voiceflow flow will now respond as per your configuration.&#x20;

#### Manual method (As part of FlowBridge) - :x: NOT RECOMMENDED

Optionally, you can create your own app on <https://developers.facebook.com> and connect your own API token here. This allows you to have more control over the connection though we do not provide support for this method and is only advised for expert users who require that extra level of control.

If you do end up using this method, you will need to create the integration, and on the view integration page, you will see a button on the top right which allows you to get the Webhook URL and Verification code.

### 360Dialog - :x: NOT RECOMMENDED

For those who already use 360Dialog as their WhatsApp provider, you can simply put in the WhatsApp acces token provided to you by 360Dialog and your Phone Number ID. This then make all queries to 360Dialog rather than the Meta API directly.&#x20;

This method is not recommended nor do we provide support on it. You should should contact 360Dialog support for any issues

## Extra Considerations

* Meta only allows a phone number to be connected to the Business Asset/API **OR** WhatsApp for business app. It can not be connected to both at a time
* Cards must have at least 1 button, and no more then 3
* Buttons (on cards or otherwise) only allow for a total of 20 characters for WhatsApp


# WhatsApp Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the WhatsApp specific variables you can create:

| Variable Name     | Value   | Description                                                                                                                                                                          |
| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| user\_name        | String  | The name of the user messaging you                                                                                                                                                   |
| phone\_number     | Integer | The phone number of the user, without the "+" added before it.                                                                                                                       |
| Channel           | String  | the channel the user is communicating on. It will be "whatsapp" for WhatsApp conversations                                                                                           |
| user\_id          | Integer | This is the same as phone\_number but exists to unify the variable naming across channels                                                                                            |
| channel\_user\_id | Integer | This is the same as phone\_number but exists to unify the variable naming across channels                                                                                            |
| phone\_number\_id | Integer | This is the Phone Number ID for the WhatsApp user. This can be used to send additional messages outside of the FlowBridge Connect platform and differs from the phone\_number itself |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Troubleshotting WhatsApp

There can be many reasons you're not receiving messages when sending a message through WhatsApp. Here are some common reasons:

1. WhatsApp API is sending us an error (could have to do with permissions)
2. The Voiceflow connection is not being established (Like with an incorrect API token)
3. Your business has been temporarily blocked from Meta (Generally this means you need to upload your ID through<https://business.facebook.com>)

## Debugging

Here are some potential debugging steps:

#### **Check integration logs**

On FlowBridge, go to the integration logs and check if there is an error there. Most errors we get from the Meta API should appear there as well as some additional errors.

#### **Check Voiceflow Transcript**

Make sure that the message you sent from WhatsApp is showing up in the Voiceflow Transcripts, even if no message is returned from WhatsApp. If it does not show up in the transcripts, it's likely to do with an incorrect API token or set up of the Voiceflow Project on FlowBridge

#### **Check Meta Business Platform**

Go to<https://business.facebook.com> and make sure that the WhatsApp manager shows the correct information. The phone number should show 'Connected'. Follow the screenshots below

1. Navigate to<https://business.facebook.com>
2. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/55f8e54a-9aee-491c-b011-9a7bbbc5a863/user_cropped_screenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=155,68)

3. Click the cogwheel next to your facebook business portfolio

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/a5c5fe6a-c852-4c38-98e2-78074e27bade/user_cropped_screenshot.jpeg?tl_px=0,40\&br_px=859,521\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=319,212)

4. Click "WhatsApp Accounts"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/4649c257-5acd-481c-ad54-f0487fc71e71/user_cropped_screenshot.jpeg?tl_px=0,253\&br_px=859,734\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=176,212)

5. Click on your WhatsApp account

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/7852b710-285c-4d9b-9536-c959592acf6b/user_cropped_screenshot.jpeg?tl_px=88,0\&br_px=948,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,184)

6. Click "WhatsApp Manager"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/07ea24da-0aa5-4f32-9011-232961c3e3f5/user_cropped_screenshot.jpeg?tl_px=824,650\&br_px=1684,1131\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=534,212)

7. Make sure it shows "Connected" on the phone number

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-28/38747b82-d935-4389-8407-aeb07b531f94/user_cropped_screenshot.jpeg?tl_px=0,141\&br_px=859,622\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=326,212)

#### if you need any additional help, feel free to contact us through on our discord (found on <https://flowbridge.app>) !


# Request User Location

The WhatsApp Location Request function allows you to request a user's location through WhatsApp. This function creates an interactive message with a location request button that prompts the user to share their current location.

#### **Implementation**

To use this function in your Voiceflow project:

1. Upload the custom function downloaded from the Custom Functions page on your FlowBridge environment, to your Voiceflow project as a custom function.
2. Add a Custom Function block in your Voiceflow flow.
3. Select the uploaded WhatsApp location request function.
4. Configure the input variables

#### **Input Parameters**

The function accepts the following input parameter:

* `bodyText`: The message to display when requesting the location (e.g., "Please share your location to find nearby stores")

If no bodyText is provided, a default message "Please share your location" will be used.

#### **Accessing Location Data**

When a user responds with their location, the following variables will be available in your Voiceflow project:

* `location_address`: The address of the shared location (if available)
* `location_latitude`: The latitude coordinate
* `location_longitude`: The longitude coordinate
* `location_name`: The name of the location (if available)
* `location_url`: A URL to the location (if available)

Once location data is received, we will also automatically send a message as text to Voiceflow which contains a stringified JSON object of the location data. This is done so that you can use a capture step to wait for the reponse, and continue after.

#### **Example**

<figure><img src="/files/Uz7RuZJ3Z81fct7n60aC" alt=""><figcaption></figcaption></figure>

![image.png](attachment:e096a75f-3763-4200-9a11-748ed7ebcc13:image.png)

![image.png](attachment:12ee5e7d-b425-44b7-b2de-882146f9f853:image.png)


# Meta's Custom Templates API

### Overview

The WhatsApp Custom Template API allows you to send pre-approved WhatsApp message templates to your customers. This allows you to initiate conversation to a user, and the voiceflow project will take over from there. This is specially good for marketing and outreach as it allows you to message a user, and your voiceflow build will handle the responses.

**Some use-cases may be:**

* Sending a marketing related message about a service they may be interested in
* Follow up with a new lead after filling in their phone number on a website
* Notify the user about changes in their e-com purchase and allow an automated system to handle support
* Essentially this allows you make initiate any conversation with a whats app user

## How does this work?

This page is still in the making, though in short:

1. You must login to <https://business.facebook.com> and go to your WhatsApp Business Manager for the given WhatsApp business account
2. From here you can create "Custom Templates" from either pre-defined templates, or your own custom template.
3. Once you have a custom template, it needs to be approved by Meta before it can be used
4. Use the API information below to trigger the custom template to be sent using the ID and Language for the custom template created by you on the WhatsApp Business Manager platform<br>

## Where do I get an API token?

You can generate an API token on the Admin Panel of your FlowBridge Environment by clicking the `API Tokens` link on the side navigation.

## API Specifications

This API supports both Meta API (Facebook) and 360Dialog providers, and handles both named and positional template variables.

### Authentication

All requests must be authenticated using Laravel Sanctum API tokens.

#### Headers

```
Authorization: Bearer {your-api-token}
Content-Type: application/json
Accept: application/json
```

### Endpoint

```
POST /api/whatsapp/{client_integration}/custom-templates/send
```

#### Path Parameters

| Parameter            | Type    | Description                                |
| -------------------- | ------- | ------------------------------------------ |
| `client_integration` | integer | The ID of your WhatsApp client integration |

### Request Body

#### Required Fields

| Field           | Type         | Description                                                 |
| --------------- | ------------ | ----------------------------------------------------------- |
| `to`            | string       | Recipient phone number in E.164 format (e.g., +1234567890)  |
| `template_name` | string       | Name of the approved WhatsApp template (max 512 characters) |
| `variables`     | array/object | Template variables (see formats below)                      |

#### Optional Fields

| Field           | Type   | Default | Description                                        |
| --------------- | ------ | ------- | -------------------------------------------------- |
| `language_code` | string | `en_US` | Language code for the template (max 10 characters) |

### Template Variable Formats

The API supports two formats for template variables:

#### 1. Named Variables (Key-Value Pairs)

Use this format when your template uses named placeholders like `{{name}}`, `{{date}}`, etc.

```json
{  
	"to": "+1234567890",  
	"template_name": "welcome_message",  
	"language_code": "en_US",  
	"variables": {    
		"name": "John Doe",    
		"date": "January 15, 2024",    
		"company": "Acme Corp"  
	}
}
```

#### 2. Positional Variables (Array)

Use this format when your template uses positional placeholders like `{{1}}`, `{{2}}`, etc.

```json
{  
	"to": "+1234567890",  
	"template_name": "order_confirmation",  
	"language_code": "en_US",  
	"variables": ["John Doe", "ORD-12345", "$99.99", "January 15, 2024"]
}
```

### Response Format

#### Success Response (202 Accepted)

The API returns immediately after queuing the message for sending. The actual WhatsApp API call happens asynchronously in the background.

```json
{  
	"success": true,  
	"message": "Template message queued for sending",  
	"data": {    
		"status": "queued",    
		"recipient": "+1234567890",    
		"template_name": "welcome_message"  
	}
}
```

**Important Notes**:

* The message is queued for asynchronous processing to improve API response times
* The job will retry up to 3 times with a 10-second backoff if it fails
* Check the Integration Logs in your FlowBridge dashboard to:
* Verify successful delivery

#### Error Responses

#### Validation Error (422 Unprocessable Entity)

```json
{  
	"success": false,  
	"message": "The given data was invalid.",  
	"errors": {    
		"to": [      
			"The phone number must be in E.164 format (e.g., +1234567890)."    
		],    
		"template_name": [      
		"The template name is required."    
		]  
	}
}
```

#### Unauthorized (401 Unauthorized)

```json
{  "message": "Unauthenticated."}
```

#### Rate Limit Exceeded (429 Too Many Requests)

```json
{  "message": "Too Many Attempts.",  "exception": "Illuminate\\\\Http\\\\Exceptions\\\\ThrottleRequestsException"}
```

### Rate Limiting

The API is rate-limited to **60 requests per minute** per user. If you exceed this limit, you’ll receive a 429 status code.

### Error Codes

| Code                      | Description                                                        |
| ------------------------- | ------------------------------------------------------------------ |
| `INVALID_CHANNEL`         | The integration is not configured for WhatsApp                     |
| `UNAUTHORIZED`            | User doesn’t have permission to access this integration            |
| `MISSING_PHONE_NUMBER_ID` | Integration configuration is incomplete                            |
| `SEND_FAILED`             | Failed to send the template message (includes WhatsApp API errors) |

### Code Examples

#### PHP (using Guzzle)

```php
<?php

use GuzzleHttp\\Client;

$client = new Client([
    'base_uri' => '<https://your-sub-domain.flowbridge.app>',
    'headers' => [
        'Authorization' => 'Bearer your-api-token',
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
    ],
]);

// Named variables example
$response = $client->post('/api/whatsapp/123/custom-templates/send', [
    'json' => [
        'to'             => '+1234567890',
        'template_name'  => 'welcome_message',
        'language_code'  => 'en_US',
        'variables'      => [
            'name' => 'John Doe',
            'date' => 'January 15, 2024',
        ],
    ],
]);

$result = json_decode($response->getBody(), true);
echo "Message ID: " . $result['data']['message_id'];
```

#### JavaScript (using Axios)

```jsx
const axios = require('axios');

const sendTemplate = async () => {
  try {
    const response = await axios.post(
      '<https://your-sub-domain.flowbridge.app/api/whatsapp/123/custom-templates/send>',
      {
        to: '+1234567890',
        template_name: 'welcome_message',
        language_code: 'en_US',
        variables: {
          name: 'John Doe',
          date: 'January 15, 2024'
        }
      },
      {
        headers: {
          'Authorization': 'Bearer your-api-token',
          'Content-Type': 'application/json',
          'Accept': 'application/json'
        }
      }
    );

    console.log('Message ID:', response.data.data.message_id);
  } catch (error) {
    console.error('Error:', error.response.data);
  }
};

sendTemplate();
```

#### Python (using requests)

```python
import requests

url = '<https://your-sub-domain.flowbridge.app/api/whatsapp/123/custom-templates/send>'
headers = {
    'Authorization': 'Bearer your-api-token',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
}

# Positional variables example
data = {
    'to': '+1234567890',
    'template_name': 'order_confirmation',
    'language_code': 'en_US',
    'variables': ['John Doe', 'ORD-12345', '$99.99']
}

response = requests.post(url, json=data, headers=headers)

if response.status_code == 200:
    result = response.json()
    print(f"Message ID: {result['data']['message_id']}")
else:
    print(f"Error: {response.json()}")
```

#### cURL

```bash
# Named variables example
curl -X POST <https://your-sub-domain.flowbridge.app/api/whatsapp/123/custom-templates/send> \\
  -H "Authorization: Bearer your-api-token" \\
  -H "Content-Type: application/json" \\
  -H "Accept: application/json" \\
  -d '{
    "to": "+1234567890",
    "template_name": "welcome_message",
    "language_code": "en_US",
    "variables": {
      "name": "John Doe",
      "date": "January 15, 2024"
    }
  }'

# Positional variables example
curl -X POST <https://your-domain.com/api/whatsapp/123/custom-templates/send> \\
  -H "Authorization: Bearer your-api-token" \\
  -H "Content-Type: application/json" \\
  -H "Accept: application/json" \\
  -d '{
    "to": "+1234567890",
    "template_name": "order_confirmation",
    "language_code": "en_US",
    "variables": ["John Doe", "ORD-12345", "$99.99"]
  }'
```

### Provider Support

This API works with both WhatsApp providers:

| Provider            | Supported | Notes            |
| ------------------- | --------- | ---------------- |
| Meta API (Facebook) | ✅         | Default provider |
| 360Dialog           | ✅         | Fully supported  |

The API automatically detects which provider your integration uses and sends the message accordingly.

### Best Practices

1. **Template Approval**: Ensure your templates are approved in Meta Business Manager before sending
2. **Phone Number Format**: Always use E.164 format (+\[country code]\[number])
3. **Variable Matching**: Ensure variable count and names match your template exactly
4. **Error Handling**: Implement proper error handling for all possible error codes
5. **Rate Limiting**: Implement exponential backoff if you hit rate limits
6. **Logging**: Monitor integration logs in your dashboard for debugging

### Testing

To test the API:

1. Create a WhatsApp integration in your dashboard
2. Generate an API token from your user settings
3. Use a test phone number registered with your WhatsApp Business account
4. Send a test template using one of the code examples above

### Support

For issues or questions:

* Check integration logs in your dashboard
* Review error codes and messages
* Contact support with the message\_id for specific message issues


# Facebook Messenger

{% embed url="<https://youtu.be/ZcOKO0zoVkE>" %}

To integrate Facebook Messenger with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration.

## Facebook Specific Steps

Once you're on the `Create Client Integration` page, and have selected Facebook as the social channel, you will have some options to choose from. First of, you will need to choose a provider. There are 2 provider types:

### Meta API (Embedded login) - :white\_check\_mark: **RECOMMENDED**

This option is the quickest and easiest way to connect. Once selected, you will see a button `Login with Facebook` which will open a popup allowing you to connect your Facebook/Meta account. From here you can choose to create a new or use an existing business asset and page.&#x20;

Follow the steps as provided by Meta within the popup, you can continue on in the embedded login flow until it closes. Once closed, FlowBridge will try to make a connection to the Meta API. You will need to select which page you want to connect and click on `create` .&#x20;

Once the creation is complete, you're ready to go! Go ahead and open Facebook and try to send a message to the page. Your voiceflow flow will now respond as per your configuration.&#x20;

#### Manual token (bring your own app) - NOT RECOMMENDED

Optionally, you can create your own app on [https://developers.facebook.com](https://developers.facebook.com/) and connect your own API token here. This allows you to have more control over the connection though we do not provide support for this method and is only advised for expert users who require that extra level of control.

If you do end up using this method, you will need to create the integration, and on the view integration page, you will see a button on the top right which allows you to get the Webhook URL and Verification code.

Note that going with this approach will require your app to pass Meta's App Review process. This can generally take some days and often gets disapproved multiple times

## Extra Considerations

* Keep your Access Token secure; it’s the key to your Facebook Messenger integration.
* Cards must have at least 1 button, and no more then 3
* Buttons (on cards or otherwise) only allow for a total of 20 characters for Facebook Messenger


# Facebook Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the Facebook specific variables you can create:

| Variable Name     | Value   | Description                                                                                                |
| ----------------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| Channel           | String  | the channel the user is communicating on. It will be "facebook" for Facebook conversations                 |
| user\_id          | Integer | Facebook Page-Scoped User ID (PSID) (e.g., `1234567890`)                                                   |
| channel\_user\_id | Integer | This is the same as `user_id` and exists only to unify the variable naming across all integration channels |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Instagram Messenger

{% embed url="<https://youtu.be/ZcOKO0zoVkE>" %}

To integrate Instagram Messenger with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration.

## Instagram Specific Steps

Once you're on the `Create Client Integration` page, and have selected Intsagram as the social channel, you will have some options to choose from. First of, you will need to choose a provider. There are 2 provider types:

### Meta API (Embedded login) - :white\_check\_mark: **RECOMMENDED**

This option is the quickest and easiest way to connect. Once selected, you will see a button `Login with Facebook` which will open a popup allowing you to connect your Facebook/Meta account. From here you can choose to create a new or use an existing business asset and page.&#x20;

Follow the steps as provided by Meta within the popup, you can continue on in the embedded login flow until it closes. Once closed, FlowBridge will try to make a connection to the Meta API. You will need to select which page you want to connect and click on `create` .&#x20;

Once the creation is complete, you're ready to go! Go ahead and open Instagram (Please do this on mobile) and try to send a message to the page. Your voiceflow flow will now respond as per your configuration.&#x20;

#### Manual token (bring your own app) - :x: NOT RECOMMENDED

Optionally, you can create your own app on [https://developers.facebook.com](https://developers.facebook.com/) and connect your own API token here. This allows you to have more control over the connection though we do not provide support for this method and is only advised for expert users who require that extra level of control.

If you do end up using this method, you will need to create the integration, and on the view integration page, you will see a button on the top right which allows you to get the Webhook URL and Verification code.

Note that going with this approach will require your app to pass Meta's App Review process. This can generally take some days and often gets disapproved multiple times

## Extra Considerations

* Meta never implemented all the functions in to their web version of Instagram. Buttons for example do not appear on the web version, but DO appear on the mobile version. It's recommended to test your integration using the Instagram mobile application
* Keep your Access Token secure; it’s the key to your Instagram Messenger integration.
* Cards must have at least 1 button, and no more then 3
* Buttons (on cards or otherwise) only allow for a total of 20 characters for Instagram Messenger


# Instagram Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the Instagram specific variables you can create:

| Variable Name     | Value   | Description                                                                                  |
| ----------------- | ------- | -------------------------------------------------------------------------------------------- |
| channel           | String  | the channel the user is communicating on. It will be "instagram" for Instagram conversations |
| user\_id          | Integer | Instagram-Scoped User ID (e.g., `9876543210`)                                                |
| channel\_user\_id | Integer | The same as `user_id` but exists to unify the variale naming accross channels                |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Telegram

{% hint style="info" %}
FlowBridge makes connecting your Voiceflow project to Telegram simple and fast. All you need is the token from @BotFather and you’re ready to go!
{% endhint %}

{% embed url="<https://youtu.be/K9b0iSC5ohY>" %}

To integrate Telegram with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration

## Create your bot on telegram

To create a bot on Telegram, you will need to send a message to the @BotFather account. This is how Telegram creates new bots within their platform. Once you send a message follow the steps to create a new bot account.

## Connecting FlowBridge to your Telegram bot

Once your bot is successfully created, you will be provided a bot token. Upon having access to your bot token, you will need to paste it in on the integration configuration section after having selected `Telegram` as your integration channel.&#x20;

<figure><img src="/files/mE8mKeZ7nw6PDyipfKFe" alt=""><figcaption></figcaption></figure>

It is recommended to keep `Automatically set up webhook` checked, as this will automaitcally set the webhook URL to the correct endpoint for the integration. Without this, you will need to manually set it up using the telegram APIs, or click on the "reset webhook" button on the view integration page after having created the integration.

## Group channels

As part of FlowBridge Connect v7, group bot channels are now supported. For more information, check out the [Telegram Group Based Bots page](/documentation/social-integrations/telegram/telegram-group-based-bots)

## Telegram Specific Functionality

Due to the nature of how open the Telegram platform is, a lot of additional things are possible. One such thing that we've implemented it the Telegram Stars Invoicing capabilities, allowing you to accept and process payments directly within your bot using Telegram stars.

For more information, check out the [Automating Invoices through Telegram page](/documentation/social-integrations/telegram/telegram-invoice-and-payments-telegram-stars)


# Telegram Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the Telegram specific variables you can create:

| Variable Name        | Value   | Description                                                                                                          |
| -------------------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| user\_name           | String  | The first name of the user's account.                                                                                |
| telegram\_id         | Integer | Telegram session ID (user ID for DMs, formatted for groups)                                                          |
| channel              | String  | the channel the user is communicating on. It will be "telegram" for Telegram conversations                           |
| telegram\_chat\_type | String  | Type of chat: 'private', 'group', 'supergroup', or 'channel'                                                         |
| telegram\_chat\_id   | Integer | <p>Chat ID where message was sent<br>Example:</p><p><code>123456789</code> (DM), <code>-987654321</code> (group)</p> |
| channel\_user\_id    | Integer | Telegram user ID (e.g., `123456789`)                                                                                 |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Telegram Invoice & Payments (Telegram Stars)

FlowBridge includes a powerful **Custom Function** that allows you to send Telegram invoices and accept payments using **Telegram Stars** directly through your agent.

This integration requires **Premium Plus**.

***

### Overview

The **Telegram Invoice & Payment** custom function lets you trigger a complete payment flow directly from within your Voiceflow canvas. Simply drag the function into your flow, configure the product details, and FlowBridge handles everything that happens on Telegram.

When a user completes the purchase:

* Telegram processes the payment
* The result is sent back to FlowBridge
* Your Voiceflow flow automatically continues via the **"Completed"** path
* FlowBridge returns the **product ID** you configured, so your flow or backend can react accordingly

This allows you to create paid features, premium unlocks, digital goods, and other monetization flows with minimal setup.

***

### How It Works

1. Add the **Telegram Invoice** Custom Function to your Voiceflow project
2. Configure:
   * Product title
   * Description
   * Price (in Stars)
   * Product ID (your identifier for the item being sold)
3. When the agent reaches this function, FlowBridge automatically sends the invoice to the user on Telegram
4. The user pays using **Telegram Stars**
5. Once Telegram confirms the payment, FlowBridge triggers the **"Completed"** output path
6. Your selected **product ID** is included in the output, enabling downstream logic

***

### Payment Handling

* All payments go **directly to your Telegram bot**
* You receive the Stars immediately
* You can withdraw earnings in real currency using Telegram’s monetization tools
* FlowBridge **does not** take a cut, process the transaction, or hold funds

FlowBridge’s role is simply to orchestrate the payment + agent flow in a seamless way.

***

### Accessing Product Data

When the user completes a payment, FlowBridge includes your configured product metadata inside the response object.

If you are using the **FlowBridge Telegram API** directly, you can read the product information from the: `invoice_payload`

Inside this object, the `id` key contains the product ID you provided.\
This is useful when:

* Processing the purchase server-side
* Granting access to digital goods
* Unlocking premium features
* Tracking analytics or orders

***

### Requirements

To use Telegram Invoice & Payments through FlowBridge:

* Your Telegram bot must support payments via Stars
* Your workspace must be on the **Premium Plus plan**
* You must be using a Telegram channel connected through FlowBridge

***

### Example Use Cases

* Selling digital content (PDFs, guides, images)
* Paid premium access inside your bot
* Pay-to-unlock features inside a flow
* One-time feature upgrades
* Selling services or microtransactions inside Telegram

***

### How do I get the function?

You can download the custom function through the `Custom Functions` page on your FlowBridge Connect environment's admin panel.&#x20;


# Telegram Group Based Bots

You can invite your bot in to a group and provided automated voiceflow responses based on the conversation. The bot will require admin permissions to successfully be able to process messages.

Once you have created the integration, and you go to the view or edit integration page, you have the option to choose how message processing happens.

<figure><img src="/files/aUQ2O6sxXfyJicp3bJzO" alt=""><figcaption></figcaption></figure>

It is recommended to set it to `Only process mentions and commands` as this will only initiate the processing upon explicitly being mentioned in a group. When set to `process all messages` it will send every incoming message in the group for processing to voiceflow and consume a credit on your account for each message.

Both normal bot communications and bots within a group support human handoff functionality. Group bots will show up as the group name in the chat messages section on the client panel.


# Using the conversation API for telegram

You can use a custom backend and forward the entire webhook payload to your integration using the FlowBridge conversation API for your integration. Read more about using the API on [Custom integration through API](/documentation/advanced-use-cases/custom-integration-through-api)

## Telegram Specifics

In the case of Telegram; Telegram will send a  [Telegram Update](https://core.telegram.org/bots/api#update) within the backend of your application. You can then send over the entire payload to FlowBridge to process it and send out the response to the user.&#x20;

1. Go to Client Integrations and click on the integration you created for Telegram
2. Here you can find a button called “Integration Info”, click on it\
   ![](/files/w1QI3dbTBmbasn5sIVZM)
3. This will open a modal which contains the specific webhook URL for the integration
4. There is also a “Telegram Verification Token”. This ensures the webhook is coming from the correct place. You will need to supply a custom Header with the `POST` request to the endpoint called `X-Telegram-Bot-Api-Secret-Token` where the value of it is the verification token
5. Make sure the payload to the endpoint is the exact payload that is sent by Telegram
6. Once the API endpoint is hit, FlowBridge will take care of the rest and use the Telegram bot API to send responses from Voiceflow to the chat which is provided by the [telegram update payload](https://core.telegram.org/bots/api#update)


# Slack (NEW)

{% embed url="<https://youtu.be/1vlxxtzA_1k>" %}

To integrate Slack with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration

## Prerequisites

* Access to a Slack workspace where you can create apps
* Admin access to your application
* A configured Voiceflow project
* An active client integration in your system

{% stepper %}
{% step %}

### Create a Slack App

* Go to <https://api.slack.com/apps>
* Click "Create New App"
* Choose "From scratch"
* Enter your app name (e.g., "Your Bot Name")
* Select the workspace where you want to install the app
* Click "Create App"
  {% endstep %}

{% step %}

### Configure Bot Permissions

1. In your app settings, go to "OAuth & Permissions"
2. Scroll down to the "Scopes" section
3. Under "Bot Token Scopes", add the following permissions:

#### Required Scopes

| Scope               | Purpose                                | Required For                             |
| ------------------- | -------------------------------------- | ---------------------------------------- |
| `app_mentions:read` | Receive @mentions in channels          | Channel interactions                     |
| `channels:history`  | Read channel message history           | Channel context                          |
| `channels:read`     | View channel information               | **Display channel names in chat UI**     |
| `chat:write`        | Send messages to users and channels    | All messaging                            |
| `commands`          | Handle interactive components          | **Interactive buttons and components**   |
| `files:read`        | Download files, voice notes, and media | **Media handling & voice transcription** |
| `files:write`       | Upload files to Slack                  | Sending media to users                   |
| `groups:read`       | View private channel information       | **Display private channel names**        |
| `im:history`        | Read direct message history            | Direct message context                   |
| `im:read`           | View direct message channels           | Direct messaging                         |
| `users:read`        | Get user information                   | **Display real user names in chat UI**   |

<figure><img src="/files/gZnoaAcjMEsx3I2IoL68" alt=""><figcaption></figcaption></figure>

#### Critical Scopes for Full Functionality

⚠️ Important: The following scopes are essential for the best user experience:

* `users:read` - Without this, user names will show as `User_U123456` instead of real names like "John Smith"
* `channels:read` - Without this, channel names will show as `Channel_C123456` instead of "#general"
* `groups:read` - Without this, private channel names will show as `Channel_G123456` instead of "private-team"
* `files:read` - Without this, voice notes and media files cannot be downloaded or processed
* `commands` - Without this, interactive buttons from Voiceflow will not work
  {% endstep %}

{% step %}

### Set Up Event Subscriptions

1. Go to "Event Subscriptions" in your app settings
2. Toggle "Enable Events" to On
3. In the "Request URL" field, enter your webhook URL:

```
https://your-environment-url.flowbridge.app/v2/webhooks/slack/{your_client_integration_id}
```

Replace `{your_client_integration_id}` with your actual integration ID OR copy and paste the full URL by going to the view integration page on the integration you created, clicking the `integration info` button on the top right of the page

4. Under "Subscribe to bot events", add these events:

* `app_mention` - When your bot is mentioned with @
* `message.im` - Direct messages to your bot

5. Click "Save Changes"

<figure><img src="/files/fr66aWEGbjzjsdZ4fUNx" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}

### Configure Interactive Components (Required for Buttons)

1. Go to "Interactivity & Shortcuts" in your app settings
2. Toggle "Interactivity" to On
3. In the "Request URL" field, enter your interactive webhook URL:

```
https://your-environment-url.flowbridge.app/v2/webhooks/slack/{your_client_integration_id}
```

Replace `{your_client_integration_id}` with your actual integration ID OR copy and paste the full URL by going to the view integration page on the integration you created, clicking the `integration info` button on the top right of the page

4. Click "Save Changes"

Note: This endpoint will handle button clicks and other interactive components. The system will automatically process button selections and continue the Voiceflow conversation.
{% endstep %}

{% step %}

### Install the App to Your Workspace

1. Go to "Install App" in your app settings
2. Click "Install to Workspace"
3. Review the permissions and click "Allow"
4. Copy the "Bot User OAuth Token" (starts with `xoxb-`)
   {% endstep %}

{% step %}

### Configure Your Application

1. In your environment's admin panel, create or edit a client integration
2. Set the integration type to "Slack"
3. Configure the following fields:
   * Slack Access Token: Paste the Bot User OAuth Token from the previous step
     {% endstep %}

{% step %}

### (Again) Configure Interactive Components (Required for Buttons)

Important: This step is required for Voiceflow choice responses to display as interactive buttons.

1. Go back to your Slack app's "Interactivity & Shortcuts" settings
2. Toggle "Interactivity" to On
3. In the "Request URL" field, enter the same webhook URL as your Event Subscriptions:

```
https://your-environment-url.flowbridge.app/v2/webhooks/slack/{your_client_integration_id}
```

Replace `{your_client_integration_id}` with your actual integration ID from the previous steps

4. Click "Save Changes"

Note: The same endpoint handles both regular events and interactive components (button clicks). When users click buttons from Voiceflow choice responses, the system automatically processes the selection and continues the conversation.
{% endstep %}

{% step %}

### Test the Integration

#### Test Direct Messages:

* In Slack, find your bot in the "Apps" section
* Send a direct message to your bot
* You should receive a response from Voiceflow

#### Test Channel Mentions:

* Invite your bot to a channel: `/invite @YourBotName`
* Mention your bot in the channel: `@YourBotName Hello!`
* Your bot should respond in the same channel
  {% endstep %}
  {% endstepper %}

## Webhook URL Format

The webhook endpoint follows this pattern:

```
POST /v2/webhooks/slack/{client_integration_id}
```

Where `{client_integration_id}` is the ID of your configured Slack integration.

## Supported Features

### ✅ Direct Messages

* Users can send direct messages to your bot
* Bot responds with Voiceflow-generated content
* Maintains conversation context per user

### ✅ Channel Mentions

* Bot responds when mentioned with @ in channels
* Responses are posted in the same channel
* Thread support for organized conversations

### ✅ Message Types

* Text messages (fully supported)
* Interactive buttons&#x20;
* Image messages
* Rich content from Voiceflow

## Troubleshooting (FAQ)

<details>

<summary>Bot Not Responding</summary>

1. Check that the webhook URL is correctly configured in Slack
2. Verify the Bot User OAuth Token is correct
3. Ensure the bot has the required permissions
4. Check application logs for errors

</details>

<details>

<summary>URL Verification Failed</summary>

1. Make sure your webhook URL is publicly accessible
2. Verify the URL format matches the expected pattern

</details>

<details>

<summary>Permission Errors</summary>

1. Verify all required bot scopes are added (see Step 2 for complete list)
2. Important: After adding new scopes, you MUST reinstall the app to your workspace
3. Check that the bot is invited to channels where you're testing

</details>

<details>

<summary>Display Name Issues</summary>

Problem: Seeing `User_U123456` instead of real names, or `Channel_C123456` instead of channel names

Solution:

1. Verify these scopes are added to your bot:
   * `users:read` - For user real names
   * `channels:read` - For public channel names
   * `groups:read` - For private channel names
2. Reinstall the app after adding scopes
3. New conversations will automatically show real names
4. Existing conversations will update when the next message is sent

</details>

<details>

<summary>Media/File Issues</summary>

Problem: Voice notes or media files not working

Solution:

1. Verify `files:read` scope is added
2. Verify `files:write` scope is added (for sending media)
3. Reinstall the app after adding scopes
4. Check application logs for specific file download errors

</details>

<details>

<summary>Message Not Processed</summary>

1. Ensure your tenant has sufficient credits
2. Check that the Voiceflow project is properly configured
3. Verify the integration is active and properly set up

</details>

<details>

<summary>Interactive Buttons Not Working</summary>

1. Verify the `commands` scope is added to your bot permissions
2. Check that Interactive Components are enabled in your Slack app
3. Ensure the Interactive Components Request URL is correctly configured
4. Verify the URL includes the correct client integration ID
5. Test that the interactive endpoint is accessible from Slack's servers

</details>

## Security Considerations

* The Bot User OAuth Token should be kept secure
* Regularly rotate access tokens

## Rate Limits

Slack has rate limits for API calls:

* Tier 1: 1+ requests per minute
* Tier 2: 20+ requests per minute
* Tier 3: 50+ requests per minute
* Tier 4: 100+ requests per minute


# Slack Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the Slack specific variables you can create:

| Variable Name     | Value  | Description                                                                          |
| ----------------- | ------ | ------------------------------------------------------------------------------------ |
| user\_name        | String | The first name of the user's account.                                                |
| user\_id          | String | Slack session ID (user ID for DMs, channel ID for @mentions)                         |
| channel           | String | the channel the user is communicating on. It will be "slack" for Slack conversations |
| channel\_user\_id | String | Slack user ID (e.g., `U01234ABCD`)                                                   |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Discord (NEW)

{% embed url="<https://youtu.be/VjZhtKbDArc>" %}

To integrate Discord with your Voiceflow project, you will need to follow the same steps as shown in the [quick start](/documentation/getting-started/quickstart) section. In short, in the admin panel, you will need to:

1. Create a Client Company
2. Create a Voiceflow Project and associate the Voiceflow project to the Client Company
3. Create a Client Integration and associate the Client Company & Voiceflow Project to the integration

## Discord Bridge Server

To use Discord as an integration channel, we created a dedicated Bridge Application. This is because Discord does not operate through HTTP requests, but WebSockets. To enable communications between Discord and FlowBridge we need to have a server listening to all the changes on the discord server and forward them to your FlowBridge environment.&#x20;

You can read more on the repository: [https://github.com/FlowBridge/flowbridge-discord-bridge](https://github.com/FlowBridge/flowbridge-discord-bridge/releases/tag/v1.0.0)&#x20;

Or directly download the `flowbridge-discord-bridge` PHAR file on the releases page: [https://github.com/FlowBridge/flowbridge-discord-bridge/releases](https://github.com/FlowBridge/flowbridge-discord-bridge/releases/tag/v1.0.0)

The entire project is open source so you can tweak and adjust it to your personal needs!

#### Discord Bot Setup

1. Go to [Discord Developer Portal](https://discord.com/developers/applications)
2. Create a new application or select an existing one
3. Go to **Bot** section and create a bot
4. Copy the bot token to your \`.env\` file
5. Enable **Privileged Gateway Intents**:
   1. MESSAGE CONTENT INTENT
   2. SERVER MEMBERS INTENT
6. Go to **OAuth2 > URL Generator**:
   1. Select scopes: \`bot\`, \`applications.commands\`
   2. Select permissions: \`Send Messages\`, \`Read Message History\`, \`View Channels\`
7. Use the generated URL to invite the bot to your server

#### FlowBridge Setup

1. Login to your FlowBridge environment
2. Create a new integration and associate it with a Voiceflow Project and Client Company
3. Select "Discord" from the integration channels
4. Paste the Discord Bot Token from the previous step during the Discord Integration creation process
5. Click create
6. On the view integration page (which you automatically go to after creation), you see a button on the top right named "Integration Info"
   1. Within the popup, you can find the tenant URL and integration ID required inside the `.env` file

## Running the Discord Bridge

#### Docker Deployment through Docker Compose (Easiest)

You can use the Docker Hub hosted version of the bridge to easily host it somewhere. Below is docker hub repository, and an example `docker-compose.yml` file\
\
Save this as `docker-compose.yml`

```yaml
services:
  discord-bridge:
    image: michaelflowbridge/flowbridge-discord-bridge:1.0.0-amd64
    container_name: flowbridge-discord-bridge
    restart: unless-stopped
    environment:
      APP_NAME: "FlowBridge Discord Bridge"
      APP_ENV: production
      DISCORD_TOKEN: ""  # <-- fill this
      FLOWBRIDGE_TENANT_URL: "https://xxxxx.flowbridge.app" # <-- fill this
      FLOWBRIDGE_INTEGRATION_ID: ""  # <-- fill this
      FLOWBRIDGE_VERIFICATION_TOKEN: ""  # <-- fill this
      MESSAGE_CHANNELS: "both"
      MESSAGE_TRIGGER: "mentions_only"
      FLOWBRIDGE_WEBHOOK_RETRIES: 3

    volumes:
      - ./storage:/app/storage
```

Remember to fill in the environment variables as needed.

You can now use the docker compose command to run the server: `docker compose up`

#### Running through PHP directly

For information on the specifics of running the Discord Bridge, check out the README file located inside the `/builds` directory of the repository: <https://github.com/FlowBridge/flowbridge-discord-bridge/tree/main/builds>&#x20;

In short, you need to:

1. Download the `flowbridge-discord-bridge` file from the `./builds` directory OR from the [Releases page](https://github.com/FlowBridge/flowbridge-discord-bridge/releases)
2. You also need to download the `.env.example` file, rename it to `.env` and keep it within the same directory as the `flowbridge-discord-bridge` file.
3. Edit the values in `.env` to contain the discord bot token as well as the integration information of your flowbridge environment
4. Now, open a terminal, and run `php flowbridge-discord-bridge` (PHP must be installed on the device)
5. Your bot is now running as long as the flowbridge-discord-bridge server remains alive!

### Customizing the Discord Bridge

The discord Bridge application is fully open source. This means you can customize it completely to your needs. It is built on top of [Laracord](https://laracord.com/) a PHP based framework built on top of Laravel Zero built specifically for Discord Bot usage.&#x20;

If you want more information on the specifics on how to customize and build upon the bridge application, check out the [Laracord Documentation](https://laracord.com/docs/2.x/installation) at <https://laracord.com/>&#x20;


# Discord Specific Variables

As part of FlowBridge Connect functionality, we will populate your flow with specific variable that you can use at your own will. All you need to do is create the variable name in Voiceflow and FlowBridge Connect will automatically populate them with information

Here are the Discord specific variables you can create:

| Variable Name          | Value                      | Description                                                                                                |
| ---------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------- |
| user\_name             | String                     | The first name of the user's account.                                                                      |
| user\_id               | String                     | Session identifier - uses Discord user ID for DMs, channel ID for guild channels to create shared sessions |
| channel                | String                     | the channel the user is communicating on. It will be "discord" for Discord conversations                   |
| channel\_user\_id      | String                     | Actual Discord user ID of the message sender (always the individual user, even in guild channels)          |
| conversation\_type     | `"dm"` or `"channel"`      | Type of conversation - "dm" for direct messages, "channel" for guild/server channels                       |
| discord\_channel\_id   | Integer                    | Discord channel ID where the message was sent (DM channel ID for DMs, guild channel ID for channels)       |
| discord\_guild\_id     | Integer                    | Discord server/guild ID (only populated for guild channel messages, not available for DMs)                 |
| discord\_channel\_name | `"general"` or `"support"` | Name of the guild channel (only populated for guild channels, not available for DMs)                       |

For more information on the variables, check out the [Automatically Populated Variables page](/documentation/basics/automatically-populated-variables)


# Automatically Populated Variables

When a chat is initiated, FlowBridge will send variables to your Voiceflow build which can then be used within the project itself. To be able to use these variables, you will need to create them in the variables section of your Voiceflow project. So if you want to get the channel the user is communicating on, you can create a variable called "channel" (without the quotes) in Voiceflow.&#x20;

Some variables are available on all channels, some are specific to the integration and some only exist in specific situations

#### All Channels

* **`channel`** This can be one of the following: "whatsapp", "facebook", "instagram" or "webchat"

#### Location Data (All Channels)

This is triggered when someone sends a location message through social platforms. It populated specific variables in Voiceflow **AS WELL** as sends a “text” based interaction to voiceflow containing a stringified JSON of the information (to allow the flow to continue after sending the location message)

* **`location_latitude`** The latitude of the location
* **`location_longitude`** The longitude of the location
* **`location_address`** (WhatsApp Only) In some cases WhatsApp will populate with an actual address of the location
* **`location_name`** (WhatsApp Only) In some cases WhatsApp will populate with an actual name for the location (Like when it’s a business)
* **`location_url`** (WhatsApp Only) In some cases, WhatsApp will populate with an actual URL for the location (Like when it’s a business that has a website)

#### WhatsApp

Check out the [WhatsApp specific variables page](/documentation/social-integrations/whatsapp/whatsapp-specific-variables) for WhatsApp specific Variables

#### Telegram Specific

Check out the [Telegram Specific Variables](/documentation/social-integrations/telegram/telegram-specific-variables)page to learn about the variables we populate for Telegram based integrations


# Routing based on channel

Coming soon...


# Human Handoff (Live chat)

As part of the v7 update, jumping in to the conversation live is now possible on all integration channels who have are using the v2 endpoint. You can migrate your existing integrations to v2 by going to the Client Integrations page on the admin panel.

Human Handoff functionality is limited to environments who have the Premium Plus plan.&#x20;

## How it works

As part of the Premium Plus plan, you can see conversations happening live on the Chat Messages page within the Client Panel. As people speak to your chat bot, you will see messages updating live, both incoming messages from the user, and responses from your chat bot.&#x20;

At any point you are able to jump in to the conversation by clicking the "Handoff" button on the top side of the chat. Once in handoff mode, incoming messages from users will not be forwarded anymore to Voiceflow and the chat operator is able to send messages back to the user.&#x20;

In the case that the bot is within a Slack channel or Telegram group, the messages you send through human handoff will go to the respective channel the bot is chatting on.&#x20;

## Allowing users to request handoff

Currently, we do not have specific functionality around notifying operators about user's requesting handoff. This functionality is planned for the future along with a dedicated mobile application for operators to be able to chat on the go and be notified about new requests.&#x20;

Though as of right now, you could use [FlowBridge Alerts](/documentation/basics/voiceflow-based-notifications-on-business-communication-apps) to simulate a notification to a company about a human handoff request. You can read more about FlowBridge Alerts on the [Voiceflow based Notifications on business communication apps](/documentation/basics/voiceflow-based-notifications-on-business-communication-apps)page

## Future upgrades

Currently, the human-handoff functionality is in it's most basic form. There are many more plans to enhance functionality around live chatting including a dedicated mobile app. If you have suggestions, please join on [Discord Server](https://discord.gg/7DenVJnHs6) and leave a suggestion!


# Voice Modality

{% hint style="info" %}
We’re thrilled to announce a massive new capability in FlowBridge: support for audio modality! This feature allows users to send voice notes, which are transcribed into text and seamlessly integrated into your Voiceflow projects. Here’s everything you need to know.
{% endhint %}

### Showcasing:

{% embed url="<https://www.youtube.com/embed/4cWfFZt9Zr0>" %}

### **How It Works**

#### **1. Transcription First, Integration Next**

* When a user sends an audio message, FlowBridge **transcribes the audio into text**.
* The transcribed text is then sent directly to your **Voiceflow project**, ensuring a smooth and uninterrupted experience.

#### **2. No Additional Configuration Needed**

* From the Voiceflow project perspective, you don’t have to make any changes.
* The integration works automatically across all environments where FlowBridge is implemented.


# Image, Files & Video

{% hint style="info" %}
FlowBridge is taking integrations to the next level by adding image & file modality to its capabilities. From analyzing pictures to delivering contextually rich responses, the possibilities are endless. Here’s a quick explanation of how it works and what you can achieve.
{% endhint %}

### Showcase:

{% embed url="<https://www.youtube.com/embed/memOaFqB0Ds>" %}

### **How It Works**

#### **1. Seamless Integration with Voiceflow and APIs**

* When a user sends an image, FlowBridge **generates a URL** for the image/file.
* This URL is sent to your Voiceflow project and processed via integrations like the **OpenAI Vision API**.
* It is recommended to run a check to validate if the message being sent to voiceflow is indeed a URL to a file or not for a proper user experience

#### **2. Flexible and Versatile Use Cases**

* Handle complex image-based queries, from analyzing objects to generating recommendations.
* Leverage the **FlowBridge Function Marketplace** to connect tools like OpenAI Vision API effortlessly.

***

### **Step-by-Step Example**

1. **Request image in Voiceflow Message step**\
   In your flow, you ask the user to send a picture of their fridge
2. **User Sends an Image**

   On WhatsApp, I send a picture of my fridge.
3. **FlowBridge Processes the Image**

   FlowBridge generates a **URL** for the image and sends it to your Voiceflow project.
4. **Use a normal capture step to retrieve the URL**

   You accept a normal capture step as if the user is sending a text message, but validate that it is indeed a URL to an image
5. **Process the image**\
   Use the image URL to send it to the Open AI vision API (or any other vision based model) with the query "Provide dinner ideas based on what ingredients are in the image"
6. **AI Agent Responds with Suggestions**

   After processing, the AI agent replies:*"Based on the contents of your fridge, here are some dinner ideas: seed salad with grilled chicken, an omelette frittata, or a deli sandwich/wrap."*

***

### **Endless Applications**

From meal planning to object recognition, FlowBridge empowers your AI agents to handle visual data effortlessly. This opens up exciting new possibilities for client interactions and business automation.


# Custom Functions (Voiceflow)

FlowBridge Custom Functions are pieces of functionality that improve your Voiceflow projects. It adds unique functionality that is not natively available within Voiceflow. Things like dynamically rendering buttons based on the conversation or dynamically rendering carousels based on a search term.

You can download a custom function from the Custom Function page and import it into your Voiceflow project. Check out the individual documentation for the custom function you're interested in to under exactly what it does, and how to use it.

## Announcement Video

{% embed url="<https://youtu.be/_yxVaP0uVXg>" %}

## Requirements

**Custom functions are only available on the Premium Plus plan.**  You can go to the billing section on your FlowBridge environment to subscribe to the Premium Plus plan.

This will give you a custom License to access the functions.

As long as you have an active subscription on the Premium Plus plan, you will be able to use all functions we offer.


# Email Verifiation Function

{% hint style="info" %}
With the FlowBridge email verification function, you can validate and confirm the email the user has provided is real by sending out a code the user needs to fill in to verify their email.
{% endhint %}

### Guide:

{% embed url="<https://www.youtube.com/embed/OFI-qdJbEJc>" %}

## The Functions

There are 2 functions being used, the Email Verification function and the Code Verification function.

The function will send an email through our <noreply@flowverification.online> email address without any branding.

### Email Verification Function

This function sends out the email and returns a signature token to ensure security while verifying the email. You will need to save the signature token in to a variable in your Voiceflow project and use it again in the Code Verification function

#### **Input Variables**

**License** - The FlowBridge custom functions license found on the custom functions page on your FlowBridge environment

**Email** - This is the email of the user, generally you would ask this and use a capture step to save it

**Project ID** - This is an optional field. You can type "none" (Without the quotes) to skip this. If you choose to set a Project ID, this will be saved and visible from the client dashboard on FlowBridge

#### **Output Variables**

**Signature Token** - For security reasons, this randomized token is required to use the second part of the email verification process with the "Verify Email Code" function. You will need to save this in a variable on Voiceflow to make use of it.

### Email Code Verification Function

This function will accept the code from the user and verify if the code & signature match what was sent to the user for verification.

#### **Input Variables**

**License** - The FlowBridge custom functions license found on the custom functions page on your FlowBridge environment

**Signature** - This is the signature provided as output variable from the "Email Verification" function. This is used for security purposes

**Code** - The code provided by the user which they received in their email. Generally you would receive this through a capture step.

### **Step-by-step guide**

1. Navigate to your FlowBridge environment
2. Click "Custom Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/e366bbd8-7d9c-4992-b37b-21919346b965/ascreenshot.jpeg?tl_px=0,19\&br_px=859,500\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=98,212)

3. Click "Download"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/a46de020-7332-4d2c-927c-bbbb7c8d02b5/ascreenshot.jpeg?tl_px=1144,692\&br_px=2004,1173\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,357)

4. Go to your Voiceflow Project
5. Click "Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/7ae459b0-2d3b-4dec-ac81-e9ccf7a2063a/ascreenshot.jpeg?tl_px=0,65\&br_px=859,546\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=163,212)

6. Click this icon to import a function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/1dcc6bdf-47d2-40e3-8520-1fe249c868ae/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=801,56)

7. Click "Browse" and upload 1 of the 2 functions included in the zip file (Make sure to unarchive the zip file first)

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/e7afd04b-d4fc-4f59-a768-3fabeccb5d58/ascreenshot.jpeg?tl_px=1263,0\&br_px=2123,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,154)

8. Click "Import"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/c23417cf-dacc-4e04-94fb-fa1de18e70e2/ascreenshot.jpeg?tl_px=1372,63\&br_px=2232,544\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

9. Click here again to upload the 2nd function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/eafa8fc0-e3d2-4bd5-b29e-fe8938595b44/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=807,59)

10. Click "Browse" and select the 2nd function included

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/87753019-54d8-451f-86ea-0b52d160fe19/ascreenshot.jpeg?tl_px=1275,0\&br_px=2135,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,141)

11. Click "Import"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/c9dffa9d-f7af-4f7c-b051-cb02ff76301a/ascreenshot.jpeg?tl_px=1369,62\&br_px=2229,543\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

12. Click "Workflows"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/b1e00ad4-5b0a-4158-a654-648e33ca20ba/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=162,100)

13. Double-click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/8a74e17d-b79a-48f3-98be-338212c2f7ce/ascreenshot.jpeg?tl_px=149,0\&br_px=1009,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,154)

14. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/e202d7c3-2991-4ab2-aacc-bde6b9d22333/ascreenshot.jpeg?tl_px=966,161\&br_px=1826,642\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

15. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/43af448e-eaf5-48c0-841f-e1b41b2fc636/ascreenshot.jpeg?tl_px=1420,266\&br_px=2280,747\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

16. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/76213c62-d6d7-4ef6-83ab-7baa2c930162/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=451,175)

17. Type "What is your email?"
18. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/a3670386-9ff1-4d54-bdba-8bd888f74fcf/ascreenshot.jpeg?tl_px=1394,260\&br_px=2254,741\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

19. Click "Capture" and drag it on to the same block as where the text is

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/903341bc-9eac-4a3f-a146-5297f6667b6f/ascreenshot.jpeg?tl_px=0,144\&br_px=859,625\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=367,212)

20. Double-click the "Select or create variable" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/b96530ca-7659-4770-8a3e-33283f7a8d8d/ascreenshot.jpeg?tl_px=2527,8\&br_px=3387,489\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=550,212)

21. Type "user\_email"
22. Click "Create New Variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/99e9a6e4-ca7c-423f-9a6b-577c9fda6e52/ascreenshot.jpeg?tl_px=2527,146\&br_px=3387,627\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=579,212)

23. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/7ad7cc56-27cd-45e3-b55b-0febf6355c08/ascreenshot.jpeg?tl_px=1361,194\&br_px=2221,675\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

24. Click here and drag a line somewhere on the canvas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/43368745-209f-4005-8fe8-695e06936183/ascreenshot.jpeg?tl_px=1465,264\&br_px=2325,745\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

25. Click "Function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/b10ef8d9-0935-4971-95cc-bb46a5a02232/ascreenshot.jpeg?tl_px=2065,538\&br_px=2925,1019\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

26. Click "Select existing function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/0940b2e7-3b22-4a57-9294-e27790ca70c8/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=627,115)

27. Click "Flowbridge: Verify Email"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/e953d208-ea1e-4cd9-8e10-cad49aa58e81/ascreenshot.jpeg?tl_px=2527,1\&br_px=3387,482\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=631,212)

28. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/7ac2453a-9ee5-4fea-bfd2-97d709d10139/ascreenshot.jpeg?tl_px=2527,16\&br_px=3387,497\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=578,212)

29. Type "none" if you don't want to associate it with a project
30. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/aeb16ef3-7f4a-45a0-b80c-a9e611e98e74/ascreenshot.jpeg?tl_px=2527,46\&br_px=3387,527\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=562,212)

31. Type "{em"
32. Click "user\_"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/6283f354-ca68-44ef-90b1-751b5582faaf/ascreenshot.jpeg?tl_px=2527,79\&br_px=3387,560\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=558,212)

33. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/4d88012b-4735-4bf1-a241-2113612dd307/ascreenshot.jpeg?tl_px=2527,91\&br_px=3387,572\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=545,212)

34. Go to the FlowBridge custom functions page and copy your license code
35. Paste the license code here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/738a6e51-b450-461a-8eb6-ff7e33e613d4/ascreenshot.jpeg?tl_px=2527,95\&br_px=3387,576\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=566,212)

36. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/1d07ec99-2dc6-42a0-b788-dc1aec354e99/ascreenshot.jpeg?tl_px=2527,188\&br_px=3387,669\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=713,212)

37. Type "{signature"
38. Click "'add signature'"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/9337167c-201f-4eb3-a916-3aa37790f891/ascreenshot.jpeg?tl_px=2527,203\&br_px=3387,684\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=730,212)

39. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/00ae4845-965a-40af-9c2a-b5aa323a9283/ascreenshot.jpeg?tl_px=1363,196\&br_px=2223,677\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

40. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/3337d716-2ac1-45f3-a641-d97888cb8dd5/ascreenshot.jpeg?tl_px=2527,204\&br_px=3387,685\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=637,212)

41. Click here and drag a line somewhere on the canvas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/d2ab82a9-d955-4cb3-b36c-188e8d1de9fe/ascreenshot.jpeg?tl_px=1070,371\&br_px=1930,852\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

42. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/af2878f3-5fcf-47aa-8abf-3b2d26fa9ff7/ascreenshot.jpeg?tl_px=1346,32\&br_px=2206,513\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

43. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/cfd7b4eb-78eb-404b-afdf-0a0321f699de/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=591,158)

44. Type "Email was invalid, type it again."
45. Click here and drag a line back to the capture step for the email. This path is used if the email was deemed as invalid thus you will ask the user to type it it again.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/88deefcd-5506-47fe-9497-a21799295466/ascreenshot.jpeg?tl_px=1381,0\&br_px=2241,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,184)

46. Click here and drag a line somewhere on the canvas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/9a073a78-18de-4ac0-a97f-525874c9575e/ascreenshot.jpeg?tl_px=1070,421\&br_px=1930,902\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

47. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/b79e04ea-229c-4444-8a9d-9d483f08cb6c/ascreenshot.jpeg?tl_px=1652,486\&br_px=2512,967\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

48. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/1a692ae1-4ad6-45df-ab50-b79925b3efd2/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=480,159)

49. Type "What is the code?"
50. Click "Capture" and drag it underneath the newly created text block step

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/98b4c7e2-abcb-407f-a8e5-dd500a1c95a0/ascreenshot.jpeg?tl_px=0,147\&br_px=859,628\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=362,212)

51. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/8dc1b2f7-3db1-4b44-a998-ae17651c01c4/ascreenshot.jpeg?tl_px=2527,21\&br_px=3387,502\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=577,212)

52. Remove the current variable text

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/4bfb2a46-cbfa-4519-ba87-7819f0409e88/ascreenshot.jpeg?tl_px=2527,12\&br_px=3387,493\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=518,212)

53. Type "user\_email\_code"
54. Click "Create New Variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/09304647-4a07-4eef-af52-d09c83c4f110/ascreenshot.jpeg?tl_px=2527,154\&br_px=3387,635\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=637,212)

55. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/d7dae7f4-77bc-46dc-95e4-0a4d9165bac8/ascreenshot.jpeg?tl_px=1338,183\&br_px=2198,664\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

56. Click here and drag a line somewhere on the canvas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/1a2f0534-ab3b-4932-bd8b-3380ee99d480/ascreenshot.jpeg?tl_px=1587,307\&br_px=2447,788\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

57. Click "Function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/fa8c4988-40c0-4b24-82c9-3ac9ae0a02e0/ascreenshot.jpeg?tl_px=2087,466\&br_px=2947,947\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

58. Click "Select existing function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/b1da62a8-d5e3-4da8-ad2d-6dbfda18d0a7/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=603,124)

59. Click "FlowBridge: Verify Email Code"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/965d53a9-dd7b-4fd8-a5eb-b3eef489d1a9/ascreenshot.jpeg?tl_px=2527,23\&br_px=3387,504\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=656,212)

60. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/76fe1919-77d9-46e3-9898-22d151e836e8/ascreenshot.jpeg?tl_px=2527,20\&br_px=3387,501\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=584,212)

61. Type "{user"
62. Click "\_email\_code"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/28202b6b-b538-40dc-b729-1ef2a45533f1/ascreenshot.jpeg?tl_px=2527,80\&br_px=3387,561\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=597,212)

63. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/d390e545-bb91-4eb2-a16e-d2b6809cafdd/ascreenshot.jpeg?tl_px=2527,54\&br_px=3387,535\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=568,212)

64. Type "{sig"
65. Click "signature"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/c37b130d-f173-4fc7-a978-1b6b1b38d504/ascreenshot.jpeg?tl_px=2527,75\&br_px=3387,556\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=568,212)

66. Click here and paste in the FlowBridge custom functions license

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/12b20a33-2290-446c-9bb2-c85b968c405f/ascreenshot.jpeg?tl_px=2527,87\&br_px=3387,568\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=567,212)

67. Click here and drag a line somewhere to the convas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/a3b548ff-5cd6-4905-9f66-8c772d6d0c0d/ascreenshot.jpeg?tl_px=1592,447\&br_px=2452,928\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

68. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/8a4a37b7-a9ad-4b84-b89e-01a40fc1babc/ascreenshot.jpeg?tl_px=1532,667\&br_px=2392,1148\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

69. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/24def7e4-0a5f-4625-acbf-c4dbdc50ec2d/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=472,176)

70. Type "Invalid code, try again"
71. Click here and drag a line to the capture step where you want to capture the code the user needs to input so we can ask it again if they filled in an incorrect code

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/adada4b7-daaa-4e82-8a3e-b4797bb762c8/ascreenshot.jpeg?tl_px=1577,609\&br_px=2437,1090\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

72. Click here and drag a line somewhere on the canvas

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/764aef1e-7310-43d5-9456-0cd353a64382/ascreenshot.jpeg?tl_px=1586,402\&br_px=2446,883\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

73. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/e6980f60-fc0e-4ced-af7e-e4d6a26f37ab/ascreenshot.jpeg?tl_px=2052,461\&br_px=2912,942\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

74. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-26/9a71c008-e16c-46c2-863d-a3c229985476/ascreenshot.jpeg?tl_px=2527,0\&br_px=3387,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=481,169)

75. Type "Code was correct and successfull!"
76. Everything is now set up for email verification!


# DeepInfra Querying Function

{% hint style="info" %}
With the DeepInfra Querying function, you can easily query the DeepInfra API to use OpenAI compatible models such as ***meta-llama/Meta-Llama-3-8B-Instruct*** and optimize costs for your Voiceflow builds.
{% endhint %}

### Guide:

{% embed url="<https://youtu.be/_yxVaP0uVXg?t=62>" %}

### Input Variables

**License** - Your FlowBridge Custom Function license key

**Model** - [The DeepInfra model that is OpenAI compatible](https://deepinfra.com/models)

**Api Key** - The API key for your DeepInfra account

**System Prompt** - The system prompt you want to include (You can set this to "manual" and change the prompt in the code)

**User Prompt** - The user prompt you want to include, generally your *{last\_utterence}* variable (You can set this to "manual" and change the prompt in the code)

**Max Tokens** - The maximum tokens you want the model to use

### Step by Step guide

Here is the URL for the official support page showcasing the steps visually: <https://support.flowbridge.app/hc/en-us/articles/19033382413714-DeepInfra-Querying-Use-cheaper-open-source-models>

1. Navigate to the FlowBridge admin panel
2. Click "Custom Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3b39554b-c508-46f7-94ca-228bae396b05/ascreenshot.jpeg?tl_px=0,70\&br_px=859,551\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=88,212)

3. Click "Download" on DeepInfra Querying function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a29d5c19-758a-4fce-93dc-de55c35166d2/ascreenshot.jpeg?tl_px=1119,505\&br_px=1979,986\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

4. Go to your Voiceflow Project
5. Click "Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/ae197204-43a5-4a20-b075-9182beb7b517/ascreenshot.jpeg?tl_px=0,68\&br_px=859,549\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=158,212)

6. Click this icon to import the function code

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/063226e3-0d65-430d-ae35-de99e2d3151d/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=800,61)

7. Click "Browse"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/c58b4578-c27f-48a7-b1e9-c89d8f22c940/ascreenshot.jpeg?tl_px=1277,0\&br_px=2137,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,143)

8. Click "Import" after selecting the downloaded JSON file

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/bb283b38-e5d3-42a1-8210-43a03ba90095/ascreenshot.jpeg?tl_px=1367,74\&br_px=2227,555\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

9. Click "Workflows"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6ce5fd76-2cef-43fe-bb37-886fd604dc37/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=215,87)

10. Double-click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7bf089b2-5d9e-4208-b140-7396dc41f25f/ascreenshot.jpeg?tl_px=221,0\&br_px=1081,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,157)

11. Click "Capture" and drag it in to the project

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/e0ef67d2-db46-424e-8e90-cdd2c3c6442c/ascreenshot.jpeg?tl_px=0,141\&br_px=859,622\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=399,212)

12. Click here to connect the Start block and Capture block

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/8f2981f3-d40d-4102-a810-b5e54bf3799c/ascreenshot.jpeg?tl_px=968,209\&br_px=1828,690\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

13. Click "Function" and drag it in to the project

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/62dc6906-15de-42fb-b2c3-a07b86fa3363/ascreenshot.jpeg?tl_px=0,197\&br_px=859,678\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=369,212)

14. Click here to connect the capture block and function block

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/e92bc9b8-9622-4ac0-ab0e-2a8b9157d369/ascreenshot.jpeg?tl_px=989,289\&br_px=1849,770\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

15. Click on the function block and click on "Select existing function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7db461ac-ce2a-47a5-89b1-d7e1dce8b90c/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=688,116)

16. Click "DeepInfra Querying (OpenAI Standard)"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/1d12dfbc-cb47-4eaf-ac7f-336d09917a5c/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=654,203)

17. Go to the FlowBridge custom function page and copy your license
18. Paste the license code here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a0c02983-443d-40bf-8030-64cc296a8597/ascreenshot.jpeg?tl_px=2523,17\&br_px=3383,498\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=581,212)

19. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6bfab9fe-510e-4673-8285-d3c92b60a9da/ascreenshot.jpeg?tl_px=2523,51\&br_px=3383,532\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=576,212)

20. Write the number of maximum tokens you want the LLM to use
21. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a45882ba-a1e5-4b9e-8a12-b7d0aa281354/ascreenshot.jpeg?tl_px=2523,87\&br_px=3383,568\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=564,212)

22. In a new tab, navigate to <https://deepinfra.com/>
23. Click "Models"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/54e5f843-de08-4282-9dba-383821212040/ascreenshot.jpeg?tl_px=1182,0\&br_px=2042,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,16)

24. Click this icon which will copy the chosen LLM model you want to use (Make sure its a OpenAI compatible model).

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/637958f5-848e-48bd-aa07-a550affc91b9/ascreenshot.jpeg?tl_px=990,788\&br_px=1850,1269\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,259)

25. Paste the model here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/d61b2df7-16d2-46de-afa9-368a2def1f90/ascreenshot.jpeg?tl_px=2523,92\&br_px=3383,573\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=569,212)

26. Go back to DeepInfra, if you do not have an account yet, create one. If you do, click "Dashboard"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/334b4c69-e63a-45d2-a180-6f3d7f76b3cb/ascreenshot.jpeg?tl_px=1847,0\&br_px=2707,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,17)

27. Click "API Keys"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/12736c07-8cff-4715-8780-b216ea36b261/user_cropped_screenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=91,145)

28. Click "New API key"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/58e9c2f5-1c2d-4752-b241-2efc0aba836e/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=680,62)

29. Click the "API Key name" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/00dbd978-ec7c-4eae-9482-38d683332fe8/ascreenshot.jpeg?tl_px=1139,429\&br_px=1999,910\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

30. Type what you want to label this API key
31. Click "Generate API key"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/0c1234c7-9a2a-491b-a89f-07ee6b811261/ascreenshot.jpeg?tl_px=1190,479\&br_px=2050,960\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

32. Click this icon to copy the API key.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/0045bce2-ec68-4248-8e14-32ba86420a76/ascreenshot.jpeg?tl_px=1463,456\&br_px=2323,937\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

33. Paste the API key here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/9d539b12-f437-4221-ad23-baa45fa2dea8/ascreenshot.jpeg?tl_px=2523,129\&br_px=3383,610\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=570,212)

34. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/419820ad-fa33-4a28-be6e-0e99c367b53f/ascreenshot.jpeg?tl_px=2523,160\&br_px=3383,641\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=554,212)

35. Type you're system prompt, like "Be a pirate"
36. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b858e701-1b15-4e43-93d3-42b5350f3382/ascreenshot.jpeg?tl_px=2523,194\&br_px=3383,675\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=562,212)

37. Type "Say hello to me" or use the {last\_utterence} variable to use the message from the user
38. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f91e97c8-49a3-407e-b46f-0eaa1be2f9aa/ascreenshot.jpeg?tl_px=2523,296\&br_px=3383,777\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=706,212)

39. Type "{"
40. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/28d08156-9cca-40bd-a508-547b846b992d/ascreenshot.jpeg?tl_px=2523,633\&br_px=3383,1114\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=592,212)

41. Click the "Name" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/55366f76-a3fe-46c4-bf97-3271d3a9bde9/ascreenshot.jpeg?tl_px=1205,0\&br_px=2065,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,120)

42. Type "deepinfra\_response"
43. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/13391405-2fce-4eb9-b7e2-8378d2fb3a54/ascreenshot.jpeg?tl_px=1326,184\&br_px=2186,665\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

44. Click here and drag a line somewhere

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/75db1e57-8f3b-4f0e-9373-f6b2dd1540bd/ascreenshot.jpeg?tl_px=1326,449\&br_px=2186,930\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

45. Click "Text"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/bdce5b78-c489-4984-bd49-144739ec09ab/ascreenshot.jpeg?tl_px=1750,450\&br_px=2610,931\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

46. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/24d3827d-be52-4dbc-a846-225258bdd4cc/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=489,169)

47. Type "{deepinfra\_response}" to show the response from the LLM to the user


# Dynaimc Buttons Function

{% hint style="info" %}
With the DeepInfra Dynamic Buttons, you can suggest button responses to the user based on the conversation itself. It will use the last AI response & the user's utterance to dynamically suggest 3 potential responses that are relevant to the AI response. Check out the step-by-step guide below to understand how it works exactly.
{% endhint %}

### Guide:

{% embed url="<https://youtu.be/_yxVaP0uVXg?t=87>" %}

This will not only give some ideas to the user, but also motivate the user to continue on the conversation for more engagement.

### Input Variables

**Language** - The language the buttons should be in (i.e "Italian" or "English")

**Max Tokens** - The maximum amount of tokens you want the LLM to use in the response (i.e 1000)

**License** - Your FlowBridge custom functions license found on the Custom Function page on your FlowBridge environment

**Ai Response** - This is the last response the AI gave (Generally voiceflow uses the {last\_response} variable for this). If you are using our Custom Function for querying DeepInfra, you would want this to be the variable you created as output for that step.

**User Query** - This would generally be the {last\_utterance} variable

**Model** - [The model you want to use from DeepInfra](https://deepinfra.com/models)

**Api Key** - Your API key found on the DeepInfra dashboard (See steps below for more info)

**System Prompt** - The system prompt you want to use for the LLM (i.e "You are a customer support agent trying to help the user")

### Output Variables

**Question 1** - A potential question for one of the buttons suggesting the user's reply

**Question 2** - A potential question for one of the buttons suggesting the user's reply

**Question 3** - A potential question for one of the buttons suggesting the user's reply

### Step-by-step guide

1. Navigate to the FlowBridge admin panel
2. Click "Custom Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/2037a8ef-3222-4966-949d-b83dc31ec22a/ascreenshot.jpeg?tl_px=0,61\&br_px=859,542\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=133,212)

3. Click "Download"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/8e388f71-61fd-4d3a-a7f6-ab50ad4d80d8/ascreenshot.jpeg?tl_px=1535,506\&br_px=2395,987\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

4. Go to your Voiceflow Project
5. Click "Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a9ba3669-4d78-4481-98be-4f2ccdda0c28/ascreenshot.jpeg?tl_px=0,72\&br_px=859,553\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=157,212)

6. Click here to import the function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4e5aed79-de73-4185-bc7b-f5169b50588d/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=799,56)

7. Click "Browse"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/92023530-eff7-42d8-adbd-2b93442faa4f/ascreenshot.jpeg?tl_px=1280,0\&br_px=2140,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,158)

8. Click "Browse"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/384c2a2d-9224-4576-b35b-1fae03c38e1a/ascreenshot.jpeg?tl_px=1275,0\&br_px=2135,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,140)

9. Click "Import"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b904a858-28c5-4b4a-a824-0f5e818c6437/ascreenshot.jpeg?tl_px=1369,67\&br_px=2229,548\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

10. Click "Workflows"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/ace4b0fe-def3-43ba-a001-02bedc16abdc/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=142,96)

11. Double-click on your workflow.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3ecf6c97-bad3-4976-afeb-c8af4bd860f3/ascreenshot.jpeg?tl_px=178,0\&br_px=1038,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,150)

12. Click here and drag the line somewhere else.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/cacbfd0f-8108-46f8-baf1-0a23bf732a7b/ascreenshot.jpeg?tl_px=956,200\&br_px=1816,681\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

13. Click "Capture"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/29830684-97ac-48be-827f-19429214f892/ascreenshot.jpeg?tl_px=1430,443\&br_px=2290,924\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

14. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7354eedd-193e-4667-b243-9e7237c2b630/ascreenshot.jpeg?tl_px=1455,261\&br_px=2315,742\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

15. Click "Response AI"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/750191b4-b42e-4e9b-8444-0da47b9d4086/ascreenshot.jpeg?tl_px=1894,326\&br_px=2754,807\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

16. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b15d9bda-b813-4ca8-ac3d-c895fb84259c/ascreenshot.jpeg?tl_px=2523,49\&br_px=3383,530\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=462,212)

17. Type "Answer the question of the user below and make sure to ask a follow up question. \[\[enterenter]] Question: {las"
18. Click "last\_utterance"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/2e753cac-7aa2-4608-b3bb-7750ad6f6e8f/ascreenshot.jpeg?tl_px=2523,288\&br_px=3383,769\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=615,212)

19. Click here and drag the line somwhere.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/90ec0943-ac14-4310-b807-b3f65c9b8ce6/ascreenshot.jpeg?tl_px=1952,330\&br_px=2812,811\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

20. Click "Function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/c68c1d54-06df-4aa7-b669-ac317618fc76/ascreenshot.jpeg?tl_px=2356,548\&br_px=3216,1029\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

21. Click "Select existing function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/19d555b0-7375-4ab3-a3c1-77cdf05be756/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=618,114)

22. Click "Dynamic Buttons Deepinfra Ouput Variables"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/efee4bb8-4028-4166-813a-c2c8bdf358db/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=617,201)

23. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/ada6d70d-586e-4193-886a-aeae65a02fc2/ascreenshot.jpeg?tl_px=2523,18\&br_px=3383,499\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=565,212)

24. Type "English" or any other language you want the buttons in
25. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/c29d5014-2d0c-49a1-b818-7293a19b6293/ascreenshot.jpeg?tl_px=2523,49\&br_px=3383,530\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=553,212)

26. Type "1000" or another number you want to use as the maximum amount of tokens used
27. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/5194be46-7560-4901-aa6e-265a8480edde/ascreenshot.jpeg?tl_px=2523,81\&br_px=3383,562\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=546,212)

28. Go to the FlowBridge custom functions page, and copy your license key
29. Paste the license key in here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/04296604-fb79-4db9-a29a-5282b915fd0e/ascreenshot.jpeg?tl_px=2523,93\&br_px=3383,574\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=541,212)

30. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/0385311c-ff58-4579-b6ca-49f2b0d1bb66/ascreenshot.jpeg?tl_px=2523,120\&br_px=3383,601\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=553,212)

31. Type "{la"
32. Click "last\_response" to get the last response the AI made in your flow.

Make sure you had a Response AI step prior to the function, otherwise the last\_reponse variable will not be populated with data.

If you are using the FlowBirdge DeepInfra function for querying the LLM, make sure you set this to the variable used for the output of that function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/59549c90-8a73-4cbd-ad06-2213acd773ac/ascreenshot.jpeg?tl_px=2523,186\&br_px=3383,667\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=602,212)

33. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f3287a9f-00f9-42d3-b95a-83204d5663a4/ascreenshot.jpeg?tl_px=2523,161\&br_px=3383,642\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=566,212)

34. Type "{las"
35. Click "last\_utterance"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/01e813c5-989c-4434-a183-e05011521f7e/ascreenshot.jpeg?tl_px=2523,245\&br_px=3383,726\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=590,212)

36. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/1beed4e8-b1ad-4e36-8eaa-3727bdb2ae42/ascreenshot.jpeg?tl_px=2523,194\&br_px=3383,675\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=572,212)

37. Go the<https://deepinfra.com>
38. Click "Models"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/febb7f23-f804-434e-8f79-5faf0a82d4c9/ascreenshot.jpeg?tl_px=1157,0\&br_px=2017,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,9)

39. Click this icon to copy the LLM name.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/cd36bc71-7343-4664-a9ad-d105c0f80704/ascreenshot.jpeg?tl_px=995,788\&br_px=1855,1269\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,259)

40. Paste the LLM name here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/900e7bd9-fb62-4356-891a-d576f5ec270c/ascreenshot.jpeg?tl_px=2523,195\&br_px=3383,676\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=550,212)

41. Click "Dashboard"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/1c09f99e-3cb4-441f-9e30-d0010c1dde73/ascreenshot.jpeg?tl_px=1842,0\&br_px=2702,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,16)

42. Click "API Keys"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3025b4e5-0aca-4d42-bb2e-755832b4b0f9/user_cropped_screenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=67,149)

43. Click "New API key"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/c442f368-8f86-49a6-92fd-c64588fdd19f/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=688,66)

44. Click the "API Key name" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/c34f555e-b972-4a06-8f4b-77395097090f/ascreenshot.jpeg?tl_px=1197,416\&br_px=2057,897\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

45. Type "FlowBridge Dynamic Buttons" or the label you want to give this API key
46. Click "Generate API key"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/8507aac5-8384-4e1b-9a7b-e08ffdd55d60/ascreenshot.jpeg?tl_px=1237,485\&br_px=2097,966\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

47. Click this image.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7b1c9811-af57-45b3-b9ff-e1b971b64d89/ascreenshot.jpeg?tl_px=1467,459\&br_px=2327,940\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

48. Paste the api key from DeepInfra here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f9747801-1dc4-440f-acc7-672fc8eaf77f/ascreenshot.jpeg?tl_px=2523,233\&br_px=3383,714\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=540,212)

49. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f7171b43-a00c-45fd-b971-ac1e7f1ccbdf/ascreenshot.jpeg?tl_px=2523,264\&br_px=3383,745\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=575,212)

50. Type the system prompt you want to use like "You are a customer support agent trying to help the user"
51. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/1280ba8e-bf77-4654-851c-d3267b4a89e8/ascreenshot.jpeg?tl_px=2523,433\&br_px=3383,914\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=701,212)

52. Type "{"
53. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4b3a16d8-3aa9-4b6e-b21d-9d90b7689030/ascreenshot.jpeg?tl_px=2523,776\&br_px=3383,1257\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=567,212)

54. Type "button1"
55. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4400ef1a-0025-4999-aa5d-2c032848d4f4/ascreenshot.jpeg?tl_px=1343,195\&br_px=2203,676\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

56. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/135a4171-061b-4da2-a4fa-739238c9a9b9/ascreenshot.jpeg?tl_px=2523,401\&br_px=3383,882\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=720,212)

57. Type "{"
58. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6368eda3-7bd1-4ebe-afb4-ea4f67abc12a/ascreenshot.jpeg?tl_px=2523,737\&br_px=3383,1218\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=580,212)

59. Type "button2"
60. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/e3c0f824-427a-400d-86d1-232d209e104a/ascreenshot.jpeg?tl_px=1343,184\&br_px=2203,665\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

61. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3d4548cf-3d79-4a4b-86f6-d54c2c608d4d/ascreenshot.jpeg?tl_px=2523,364\&br_px=3383,845\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=745,212)

62. Type "{b"
63. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/0ce5ab09-4a7a-4718-a08c-53bbd4ea96a0/ascreenshot.jpeg?tl_px=2523,470\&br_px=3383,951\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=540,212)

64. Type "utton3"
65. Click "Create variable"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/01a8ab49-40ff-4e8e-ab5b-eaea38a11fbc/ascreenshot.jpeg?tl_px=1336,177\&br_px=2196,658\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

66. Click here and drag a line somewhere

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3b145400-f5fe-4d11-8134-90a3595494c1/ascreenshot.jpeg?tl_px=1733,305\&br_px=2593,786\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

67. Click "Buttons"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/454cf5c3-5bef-4409-be8f-942c18323422/ascreenshot.jpeg?tl_px=1811,515\&br_px=2671,996\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

68. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/493e6052-459f-4bb7-a05d-8745b9cdd314/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=493,160)

69. Type "{but"
70. Click "button1"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4378bc41-ec37-4178-8574-29b4b05e975c/ascreenshot.jpeg?tl_px=2523,38\&br_px=3383,519\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=615,212)

71. Click "Add Button"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/62877bbb-c429-4e82-96ac-820d4c2581c3/ascreenshot.jpeg?tl_px=2523,223\&br_px=3383,704\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=720,212)

72. Type "{bu"
73. Click "button2"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4d980b27-9c39-4eed-9aa5-69706a6ff3a1/ascreenshot.jpeg?tl_px=2523,311\&br_px=3383,792\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=524,212)

74. Click "Add Button"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/97d480de-1379-4b33-8517-40fdb567f648/ascreenshot.jpeg?tl_px=2523,453\&br_px=3383,934\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=757,212)

75. Type "{b"
76. Click "button3"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6924a973-265c-4e65-804e-ce4d5009724f/ascreenshot.jpeg?tl_px=2523,596\&br_px=3383,1077\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=521,212)

77. Click "No match"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/10c7c164-5467-4e57-8bb3-9f23d25853f7/ascreenshot.jpeg?tl_px=2523,620\&br_px=3383,1101\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=684,212)

78. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/5853ae38-d2f7-469b-af3e-07d76149cfa3/ascreenshot.jpeg?tl_px=2523,23\&br_px=3383,504\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=793,212)

79. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/cf85a675-fed1-465d-8e80-1479fc7aa456/ascreenshot.jpeg?tl_px=1778,380\&br_px=2638,861\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

80. Drag the line from Button1 directly to the Response AI step you want the button to go to (Not on the block, but the response step itself)

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f35c5d48-cdc3-4c04-866d-0996dff411db/ascreenshot.jpeg?tl_px=1167,330\&br_px=2543,1099\&force_format=png\&width=1120.0\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=524,277)

81. Drag the line from Button2 directly to the Response AI step you want the button to go to (Not on the block, but the response step itself)

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/ad6849f7-9af6-45f9-8b81-25451db17568/ascreenshot.jpeg?tl_px=994,272\&br_px=2714,1233\&force_format=png\&width=1120.0\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=523,277)

82. Drag the line from Button3 directly to the Response AI step you want the button to go to (Not on the block, but the response step itself)

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/94c81390-9628-4ed8-8965-531307cb4aae/ascreenshot.jpeg?tl_px=998,307\&br_px=2718,1269\&force_format=png\&width=1120.0\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=524,278)

83. Drag the line from No Match directly to the Response AI step you want the button to go to (Not on the block, but the response step itself)

This will allow the user to type a message rather than forcing them to click a button.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/9252235a-aa9d-4b10-b9a8-9d5de3ed045e/ascreenshot.jpeg?tl_px=1429,592\&br_px=2289,1073\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)


# Algolia Custom function

{% hint style="info" %}
The Algolia Dynamic Carousels function allows you to generate carousels dynamically based on your dataset. Algolia is Symentic Search engine, which means it uses the same technology as current LLMs (vectorization) to find relationships between a search query, and data in the database.
{% endhint %}

### Guide:

{% embed url="<https://youtu.be/_yxVaP0uVXg?t=137>" %}

For example, if the user wants to search "Sports Watch", Algolia will find items in the dataset that relate to the text "Sports Watch" and thus return a set of results related to it. The function then uses this data to dynamically render carousels on Voiceflow.

This can be done with any data set, from e-commerce to movies, the possibilities are endless. Follow the step-by-step guide below to understand more about how to set this up.

### Understanding Keys

In the custom function, there are multiple 'key' input variables. These "keys" represent the key used in your Algolia dataset. Lets look at an example.

Here I have an item from the e-commerce example dataset we used in the step-by-step guide below. The left side (in bold text) are the keys for my dataset.

In our custom function, we have an "imageKey" input variable. This input variable will be used as the image field for the cards in the carousel. In our Algolia dataset, we have the "image" key that has our URL to the image.

So in this case, we would want the "imageKey" variable to be "image"

The same goes for the "buttonKey" field. The button will use a URL action to open a new URL. In our Algolia dataset we have a "url" key which represents the page where the e-commerce item is hosted.

So in the case of the "buttonKey" in our function, we want to set that to "url"

Repeat this for all the keys in the function.

### Input Variables

**Button Label** - This will be the text used for the button below the Carousel. You can type "none" if you dont want to have a button

**Button Key** - This will be used to map the key from your Algolia database, to the button URL action on the carousel. So if your Algolia database has a key-value pair called "url", you would want to type "url" here.

**Description Key** - The key in your Algolia dataset which represents the description on the card in the carousel

**Title Key** - The key in your Algolia dataset which represents the title on the card in the carousel (i.e the name of the product, or title of the movie)

**Image Key** - The key in your Algolia dataset which represents the URL to the image which will be displayed on the card in the carousel

**License** - The license found on the FlowBridge custom functions page

**Api Key** - The Search API key for your Algolia database (View step-by-step guide on where to find this)

**Index Name** - The name you gave your Algolia index

**Application ID** - The ID for your application on Algolia

**Search Query** - The search query you want to use for searching the Algolia Database. To optmize this, you can create a "Set AI" step on Voiceflow to extract the search term from the user's last utterance, and prompt the AI to convert the entire message to an optmized search term.

### Step-by-step guide

1. Navigate to your FlowBridge admin panel
2. Click "Custom Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/27178e00-e9c8-4763-a63f-d76bb06e3f89/ascreenshot.jpeg?tl_px=0,58\&br_px=859,539\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=83,212)

3. Click "Download"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/d49539fe-a81a-4e12-b3a9-8ea53a59be5a/ascreenshot.jpeg?tl_px=1964,511\&br_px=2824,992\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

4. Go to your Voiceflow Project
5. Click this icon.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/5f28d085-36d6-48c5-ba5c-7e88437477c2/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=6,8)

6. Click "Functions"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/36fffd8f-11c6-4382-829a-f1d2d75120eb/ascreenshot.jpeg?tl_px=0,77\&br_px=859,558\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=149,212)

7. Click this icon to import a custom function

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/12652621-2178-4e5d-bb62-faa32595d877/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=803,54)

8. Click "Browse"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/3dd77d27-eea4-48a0-9da5-a763affdd583/ascreenshot.jpeg?tl_px=1263,0\&br_px=2123,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,135)

9. Click "Import"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/32df76de-b0b2-4d22-b4a0-8f705910fc7f/ascreenshot.jpeg?tl_px=1367,68\&br_px=2227,549\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

10. Click "Workflows"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/581d6f9d-138c-44e9-8aa9-de3ed16fade4/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=153,98)

11. Double-click "Home"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b97b353e-ec47-4743-a886-95d18abfc948/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=370,155)

12. Click here and drag a line to somewhere

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7a8425e9-ccc6-4969-9426-029134675dc1/ascreenshot.jpeg?tl_px=961,207\&br_px=1821,688\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

13. Click "Capture"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/d2593c8f-7ba5-4054-af47-b2a0af656093/ascreenshot.jpeg?tl_px=1353,453\&br_px=2213,934\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

14. Click here and drag a line to somewhere

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/8cb9ea1b-8608-4d20-b60c-8844720e7a85/ascreenshot.jpeg?tl_px=1404,274\&br_px=2264,755\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

15. Click "Function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/86c76458-db01-430a-8958-0308bc831701/ascreenshot.jpeg?tl_px=1846,490\&br_px=2706,971\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

16. Click "Select existing function"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b1f0cd02-c133-4482-b1fe-1ee219653872/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=574,129)

17. Click "Dynamic Carousel Algolia"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7d810bc1-fde2-4a45-8c5c-6b10420b588e/ascreenshot.jpeg?tl_px=2523,0\&br_px=3383,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=587,206)

18. Go to [algolia.com](http://algolia.com/)
19. Click "Dashboard" if you are already logged in. Otherwise login or create an account

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/32cb96eb-8373-434e-a705-a5a51efea3b7/ascreenshot.jpeg?tl_px=1873,0\&br_px=2733,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,58)

20. Click this drop down on the top of your screen

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/e16792fd-8067-4d5d-a5ae-0e4a577651a6/ascreenshot.jpeg?tl_px=601,0\&br_px=1461,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,15)

21. Click "Create Application"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/5a832d62-6473-4c42-8d16-438f3ed6dc46/user_cropped_screenshot.jpeg?tl_px=664,99\&br_px=1524,580\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

22. Click the "I accept Algolia's Terms of Service, Build Plan Terms and Service Limits, and have read Algolia's Privacy Policy" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/f6951ef5-68ec-4a9b-8e74-a203689cf525/ascreenshot.jpeg?tl_px=872,529\&br_px=1732,1010\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

23. Click "Create Application"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b7ef5f90-02e7-449e-b235-67e5f1adabb4/ascreenshot.jpeg?tl_px=1248,501\&br_px=2108,982\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

24. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/1bed55e2-bba3-4abd-a4ad-ff6e8be4b997/ascreenshot.jpeg?tl_px=593,191\&br_px=1453,672\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

25. Type "flowbridge\_dynamic\_carousel" or whatever you want to name this index
26. Click "Create index"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/19e13436-c124-45e8-9294-fe5e2d190869/ascreenshot.jpeg?tl_px=549,248\&br_px=1409,729\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

27. Click "Select sample dataset" if you want to populate the database with sample data. This is what we will be using for the purposes of this guide.

In a production environment, you will want to upload your own records. For more information, you can view the Algolia documentation.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/405fc245-51e6-4924-a6e4-91124770b670/ascreenshot.jpeg?tl_px=753,289\&br_px=1613,770\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

28. Click "E-commerce" for the purposes of this guide

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/2fe80def-5cfe-461c-a9b7-723611c8fc70/ascreenshot.jpeg?tl_px=774,384\&br_px=1634,865\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

29. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/7f2c1941-cc76-47aa-bd39-54fb2f83726d/ascreenshot.jpeg?tl_px=2523,266\&br_px=3383,747\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=592,212)

30. Type "flowbridge\_dynamic\_carousel" or whatever you ended up naming your index on Algolia
31. Go back to Algolia and click the gear icon.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/dfaaca78-6fff-444e-b05d-a54def713e1a/ascreenshot.jpeg?tl_px=0,788\&br_px=859,1269\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=-8,415)

32. Click "API Keys"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6e6a9441-2010-4372-8bbd-a9253f32bac6/ascreenshot.jpeg?tl_px=1683,40\&br_px=2543,521\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

33. Click this icon to copy the Application ID.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/41b2ed66-de96-4fdc-a2d8-02701c0a697c/ascreenshot.jpeg?tl_px=2055,77\&br_px=2915,558\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

34. Back in your voiceflow build, click here and paste in the application ID

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/948f23f1-4036-43fc-b513-144d4c0f7484/ascreenshot.jpeg?tl_px=2523,307\&br_px=3383,788\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=577,212)

35. Back in Algolia, click this icon to copy the search API token.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/4fbfcb32-6913-40d1-83d0-039d3985e470/ascreenshot.jpeg?tl_px=2051,204\&br_px=2911,685\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

36. Go back to voiceflow and paste the search API token here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a67c70f6-fdc9-4600-bad6-985730c531b6/ascreenshot.jpeg?tl_px=2523,235\&br_px=3383,716\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=581,212)

37. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/5d28bebe-4b13-401c-8d70-42f866bd5c36/ascreenshot.jpeg?tl_px=2523,343\&br_px=3383,824\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=550,212)

38. Type "{las"
39. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/cbabeb65-f137-42da-b9b0-4ad48d0bca42/ascreenshot.jpeg?tl_px=2523,439\&br_px=3383,920\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=627,212)

40. In the License variable, go to the FlowBridge custom function page, copy your license key and paste it here

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/0994e81a-43c8-42b2-a963-dbbfec4107fc/ascreenshot.jpeg?tl_px=2523,192\&br_px=3383,673\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=556,212)

41. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/a090dd1b-8fc8-46f3-9a92-d71b7c5db5df/ascreenshot.jpeg?tl_px=2523,10\&br_px=3383,491\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=540,212)

42. Type "Go to Site" or any other label. This is what will be displayed on the button under the carousel.
43. Back in Algolia, click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/b4b4db44-1fc6-4165-bb42-149c6425aba0/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=-2,153)

44. Click the "Show more attributes" on any of the items listed

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/6ecfcf9b-a891-43c2-adf3-4489fcf098e5/ascreenshot.jpeg?tl_px=805,482\&br_px=1665,963\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

45. Step
46. For the purposes of thise guide, we will be using the "image" key to represent the card image.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/48439c13-c629-442b-94b2-3a3a3bcb73bf/ascreenshot.jpeg?tl_px=1188,680\&br_px=2048,1161\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

47. Click here and type in "image". This means that the "image" key in Algolia, will be mapped to the "imageKey" variable in the function. This is then going to be used as the image on the card.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/50c68598-9f81-4df7-8d53-324a9cfd1548/ascreenshot.jpeg?tl_px=2523,161\&br_px=3383,642\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=575,212)

48. You know want to do the same for the remaining Keys. Within the e-commerce example dataset, the "name" field needs to be mapped to the "title" field of the card in the carousel.

So here we type "name"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/fa4e666f-9a30-4ef8-8b07-6bf9a9d11309/ascreenshot.jpeg?tl_px=2523,127\&br_px=3383,608\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=554,212)

49. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/dbd24c62-4d8c-4eb8-a563-7326ad1fc56a/ascreenshot.jpeg?tl_px=2523,86\&br_px=3383,567\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=568,212)

50. Type "shortDescription"
51. Click here.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-05-20/20c34968-59a5-4b7e-a63f-25a5d120f041/ascreenshot.jpeg?tl_px=2523,59\&br_px=3383,540\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=572,212)

52. Type "url"


# Voiceflow based Notifications on business communication apps

What is a notification on a business app exactly? FlowBridge allows you to connect Discord, Slack or Microsoft Teams as a notification service. This allows you to import the FlowBridge Alerts custom function in to your voiceflow build, and set a message in the function. When triggered, FlowBridge will send an alert to the chosen business app with the message.&#x20;

This is a simple, yet powerful concept. It essentially allows you to notify yourself, or a business about things that happened in the flow. Here are some potential use-cases for it:

* You want to send a notification on your Slack about an API error the in the flow
* A call-to-action has been achieved and you want send a message on your Microsoft Teams server that a new user has successfully signed up for something
* When a user wants to speak to a person, you can trigger an alert to a Discord/Slack server notifying you should initiate human handoff for a conversation&#x20;
* Many more things that require you to be notified about something

**Important note:** The function will not work if using the Run in the designer. It requires testing through one of the social channels.<br>

{% embed url="<https://www.youtube.com/watch?embeds_referring_euri=https://support.flowbridge.app/&v=vzWh3GZK6Eg>" %}

## How to use it?

You need 2 things to make this work

1. You will need to download the custom function below and import it to your Voiceflow build
   1. [Click here to download the FlowBridge Alert custom voiceflow function](https://flowbridge-public-storage-production.s3.eu-west-3.amazonaws.com/functions/FlowBridge_Alert_20240424.json)
   2. If it shows up a bunch of text rather than a download, press CTRL + S (or Command + S for mac) to download the page and save it as `FlowBridge_Alert_20240424.json`&#x20;
   3. Import the custom function in to your voiceflow project and select the "Function" step, drag it to your canvas and select the newely added function from the dropdown.
2. You will need to generate a webhook for one of the supported platforms (Slack, Discord, Microsoft Teams)
   1. [Click here to learn how to set up FlowBridge Alerts for Slack](https://www.notion.so/129419fb8eb780b583a7c95028096182?pvs=21)
   2. [Click here to learn how to set up FlowBridge Alerts for Discord](https://www.notion.so/129419fb8eb78021b0fec62cfe02d4b5?pvs=21)
   3. [Click here to learn how to set up FlowBridge Alerts for Microsoft Teams](https://www.notion.so/129419fb8eb780c99460d41a8cf9a2fd?pvs=21)


# Set up FlowBridge Alerts with Slack

1. Go to your Slack environment
2. Click on the specific channel you want the webhook for

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/0d23f391-8ccd-444e-9391-488b57cdd282/ascreenshot.jpeg?tl_px=0,255\&br_px=859,736\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=217,212)

3. Click on the title of the channel at the top

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/1710801c-3f25-4521-a21b-b541a38713cb/ascreenshot.jpeg?tl_px=215,0\&br_px=1075,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,30)

4. Click "Integrations"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/4b8d529a-4c9b-4daa-b842-e8054813323e/ascreenshot.jpeg?tl_px=344,56\&br_px=1204,537\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

5. Click "Add an app"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/a19601bb-6d10-495a-a651-178c2e9e8858/ascreenshot.jpeg?tl_px=224,366\&br_px=1084,847\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

6. Click the "Search by name or category (e.g. productivity, sales)" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9ae48008-88d6-4f65-b9b7-58bb78e7a727/ascreenshot.jpeg?tl_px=233,30\&br_px=1093,511\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

7. Type "webhook" on Incoming Webhook
8. Click "View"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9c260c70-fa3a-4a57-a7e8-58193c6ddb00/ascreenshot.jpeg?tl_px=670,200\&br_px=1530,681\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

9. Click "Configuration"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/6b4ce9a8-df88-47be-b723-29ffa8123e77/ascreenshot.jpeg?tl_px=213,130\&br_px=1073,611\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

10. Click "Add to Slack"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/64252f55-0de4-482b-b1a8-3a8570014039/ascreenshot.jpeg?tl_px=74,169\&br_px=933,650\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

11. Click "Choose a channel…"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/7c33fa0b-819d-42c5-86b3-f7ed994d1dad/ascreenshot.jpeg?tl_px=396,432\&br_px=1256,913\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

12. Type the name of the channel
13. Click the name of the channel

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/61d1dbbf-bf62-404e-8ac7-1886c6d3ea2b/ascreenshot.jpeg?tl_px=396,478\&br_px=1256,959\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

14. Click "Add Incoming webhooks integration"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/fe0c545f-41d6-469f-a3cb-053b32f73d4c/ascreenshot.jpeg?tl_px=403,528\&br_px=1263,1009\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

15. Select the URL next to the Webhook URL section

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/b3bceb87-f720-4913-8498-5421d3cab9eb/ascreenshot.jpeg?tl_px=231,193\&br_px=1091,674\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

16. Right-click the selected URL and copy it

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/048edfda-a770-4a9d-aea8-ecb67f0d0103/ascreenshot.jpeg?tl_px=591,196\&br_px=1451,677\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

17. Go to the FlowBridge Alerts page on FlowBridge
18. Click "Voiceflow Alerts"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/0af09375-1a39-47a1-93aa-b25a780e68be/ascreenshot.jpeg?tl_px=0,210\&br_px=859,691\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=118,212)

19. Click "New voiceflow alerts"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/f356950a-0f4f-46d6-9629-d50ae46ec162/ascreenshot.jpeg?tl_px=830,0\&br_px=1690,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=630,154)

20. Click on the Channel dropdown and select the Slack Channel

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/1503aec4-71c8-4349-a011-bca3f5520eae/ascreenshot.jpeg?tl_px=373,59\&br_px=1233,540\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

21. Click this Voiceflow Project dropdown and select your voiceflow project

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/bf1f1319-b97b-4030-82d0-ef3815056455/ascreenshot.jpeg?tl_px=698,48\&br_px=1558,529\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

22. Click the "Url\*" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/16fc3e1b-7bf0-4f64-97b7-994d2a6b697b/ascreenshot.jpeg?tl_px=251,143\&br_px=1111,624\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

23. Paste in the Webhook URL
24. Click "Create"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/63514939-592b-4f7f-8c1d-2ae3bc0075d8/ascreenshot.jpeg?tl_px=2,313\&br_px=862,794\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)


# Set up FlowBridge Alerts for Discord

## How to setup discord webhook URL for Voiceflow Alerts on FlowBridge

1. Click the cogwheel next to the channel you want the webhook for

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/10ee4821-9b6e-418c-9ecc-a3b09e4e1979/user_cropped_screenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=184,107)

2. Click integrations

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9f73a109-f9df-462c-991f-8ff1e7535442/user_cropped_screenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=226,163)

3. Click Create Webhook

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/e228813a-bbe2-48f9-898d-bd2eb1899738/ascreenshot.jpeg?tl_px=911,267\&br_px=1771,748\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

4. Click on the newly created webhook

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/3ed45718-f8a7-47ca-8bea-fb86f6c770fa/ascreenshot.jpeg?tl_px=629,344\&br_px=1489,825\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

5. Click on Copy Webhook URL

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/ba279d3f-5cbe-4e64-8bfd-47f21361d81b/ascreenshot.jpeg?tl_px=597,533\&br_px=1457,1014\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

6. Go to FlowBirdge and click on Voiceflow Alerts

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/ede6adbe-3e72-44f6-9a4d-9215d02cead0/ascreenshot.jpeg?tl_px=1409,396\&br_px=2269,877\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

7. Click new voiceflow alerts button

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9a6c5444-aafa-4e90-a968-48ac95d33099/ascreenshot.jpeg?tl_px=2580,106\&br_px=3440,587\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=667,212)

8. Click on the Channel drop down

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/10b2496f-dc6d-4dd8-82ef-bec6cdbb97b8/ascreenshot.jpeg?tl_px=2003,229\&br_px=2863,710\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

9. Click "Discord"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/25b0e4bb-161a-43cd-b2f7-8f4c59b49d17/ascreenshot.jpeg?tl_px=1980,275\&br_px=2840,756\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

10. Click on the Voiceflow Project drop down and select the voiceflow project you want to use

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/18513712-2e3b-4d05-bf28-9d158801a6ff/ascreenshot.jpeg?tl_px=2428,233\&br_px=3288,714\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

11. Click on the URL input box and paste in the Discord Webhook URL

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/ad5d2fec-2ec1-4bc1-93e2-3109a827ac9a/ascreenshot.jpeg?tl_px=1939,316\&br_px=2799,797\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

12. Click create

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/95aaaa8d-96e6-4ff8-8267-492f0bf00785/ascreenshot.jpeg?tl_px=1742,495\&br_px=2602,976\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)


# Set up FlowBridge Alerts for Microsoft Teams

## How to set up FlowBridge alerts for Microsoft Teams

1. Navigate to <https://teams.microsoft.com/v2/>
2. Click "Apps"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/12ac9956-046c-4ff1-8771-4f35a9c1f07b/ascreenshot.jpeg?tl_px=0,319\&br_px=859,800\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=5,212)

3. Click the "Search apps and more" field.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/85b7b1d7-45f2-4949-9eda-35cf37cc5c94/ascreenshot.jpeg?tl_px=0,0\&br_px=859,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=200,136)

4. Type "webhook"
5. Click "Add"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/dfc92ee3-21a6-4950-b2ca-9ddf7a387ec9/ascreenshot.jpeg?tl_px=375,0\&br_px=1235,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,202)

6. Click "Add to a team"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/bcd1f1eb-1352-4948-9a05-69fdbb9b0498/ascreenshot.jpeg?tl_px=164,105\&br_px=1024,586\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

7. Click on the channel you want to add the webhook to

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/2a4445f9-6cae-42a0-a1df-c778b28596aa/ascreenshot.jpeg?tl_px=287,358\&br_px=1147,839\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

8. Click "Set up a connector"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/c1fd1f81-0388-4388-b21e-dda5fe2f73fe/ascreenshot.jpeg?tl_px=714,648\&br_px=1574,1129\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

9. Click this text field and type in the name of your webhook (I.e: FlowBridge Alert)

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9d54fcd5-19d3-4dd0-9512-d5a37632b770/ascreenshot.jpeg?tl_px=228,165\&br_px=1088,646\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

10. Click "Create"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/bd8358c7-7c2c-4c73-8946-55ced88c9fe0/ascreenshot.jpeg?tl_px=205,512\&br_px=1065,993\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

11. Click this image.

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/82ae8bbb-1e5f-4293-86ab-4886c8c05107/ascreenshot.jpeg?tl_px=449,534\&br_px=1309,1015\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

12. Go to your FlowBridge environment
13. Click "Voiceflow Alerts"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/f43b2fec-a862-4b11-884a-4e4f52b8592b/ascreenshot.jpeg?tl_px=0,234\&br_px=859,715\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=86,212)

14. Click "New voiceflow alerts"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/9567a12c-3508-410a-b043-0527ef7a1254/ascreenshot.jpeg?tl_px=830,0\&br_px=1690,480\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=633,152)

15. Click on the Channel dropdown and select Microsoft Teams

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/7c4bd34e-0600-4d2a-86cf-dd99181d47b5/ascreenshot.jpeg?tl_px=200,48\&br_px=1060,529\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

16. Click on the Voiceflow project dropdown and select the Voiceflow project you want this alert to work with

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/48e9b1f7-61a3-4200-81e1-6f450ca466b6/ascreenshot.jpeg?tl_px=632,46\&br_px=1492,527\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

17. Click the "Url" field and paste the Microsoft Teams webhook URL in to it

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/2c9879a6-392c-4be2-8d2e-96ac8b6656fb/ascreenshot.jpeg?tl_px=99,153\&br_px=958,634\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=402,212)

18. Click "Create"

![](https://ajeuwbhvhr.cloudimg.io/colony-recorder.s3.amazonaws.com/files/2024-04-12/389d000a-69d4-4d9c-8ab5-ea49fa2bb82f/ascreenshot.jpeg?tl_px=0,322\&br_px=859,803\&force_format=png\&width=860\&wat_scale=76\&wat=1\&wat_opacity=0.7\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.us-west-1.amazonaws.com/images/watermarks/FB923C_standard.png\&wat_pad=391,212)


# Location Data Request

WhatsApp & Telegram support receiving location data. When a user sends their location, it will automatically populate variables in voiceflow containing their location data. Check out [Automatically Populated Variables](/documentation/basics/automatically-populated-variables) to see how the variable population works and which variables are needed in your flow to support this.

You can confirm if if the user has sent the location by parsing the JSON string which is sent by FlowBridge to your flow as text, to check if the `location_latitude` key exists in the JSON object. If both are true that it is indeed a JSON object, and it contains the key-variable pair `location_latitude`, you can assume its indeed a location request.

WhatsApp specifically supports requesting the user for their location. Read more about this on the [Request User Location](/documentation/social-integrations/whatsapp/request-user-location)page


# Custom integration through API

In some cases, you might want to use FlowBridge to integrate the AI agent directly in your applicaiton, rather than FlowBridge taking control over the bot’s webhook. FlowBridge has APIs available for each integration channel, allowing you to forward webhook requests from social channels from your application, directly to your Voiceflow Integration

Same use cases could be:

* You have a Telegram Web App bot and you want to integrate a chat bot for communications, but still maintain control over the webhooks being sent from your bot, within your web app
* You have built custom UI around a social app for your clients and you need to store incoming webhook information but want to use FlowBridge exclusively to handle the connection to Voiceflow

## How it works

Using FlowBridge in combination with a custom backend is very simple. All you need to do is forward the entire request from the social channel to your relevant integration endpoint which can be found by clicking the `Integration Info` button on the view client integration page

<figure><img src="/files/0iTf34BuYCtBSMrDicnt" alt=""><figcaption></figcaption></figure>

This will display both the verification token as well as the URL to the integration API. Once you forward the entire request, FlowBridge will handle it as if it's being sent from the social provider and function as normal.

## Setting custom variables from API to Voiceflow

Through the Conversation API endpoint, you can also send custom variables which will automatically be populated within Voiceflow. For example, maybe you want to send specific custom information from your application like the `paymend_id` so you can process it within the AI agent. To do this, within the root object you are sending to the FlowBridge API which contains the entire social channel's webhook object, you add a new object called `variables` which contains an JSON object of key-value pairs where the key will be the variable, and the value, the value the variable is populated with.

```json
{
	...., //The entire Webhook Payload Data
	"variables": {
		"payment_id": "F3Slm04s"
	}
}
```

Now if you create a variable in your voiceflow project called `payment_id`, you can now reference this variable which will contain `F3Slm04s` as the value.

As an example, this is what it would look like for Telegram. It includes the original webhook data with an additional key-value pair as an object on the root of the webhook data object.

```json
{
    "update_id": 2564212,
    "message": {
        "message_id": 55,
        "from": {
            "id": 651365146,
            "is_bot": false,
            "first_name": "First",
            "last_name": "Last",
            "username": "the_username",
            "language_code": "en",
            "is_premium": true
        },
        "chat": {
            "id": 654132135,
            "first_name": "First",
            "last_name": "Last",
            "username": "the_username",
            "type": "private"
        },
        "date": 1738493999,
        "text": "This is my message"
    },
    "variables": { // This part has been added
        "payment_id": "F3Slm04s" // Once you create `payment_id` in Voiceflow, it will have the value you set here
    }
}
```

## Telegram Specific

For telegram, there are some additional steps to using this, you can check out the [Using the conversation API for telegram](/documentation/social-integrations/telegram/using-the-conversation-api-for-telegram) page


# Initiating WhatsApp conversation to phone numbers

You can read about it on the whatsapp specific category on the [Meta's Custom Templates API](/documentation/social-integrations/whatsapp/metas-custom-templates-api) page


# Accepting payments on Telegram

Telegram supports invoicing users through Telegram Stars, and as part of the FlowBridge Custom Functions system, we have created a Telegram invoice custom function. This allows you to accept and process payments directly within your voiceflow project! To learn more about this feature, check out the [Telegram Invoice & Payments (Telegram Stars)](/documentation/social-integrations/telegram/telegram-invoice-and-payments-telegram-stars) page


# Setting Variables in Voiceflow Through Social Buttons

FlowBridge supports a powerful feature that lets you set Voiceflow variables directly through **button interactions**—even when the button is generated outside of Voiceflow (e.g., Make.com, n8n, your own backend, or any channel that supports interactive buttons).

This allows external systems to influence the active Voiceflow session by injecting variable values through a simple button-click.

***

### Overview

Any channel that FlowBridge supports can dynamically set Voiceflow variables using the following button ID format: `set-var:{variable_name}:{variable_value}`

When a user clicks a button with this ID pattern, FlowBridge will:

1. Detect the `set-var:` prefix
2. Extract `{variable_name}` and `{variable_value}`
3. Automatically update the Voiceflow session variable
4. Forward a synthetic message into your flow so you can react or continue the conversation

This enables external automations (e.g., Make.com scenarios, n8n workflows, custom backends) to “push” state into Voiceflow by triggering a button.

***

### Basic Example

If a button has this ID: `set-var:user_preference:premium`&#x20;

FlowBridge will set:

* **Variable:** `user_preference`
* **Value:** `premium`

#### Voiceflow Requirement

The variable must already exist in your Voiceflow project (case-sensitive).\
If the variable exists, FlowBridge updates it instantly.

***

### What FlowBridge Sends to Voiceflow

After updating the variable, FlowBridge injects a message into your flow so your design can continue seamlessly.

The message text follows this format: `Button variable set set-var:{name}:{value}`

Example: `Button variable set set-var:user_preference:premium`

This message is received by your Voiceflow flow like any other user message.

#### Why this matters

* Your flow can **capture and ignore** this message to move forward
* Or you can use this as a trigger to branch your logic
* Or simply let the conversation continue now that the variable is updated

***

### Use Cases

#### ✔ Button triggers generated outside Voiceflow

Some users generate their buttons through:

* Make.com
* n8n
* Custom backends
* CRM systems
* Webhooks
* External API triggers

Using this feature, these platforms can send a button → FlowBridge → Voiceflow → **variable instantly updated**.

#### ✔ Conditional flows based on user choices

Example: selecting a subscription tier, language, product, or onboarding step.

#### ✔ Post-purchase confirmation buttons

External system confirms a payment → sends a button with set-var payment\_status:success → Voiceflow reacts accordingly.

#### ✔ Multi-step journeys managed outside Voiceflow

Create a wizard or onboarding flow in Make.com, then push states back into Voiceflow using button variable setting.

***

### Full Format Reference

`set-var:{variable_name}:{variable_value}`

| Part               | Description                                                               |
| ------------------ | ------------------------------------------------------------------------- |
| `set-var`          | Required prefix that FlowBridge uses to identify variable-setting buttons |
| `{variable_name}`  | Name of the Voiceflow variable to update                                  |
| `{variable_value}` | Value to assign to that variable                                          |

#### Notes

* Values are passed as strings.
* Use underscores/dashes if your variable naming requires it.
* Variable must exist inside your Voiceflow project.

***

### Example Buttons

#### Setting a tier

`set-var:tier:gold`

#### Setting language preference

`set-var:lang:ro`

#### Marking a booking as confirmed

`set-var:booking_status:confirmed`

#### Trigger from n8n or Make.com

Set the button ID field to: `set-var:flow_step:3`

***

### Platform Support

This feature works on **all FlowBridge channels**, including:

* WhatsApp
* Instagram
* Facebook Messenger
* Telegram
* Slack

If the channel supports interactive buttons, FlowBridge can process them.

***

### Why This Feature Exists

Many users needed a way to:

* Trigger Voiceflow behaviour based on external events &#x20;
* Update variables from Make.com or n8n &#x20;
* Build hybrid workflows where automation platforms drive the logic &#x20;
* Avoid HTTP-request-based custom functions for simple state updates &#x20;

With \`set-var:\` buttons, external systems can easily push state into Voiceflow without writing custom code.


# How do I create an account for my Client?

FlowBridge has 2 portals. The Admin and Client portal. On the client portal, your end customers can log in and switch between the different projects you have associated with the company they are linked to. They will not be able to switch or see a project that's associated with another company.

To provide access to your client, you can create a normal user for them and associate it with the Client Company you have created. Once the user has been created, you can share the email and password with them and provide them with the link to your FlowBridge environment. (i.e: ***demo.flowbridge.app*** or ***mycompany.flowbridge.app***)

## Create a client account

{% embed url="<https://youtu.be/hYhz1hvTgDo>" %}


# Developer Platform API

This section is coming soon...


# Coming soon..

The Developer API documentation is coming soon...


# Changelog

New updates and improvements

## FlowBridge v7 Release

FlowBridge v7 is the biggest update we've ever made to the platform. It includes major fixes and improvements, complete re-write of the message processing system, a new integration, improvements to existing integrations, 1-click connect through your meta account for Intagram and Facebook, human handoff improvements and so much more.\ <br>

{% columns %}
{% column %}

<figure><img src="/files/VyutDxQKAceSUW6V0xkT" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

#### 1-click connect for Intagram and Facebook

* Facebook and Instagram now support integration the the Meta Embedded Login tool. This means just like on WhatsApp all you need to do is connect your Meta account and your done!

#### Feature Parity

* All channel now support the same things from human handoff, to specific messages like Video messages sent by users from social channels

#### Slack Integration Channel

* You can now add your Voiceflow build to slack as an app, or even inside of channels to handle internal AI requests

#### Much more!

* Outbound messaging through WhatsApp
* Human Handoff for ALL social channels
* Videos can be sent on all channels and are processed the same as how images and files are accepted on all integration channels
* Pricing and benefit changes to subscriptions
* New Affiliate Partnership system
* UI fixes and improvements
* Migration & Rollback to v2 for existing integrations
* New documentation site
* SO MUCH MORE

[Read the documentation](https://gitbook.com/)
{% endcolumn %}
{% endcolumns %}

***


