> For the complete documentation index, see [llms.txt](https://flapjax.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flapjax.gitbook.io/docs/settings/workspace/applications.md).

# Applications

An **application** is a third-party service Flapjax sends through: an email provider, an SMS gateway, a chat tool, a push service. A **connection** is one set of credentials for that application. Actions in your automations pick a connection, so one workspace can send through several accounts of the same provider.

The page has two tabs:

* **Apps** lets you browse everything you can connect. Open an app to read what it does before you connect it.
* **Connections** lists every connection you have, with its name and application.

***

### Browsing apps

The Apps tab opens on the catalogue.

* **Installed** is a strip at the top showing apps you hold at least one connection for. **View all** jumps to the Connections tab.
* **Categories** is the rail on the left. It filters the grid by Email, SMS, Push, Messaging, Compliance and Other. "Other" catches anything without a catalogue entry.
* **Search** filters the grid by name.

Click any app card to open its **detail page**. It covers what the app does, how automations use it, who built it, links to the provider's own site and documentation, and the connections you hold for it. Click a connection in that list to edit it.

***

### Creating a connection

From an app's detail page click **Install** (or **Add connection** if you already have one), then fill in:

1. **Name**, how this connection appears in action pickers, such as "Marketing SendGrid" or "Support Twilio".
2. **Description**, optional.
3. The **credentials** for that provider, covered below.

Create as many connections per app as you need. Separate SendGrid accounts per brand, separate senders per market. A saved connection becomes selectable on the matching send action.

See [Communication actions](/docs/automations/actions/communication.md) for how each action picks up its connection, and [Campaigns](/docs/settings/workspace/campaigns.md) for tagging and reporting on what you send.

{% hint style="info" %}
Fields marked as secret, meaning API keys, tokens and webhook URLs, are stored securely and shown masked after saving. You get the values from your own account with the provider. Flapjax generates none of them, so have them ready before you start.
{% endhint %}

***

### Setting up each provider

#### SendGrid: email

Use SendGrid to send transactional or marketing emails.

* **Template ID**, the ID of the SendGrid Dynamic Template your emails use.
* **SendGrid API Key** (secret), the key that authorises sending through your SendGrid account.
* **Sender Name**, the name that appears as the sender.
* **Sender Email**, the address emails come from. Verify it in your SendGrid account first.

{% hint style="info" %}
**Before you connect:** create a **Dynamic Template** in SendGrid and copy its Template ID into the field above. The connection form shows the exact layout Flapjax expects, covering subject, HTML body and unsubscribe placeholders.
{% endhint %}

#### Twilio: SMS and WhatsApp

Use Twilio to send SMS messages.

* **Auth Token** (secret), which authenticates your API requests to Twilio.
* **Account SID** (secret), the unique identifier for your Twilio account.
* **Sender SMS**, the Twilio phone number messages come from. Verify the number in your Twilio account first, in the format `+1234567890`.

{% hint style="info" %}
**WhatsApp:** this same Twilio connection delivers WhatsApp, so no separate WhatsApp application exists. To send over WhatsApp, your Sender number must be a WhatsApp-enabled Twilio sender.
{% endhint %}

#### MessageChief: SMS

Use MessageChief to send SMS through regional carriers and your own sender IDs.

* **API Token** (secret), your MessageChief API token, created in the MessageChief dashboard under **API settings**.
* **Sender**, the sender ID messages come from. An alphanumeric name such as `MyBrand`, or a phone number such as `+1234567890`.

MessageChief connections produce a **webhook token** too, covered below.

#### Pusher: push notifications

Use Pusher to trigger real-time push events to your frontend applications.

* **App ID**, the unique identifier for your Pusher application.
* **Key** (secret), which authenticates your API requests to Pusher.
* **Secret** (secret), which works with the Key to authenticate requests.
* **Cluster**, the Pusher cluster hosting your application, such as `eu`. It points messages at the right server.
* **Channel**, the Pusher channel your messages publish to. Channels group related messages.

#### Slack

Use Slack to post notifications straight into a Slack channel.

* **Incoming Webhook URL** (secret), the Slack webhook that receives your messages. It looks like `https://hooks.slack.com/services/...`.

Create an **Incoming Webhook** in your Slack workspace for the channel you want to post to, then paste its URL here.

#### Microsoft Teams

Use Microsoft Teams to post notifications into a Teams channel.

* **Incoming Webhook URL** (secret), the Teams webhook that receives your messages. It looks like `https://outlook.office.com/webhook/...`.

Add an **Incoming Webhook** connector to the Teams channel you want to post to, then paste its URL here.

#### Telegram

Use Telegram to send messages to Telegram chats and channels through a bot.

* **Bot Token** (secret), your Telegram Bot API token. Get it from **@BotFather** on Telegram.
* **Chat ID** (secret), the chat your messages go to.

***

### Webhook tokens

Some providers report delivery results back to Flapjax by calling a webhook. Where the provider can authenticate that call, and **MessageChief** does today, Flapjax generates a **webhook token** as you create the connection.

* Flapjax displays the token **once**, right after it creates the connection. Copy it before you close the dialog.
* Set it in the provider's webhook settings as a **Bearer token**, in the form `Authorization: Bearer whk_...`.
* Flapjax stores a hash of it and nothing more, so the token never appears again.
* One connection for that application holding a token switches enforcement on. Delivery callbacks arriving **without** a valid token get rejected from then on. Before that, callbacks still come in unauthenticated, so you can add the token with no outage.
* A connection can hold the current token and the previous one at once, so you can roll out a replacement before the old token stops working. Ask your Flapjax contact to issue one. The interface does not offer rotation yet.

***

### Managing connections

The **Connections** tab lists every connection with its name and application. Click a row to open it, or use the row menu to:

* **Update** the name, description or credentials.
* **Delete** it permanently. Actions still pointing at a deleted connection stop sending.

{% hint style="info" %}
**Tip:** Flapjax stores credentials securely and never shows them back in full. Keep them in your own password manager too, since editing a connection means re-entering the secret.
{% endhint %}

***

### Sending limits per connection

Providers cap how many recipients one API call may carry. Flapjax stores that limit per application and splits every send into chunks that fit, so a send to 50,000 people becomes as many provider calls as the provider allows.

The limit is not configurable in the interface. Tell your Flapjax contact whenever your provider agreement raises or lowers it, so the stored value matches.
