> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/email-marketing-communication/tatango.md).

# Tatango

Tatango is a powerful SMS marketing platform designed to help organizations engage supporters via text messaging.

Tatango is a powerful SMS marketing platform designed to help organizations engage supporters via text messaging. Anedot’s integration allows you to relay Action Page submissions with proper opt-in consent directly into your Tatango subscriber lists.

When configured, Anedot will send donor and subscriber data—from both financial and non-financial Action Pages—to your Tatango list. Data is only sent when users opt-in and provide a valid mobile number.

## Connecting Anedot to Tatango

### Pre-Setup Requirements

To ensure successful relay, you **must enable** the following fields in the **Form** tab of the **Action Page Builder**:

* **Communications Consent** *(toggle ON)*
* **Phone Number** *(set as required)*

> Only valid **mobile numbers from verifiable carriers** are accepted by Tatango. Landlines or unverified numbers are rejected without appearing as a failure in Anedot.

### Complete Connection

To connect Anedot to Tatango, follow the steps below:

1. Navigate to **Settings → Integrations → Directory** in your Anedot account.
2. Click the blue **+ New Connection** button in the upper right corner.
3. Select **Campaign Monitor** from the integration directory.
4. Choose the **Action Pages** you’d like to sync.
   * The default is All Pages.
   * To exclude specific pages, enter their Action Page IDs as a comma-separated list.
5. \_(Optional)\_Scope the integration to only include **Team**-specific data.
6. Enter**Tatango Credentials**
   * **Login Email Address**
   * **API Key**
   * **List ID** *(found in your Tatango list settings)*
7. Configure**Optional Settings**
   * **Bypass Opt-In Process**: Prevent sending initial opt-in confirmation *(default: false)*
   * **Bypass Opt-In Response**: Prevent follow-up opt-in message *(default: true)*
   * **Relay Donation Pages Only**: Limit data sync to financial pages *(default: false)*
8. Click **Save** to complete setup.

*All settings, including Action Pages, credentials, and options, can be modified later.*

## Data Relays

* **Supported Pages**: Relays are supported for both **financial and non-financial pages**—unless filtered using the “Relay Donation Pages Only” option.
* **Relay Requirements**:
  * **Communications Consent** must be toggled on.
  * **Phone number** must be required and valid *(mobile carrier only)*.
* **Relay Fields**:
  * Includes **default fields** and **custom fields** *(must be preconfigured in Tatango)*.
  * Fields that are not predefined must be manually added in Tatango.
* **Push Unsent Support**:
  * Failed or unsent relays can be retried by date range using the **Push Unsent** feature.
* **Failure Handling**:
  * After **5 consecutive failed relay attempts**, the integration is marked **inactive**, and no further relays are sent until reactivated.

## Setting Up Custom Fields in Tatango

To match custom data fields from Anedot:

1. Go to your Tatango list and open the **Settings → Custom Fields** tab.
2. Click **New Custom Field**.
3. Enter:
   * A **label** for the field
   * The **Anedot field name** as the merge tag
   * The **field type**
4. Save your new field. All fields *(predefined and custom)* will appear in the list.

## Finding Subscribers in Tatango

Tatango identifies each subscriber using their

unique phone number . To find them:

* Go to your **Tatango List → Subscribers** tab.
* You’ll see each record created from relayed submissions.

## Field Mapping

\| Anedot Field Name | Tatango Field Name | Tatango Field Type | | --- | --- | | email | email | predefined | | phone | phone\_number | predefined | | address {postal\_code} | zip\_code | predefined | | firstName | first\_name | predefined | | lastName | last\_name | predefined | | "lead" or "donation" | form\_type | custom - text | | title | title | custom - text | | middleName | middle\_name | custom - text | | occupation | occupation | custom - text | | source\_code | source\_code | custom - text | | date | donation\_date | custom - datetime | | donation\_amount | donation\_amount | custom - number |

## Payload Data

### Request Headers

```
{ }
```

### Request Body

```json
{  "subscriber": {    "email": "admin@anedot.com",    "title": "",    "zip_code": "70113",    "form_type": "donation",    "last_name": "Dot",    "first_name": "Annie",    "occupation": "Analyst",    "middle_name": "",    "source_code": "EOY22",    "phone_number": "2252501301",    "donation_date": "2023-05-11T15:03:03.287Z",    "donation_amount": 10.0,    "bypass_opt_in_process": false,    "bypass_opt_in_response": false  }}
```

### Response Body *(Success)*

```json
{  "status": "Subscriber has already been sent opt-in message for this list.",  "subscriber": {    "tags": [],    "email": "admin@anedot.com",    "gender": null,    "carrier": 77,    "zip_code": "70506",    "birthdate": "",    "last_name": "Dot",    "api_source": "Anedot/50af806d",    "cleaned_at": null,    "first_name": "Annie",    "carrier_name": "Verizon",    "clean_reason": null,    "keyword_name": null,    "opted_out_at": null,    "phone_number": "2252501301",    "opt_in_method": "api",    "subscribed_at": "2023-05-11T07:45:33.000-07:00",    "optin_in_progress": true  }}
```

### Response Body *(Failure 1)*

```json
{  "error": "List not found",  "status": "error"}
```

### Response Body *(Failure 2)*

```json
{  "error": "API key authorization failure",  "status": "error"}
```

### Response Body *(Failure 3)*

```json
{  "error": "Bad phone number: landline or unreachable carrier",  "status": "error"}
```

### Response Status *(Success)*

```
200
```

### Response Status *(Failure 1)*

```
404
```

### Response Status *(Failure 2)*

```
401
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/email-marketing-communication/tatango.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
