> For the complete documentation index, see [llms.txt](https://help.tillit.cloud/tillit/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.tillit.cloud/tillit/knowledge-base/setting-up-tillit/integrations.md).

# Integrations

Take a deeper dive into creating channels and integrations.

## Overview

Channels, e.g Webhook allows you to send data to other services when specific events are triggered in TilliT

For example, when a specific activity passes in TilliT, you can send the data in a payload to Microsoft Dynamics 365.

{% hint style="warning" %}
For setting up SMS, Email, Push notification and Notification in the TilliT app see the [User Subscriptions](/tillit/knowledge-base/users/manage/user-subscriptions.md)
{% endhint %}

## Navigation

{% hint style="info" %}
Navigation: ***Settings > Integrations***
{% endhint %}

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2Fgit-blob-2b23da3b9eca8b9d0498a074f7c6afe72f5ad2c6%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Configure a Channel

Setting up a channel defines where your data will be sent. Here is how to configure it:

{% stepper %}
{% step %}
Navigate to ***Settings > Integrations > Channels*** and click **Create**

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2FNCsnhVnfAibi2A6H76SA%2Fimage.png?alt=media&amp;token=c86bd192-82b0-4220-8c07-db1c7dd1ab4b" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Fill in the required information

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2FbbUW8YXcsmIqJIyh5xiP%2Fimage.png?alt=media&amp;token=8f88b990-c498-48e0-83d8-400860b0defc" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Click the ***Save and close*** button to finalise.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Now that your channel is configured, you must create a [Webhook Subscription](/tillit/knowledge-base/setting-up-tillit/integrations/adding-webhook-subscriptions.md) to define which specific events in TilliT will send data to it.
{% endhint %}

### Fields

<table><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>The name of your channel</td></tr><tr><td>On Failed Integration Event Type</td><td>Fires a specific event if the integration encounters a failure.</td></tr><tr><td>Type</td><td>Webhook, MQTT, Sftp, or WireFlow</td></tr><tr><td>Endpoint</td><td>See <a href="https://help.tillit.cloud/api/mqtt-api/subscribe-to-a-tillit-topic">https://help.tillit.cloud/api/mqtt-api/subscribe-to-a-tillit-topic</a></td></tr><tr><td>Options<img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2Fgit-blob-df66b5f0538f3656c576ac1af0b680b1fffbe66d%2Fimage.png?alt=media" alt=""></td><td><p>See below for general options and Sft channel options. It should be written as a json object<br></p><pre><code>export type ChannelOptions = {
  username?: string;
  headers?: any;
  authType?: 'OAUTH' | 'BASIC' | 'TOKEN';
  tokenUrl?: string;
  clientId?: string;
  secretName?: string;
  scope?: string;
  grantType?: string;
  jsonata?: string;
  contentType?: string; // Support form-urlencoded content type 
};
export type SftChannelOptions = {
tempFolder?: string;
filePrefix?: string;
host?: string;
username?: string;
port?: number;
secretName?: string;
};
Example:
{
"username": "myName",
"tokenUrl": "tokenUrl.here"
}
</code></pre></td></tr><tr><td>Transform Payload</td><td>This is a jsonata expression. See their documentation here - <a href="https://jsonata.org/">https://jsonata.org/</a>. It is used to reduce the payload size so that only the requirement data will be sent to the channel.</td></tr></tbody></table>

{% hint style="info" %}
Handling Material Movements in JSONata: Because the `materialMovements` array is completely omitted from the payload when an activity does not consume or produce materials, ensure your JSONata expressions use conditional checks before attempting to map, iterate, or extract data from it.
{% endhint %}

## WireFlow Channel Type

The **WireFlow** channel type allows TilliT events to directly invoke a WireFlow flow. When a subscribed event fires on a WireFlow channel, TilliT triggers the configured flow in your WireFlow environment and passes the event payload to it.

This is useful for building event-driven automation pipelines — for example, triggering a WireFlow flow automatically when an activity completes or an order status changes in TilliT.

{% hint style="info" %}
See [WireFlow](/tillit/knowledge-base/setting-up-tillit/integrations/wire-flow.md) for more information about creating and managing WireFlow flows.
{% endhint %}
