> For the complete documentation index, see [llms.txt](https://docs.bird.com/taxi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bird.com/taxi/connectors/external-file-gateway-connector/setting-up-the-external-file-gateway-connector.md).

# Setting up the External File Gateway connector

To set up the External File Gateway connector, you'll need access to your SFTP server's credentials: the host name, username, password, and the SHA256 fingerprint of the server's host key.

1. **In Taxi, head to Integrations** Select the ESP Connectors tab.
2. **Click 'Add New'** Select 'External File Gateway Connector' from the dropdown. This will need to be enabled by Taxi for your account. You'll need to name your connector — we recommend a descriptive name like 'My SFTP'.
3. **Click your connector to edit the settings**
4. **Add your SFTP credentials**
   * **Host name** — your SFTP server's hostname, e.g. `eu-central-1.sftpcloud.io`.
   * **Username** and **Password** — your SFTP login credentials.
   * **Fingerprint** — the SHA256 fingerprint of your server's host key in the format `SHA256:<base64>`, including the `SHA256:` prefix. To retrieve it, run the following from a machine that can reach the server and copy the middle value:

     ```
     ssh-keyscan -t ed25519 <host> 2>/dev/null | ssh-keygen -lf -
     ```

     The output looks like `256 SHA256:Gb8y3KIFNEqr5XoqEBXIC8RmZ3RHFuCkwVHWJEr8L58 <host> (ED25519)`. Use only the `SHA256:…` portion — do not include the bit length, host name, or algorithm tag. If your server doesn't serve ED25519, try `-t ecdsa` then `-t rsa` in that order.
5. **Set the output filename pattern**

   The **Filename** field controls the name of each JSON file written to your SFTP host. Use handlebars to interpolate values:

   * `{{timestamp}}` — the export time as Unix epoch seconds (e.g. `1746349623`)
   * `{{datetime}}` — the export time as `YYYYMMDDHHMMSS` (e.g. `20260504090703`)
   * `{{version.name}}` — the name of the version being exported
   * `{{mailing.name}}` — the name of the mailing the version belongs to
   * `{{project.name}}` — the name of the project (campaign) the mailing belongs to
   * `{{campaign.name}}` — alias for `{{project.name}}`
   * `{{<field_name>}}` — any document section field

   Project, mailing, and version names are sanitized before being inserted: any character that is not a letter or digit is removed, and the result is truncated to 101 characters. For example, `Spring Promo / 2026` becomes `SpringPromo2026`. If a name is missing (for example, a mailing has no project), the token is replaced with an empty string.

   If the filename does not already end in `.json`, the extension is appended automatically. If the **Filename** field is left blank, files are named `<timestamp>.json`.

   For example, `{{project.name}}_{{mailing.name}}_{{version.name}}_{{datetime}}.json` produces a unique, human-readable file name per exported version, e.g. `QuarterlyNewsletter_AprilSend_VariantA_20260504090703.json`.
6. **Choose what content goes into the exported JSON**

   The connector lets you populate three sections of the output JSON beyond the always-included rendered HTML, plain text, and subject line:

   * **Data field names** — a space-separated list of document section field names. Each field's resolved value is added to the JSON's `data` object.
   * **Metadata field names** — same idea, but the values land in the JSON's `metadata` object.
   * **Global content key field names** and **Global content value field names** — paired space-separated lists. Position N of the keys list pairs with position N of the values list (both lists must have the same length). For each module/editable that has *both* the key field and the value field, the key field's resolved value becomes a JSON key and the value field's resolved value becomes its value, all merged into `data.global_content`.

   *Example:* with keys = `contact terms privacy unsub` and values = `contact_url terms_url privacy_url unsub_url`, the JSON's `data.global_content` will contain four entries — for each footer link, the label becomes the key and the URL becomes the value.
7. **(Optional) Configure other options**
   * **Enable segmentation** — opt in to the segmentation flow when exporting multiple versions.
   * **Hide audit trail comment at bottom of the email** — when set to Yes, the audit-trail comment normally appended to exported HTML is omitted.
   * **Custom Audit Trail Comment** — customize the audit trail comment using template variables such as `{{timestamp}}`, `{{user_name}}`, `{{user_email}}`, `{{mailing_name}}`, `{{mailing_url}}`, `{{version_name}}`, `{{version_url}}`, and `{{organization_name}}`.
8. **Select if you want to set some restrictions for this connector** You can control who can use the connector and what types of exports they can run. When these are selected you'll see the options to the right of the screen where you can add users and teams and choose the allowed export types.
9. **Save your settings** Click 'Save Details & Continue' or 'Save Details & Exit'.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bird.com/taxi/connectors/external-file-gateway-connector/setting-up-the-external-file-gateway-connector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
