# Media

Use the *Media* node to [send ](#outbound-media)or [receive ](#inbound-media)media files [supported ](#supported-media-formats-and-sizes)by the channels you have set up in Chat Flow.&#x20;

{% embed url="<https://vimeo.com/761772948?share=copy>" %}

## Inbound media

When selecting the **inbound** media direction, you are **receiving** a media file from your customer.&#x20;

You have to add a *Media* node for each media file you want to receive from your customers.&#x20;

Once received, you need a mechanism to upload these files onto your own system. Each *Media* node must be followed by an [*API Integration*](https://guides.clickatell.com/flow/action-nodes/action-nodes-api-integration) node utilizing an [API integration](https://guides.clickatell.com/flow/configuration/api-integration) to upload the file to your system/database once received from the customer.

{% hint style="info" %}
**IMPORTANT:** The request content type for this API integration must be set to *multipart/form-data.* The response type can be *application/json*, but is dependent on your API.&#x20;
{% endhint %}

**Example 1:**&#x20;

You want the customer to send you **one** media file.&#x20;

* Add one *Media* node to your flow followed by one *API Integration* node.

**Example 2:**

You want the customer to send you **three** media files.&#x20;

* Add three *Media* nodes to your flow, each one followed by an *API Integration* node (i.e., three *API Integration* nodes in total).

{% hint style="success" %}
**Flow construct for Example 2:**&#x20;

*Media* node --> *API Integration* node --> *Media* node --> *API Integration* node --> *Media* node --> *API Integration* node&#x20;
{% endhint %}

<figure><img src="https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/kVXxaBLc5qr2SkIkz1hr/image.png" alt="" width="563"><figcaption><p>Setup of a Media node (inbound)</p></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/54OFP0Uy1uv5RicDSUub/image.png" alt="" width="478"><figcaption><p>For each media node an API Integration node is used to upload the file to an external source.</p></figcaption></figure>

## Outbound media

When selecting the **outbound** media direction, you are **sending** a media file to your customers.&#x20;

You can select to:

* Use an [API integration](#api-integration) to download the file you want to send to your customers from your system/database; or
* Upload an [asset](#assets)/use an existing asset to send to your customer

You have the option to either:

1. End the session after sending the media file to the customer; or
2. Continue the flow after sending a media file to the customer and specify the next step/flow to automatically follow. The workflow can immediately continue to the next step without requiring input from the customer first.

![Example of what the customer sees on WhatsApp when your business sent a media file to them](https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/TdWR25bYrbHlNhs716S6/image.png)

#### API Integration

Selecting this option requires you to download the media file from your system first before sending it to your customers.

{% hint style="info" %}
The request content type for this API integration may be set to *application/json* or *multipart/form-data.*
{% endhint %}

You need to add a *Media* node for each outbound media file you want to send to your customer. Each *Media* node must be preceded by an [*API Integration*](https://guides.clickatell.com/flow/action-nodes/action-nodes-api-integration) node utilizing an [API integration](https://guides.clickatell.com/flow/configuration/api-integration) to download the file from your system/database before it can be sent to the customer.

**Example 1:**

You want to send **one** media file to the customer.&#x20;

* Add one *API Integration* node to your flow followed by one *Media* node.

**Example 2:**

You want the customer to send you **three** media files.&#x20;

* Add three *API Integration* nodes to your flow, each one followed by a *Media* node (i.e., three *Media* nodes in total).

{% hint style="success" %}
**Flow construct for Example 2:**&#x20;

&#x20;*API Integration* node --> *Media* node --> *API Integration* node --> *Media* node --> *API Integration* node --> Media node&#x20;
{% endhint %}

<figure><img src="https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/EYIKqS6QK5liwIg0WthX/image.png" alt="" width="563"><figcaption><p>Setup of a Media node (outbound; API)</p></figcaption></figure>

#### ‌Assets

Selecting this option opens another call to action, *+ Add file*. Clicking this opens a pop-up modal where the flow-builder can add new media files, or select from [previously uploaded](https://guides.clickatell.com/flow/configuration/manage-your-workflow-assets) ones. After selecting *+Add File* on the node, you can upload a new media file or select from existing ones.

<figure><img src="https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/GdK7a2deOIvLZs1fFNSr/image.png" alt="" width="563"><figcaption><p>Setup of a Media node (outbound; asset library)</p></figcaption></figure>

![After selecting "+Add File" on the node, you can upload a new media file, or select from existing ones](https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/xEE29vysPjyYMbCtlHA1/image.png)

A thumbnail of the selected media file appears on the node:

<figure><img src="https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/gS59MNRI6DhheN8PU6tX/image.png" alt="" width="319"><figcaption></figcaption></figure>

View in the canvas:

![](https://content.gitbook.com/content/joAgInTNsBfDdfx1I23z/blobs/UVgiqba8EgFzwBiPDHAs/image.png)

## Supported media formats and sizes

{% hint style="info" %}
The file types supported by this node have format and size limitations. The table below indicates the supported formats and their size limits.&#x20;
{% endhint %}

<table><thead><tr><th width="249.33333333333331">File Type</th><th width="296.39014373716634">Supported Formats</th><th>File Size Limit</th></tr></thead><tbody><tr><td>Documents</td><td>pdf, doc, docx, xls, xlsx, ppt, pptx</td><td>20MB</td></tr><tr><td>Images</td><td>jpeg, jpg, png, udsz</td><td>5MB</td></tr><tr><td>Audio files</td><td>aac, amr, mp4, mp3, opus</td><td>16MB</td></tr><tr><td>Video files</td><td>mp4</td><td>5MB</td></tr></tbody></table>

{% hint style="warning" %}

* Captions are only applicable for **image** and **video** types.
* For any **document** type, the handset will display the original filename (and not the caption) when you download the document onto your handset.
* **Audio** files: no caption or filename is displayed on the handset.
  {% endhint %}
