> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SendPulse as a data source

> Bring data from SendPulse to Nekt.

SendPulse is a multichannel marketing platform for email campaigns, transactional email (SMTP), marketing automation, SMS, chatbots, and more. This connector reads three SendPulse services: the **Email Service** (mailing lists, contacts, campaigns and their statistics, templates), **SMTP** (transactional emails, bounces, and unsubscriptions), and **Automation 360** (automation flows, their statistics, and conversions).

## Before you start

The connection signs in with credentials from your own SendPulse account. Pick one of the two options below; both are available under **Settings → API** in SendPulse.

<Steps>
  <Step title="Option 1: generate an API key (recommended)">
    In SendPulse, go to **Settings → API → API keys** and click **Generate**. Give the key a name and copy it. The key stays valid until you revoke it. If you restrict the key to specific IP addresses, allow Nekt's IP addresses too, or the connection will be refused.
  </Step>

  <Step title="Option 2: copy your Client ID and Client Secret">
    In SendPulse, go to **Settings → API → Client credentials** and copy the **ID** and the **Secret**. The connector exchanges them for a temporary access token and renews it automatically.
  </Step>
</Steps>

<Note>
  SMTP and tags are only read if your SendPulse plan includes them. If it doesn't, those streams are skipped with a message in the run log and the rest of the sync continues.
</Note>

## Configuring SendPulse as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the SendPulse option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

The following configurations are available:

* **Authentication Method**: **API key (recommended)** or **Client ID and Client Secret**. The fields below change to match your choice.

* **API Key**: The key from **Settings → API → API keys** in SendPulse.

* **Client ID** and **Client Secret**: The values from **Settings → API → Client credentials** in SendPulse.

* **Start Date**: The earliest date read on the first sync by the date-based streams: SMTP emails, campaign statistics (with their country and link breakdowns), and automation conversions. Later syncs continue from where the previous one stopped. Mailing lists, contacts, campaigns, and the other tables are always read in full, whatever this date.

* **Statistics Lookback Days**: (Default: 30) How many days of already-sent email campaigns have their statistics read again on every sync. Opens, clicks, and unsubscriptions keep arriving for weeks after a send; this window keeps recent campaigns up to date.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: you can choose between INCREMENTAL and FULL\_TABLE.
  * Incremental: every time the extraction happens, we'll get only the new data - which is good if, for example, you want to keep every record ever fetched.
  * Full table: every time the extraction happens, we'll get the current state of the data - which is good if, for example, you don't want to have deleted data in your catalog.

<Note>
  Keep the campaign statistics, their country and link breakdowns, SMTP emails, SMTP bounces, and automation conversions on **INCREMENTAL**. Each sync only reads recent data for these streams, so a full-table sync would replace the table with that recent data alone. This matters most for **SMTP Bounces**: SendPulse only keeps the bounces of the last 24 hours, so the table can only be built up over time.
</Note>

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

## How syncing works

**Catalogs** (mailing lists, contacts, variables, campaigns, templates, senders, tags, the blacklist, SMTP unsubscriptions and sending domains, automation flows and their statistics) are read in full on every sync.

**Campaign statistics** sync **incrementally** on `send_date`. On the first sync, the connector reads the statistics of the campaigns sent since **Start Date**. On every later sync, it reads the campaigns sent since the latest send already read minus **Statistics Lookback Days**. Each campaign is stored under its `campaign_id`, so reading it again updates its counters, and older campaigns keep their last values. The country and link breakdowns follow the same window.

**SMTP emails** sync incrementally on `send_date`, from the latest email already read minus one day. Opens and clicks recorded after that window are not refreshed.

**SMTP bounces**: SendPulse only keeps the bounces of the last 24 hours. Each sync reads the bounces since the last one read, so the table grows from the first sync on. If more than a day passes between two syncs, the bounces of that gap are lost; a daily schedule avoids this.

**Automation conversions** sync incrementally on `conversion_date`, from the latest conversion already read minus one day.

## API usage

SendPulse limits API requests per account: 1,000 per minute on free plans, 2,000 on standard plans, and 3,000 on enterprise plans, and never more than 10 per second. The limit is shared by every integration that uses your account, so the connector paces itself to about 8 requests per second. What drives the number of requests:

* one request per 100 records of each catalog (contacts are usually the largest);
* three requests per campaign inside the statistics window (details, countries, and links);
* two requests per automation flow, plus one per 100 conversions.

If SendPulse answers that the limit is reached, the sync waits and continues, and the run log says so. If the daily quota of your account is used up, the sync stops with a message saying so, and works again once the quota renews.

## Data notes

* SendPulse sends dates without a time zone (for example `2021-09-01 10:55:39`) and documents them as GMT+00:00. They are stored as UTC.
* Nested data — contact variables, flow settings and elements, email tracking details, conversion event data, and campaign delivery statuses — is stored as JSON text.
* Campaign statuses are numeric codes; `status_description` in the campaign streams gives their meaning.

## Streams

| Stream | Slug | Sync | Description |
| - | - | - | - |
| Mailing Lists | `mailing_lists` | Full table | Mailing lists (address books) of the account, with their contact counts and status. |
| Mailing List Variables | `mailing_list_variables` | Full table | Custom variables (fields) of every mailing list, with their data type. |
| Mailing List Contacts | `mailing_list_contacts` | Full table | Contacts of every mailing list, with their status and variable values. |
| Campaigns | `campaigns` | Full table | Email campaigns with their sender, subject, costs and headline counters (sent, delivered, opened, clicked, unsubscribed, errors). |
| Campaign Statistics | `campaign_statistics` | Incremental | Detailed statistics of each sent campaign, with one column per delivery status. |
| Campaign Country Opens | `campaign_country_opens` | Incremental | Opens of each campaign by country. |
| Campaign Link Clicks | `campaign_link_clicks` | Incremental | Clicks on each link of each campaign. |
| Templates | `templates` | Full table | Email templates created in your account (SendPulse's own template gallery is not included). |
| Senders | `senders` | Full table | Sender addresses of the account and whether they can also be used for SMTP. |
| Tags | `tags` | Full table | Contact tags of the Email service. Available on the Pro plan and above. |
| Blacklist | `blacklist` | Full table | Email addresses in the account's blacklist. |
| SMTP Emails | `smtp_emails` | Incremental | Transactional emails sent through SendPulse SMTP, with the recipient server's answer and open and click tracking. |
| SMTP Bounces | `smtp_bounces` | Incremental | Transactional emails that bounced, with the recipient server's answer. |
| SMTP Unsubscribes | `smtp_unsubscribes` | Full table | Recipients unsubscribed from transactional emails, and how. |
| SMTP Sender Domains | `smtp_sender_domains` | Full table | Sending domains of the SMTP service and their DKIM, SPF and DMARC checks. |
| Automation Flows | `automation_flows` | Full table | Automation 360 flows of the account and their settings. |
| Automation Flow Statistics | `automation_flow_statistics` | Full table | Totals of each flow: starts, contacts in the flow, finishes, messages sent and conversions. |
| Automation Element Statistics | `automation_element_statistics` | Full table | Statistics of each element (start, email, SMS, filter, goal, and so on) of each flow. |
| Automation Conversions | `automation_conversions` | Incremental | Contacts that converted in each flow, with the element they converted at. |

## Fields by stream

<AccordionGroup>
  <Accordion title="Mailing Lists">
    Mailing lists (address books) of the account, with their contact counts and status.

    **Key:** `id` — **Sync:** full table

    **Fields:**

    * `id` - Unique identifier of the mailing list
    * `name` - Name of the mailing list
    * `all_email_qty` - Total number of email addresses in the mailing list
    * `active_email_qty` - Number of active email addresses in the mailing list
    * `inactive_email_qty` - Number of inactive email addresses in the mailing list
    * `new_phones_quantity` - Number of new phone numbers in the mailing list
    * `active_phones_quantity` - Number of active phone numbers in the mailing list
    * `exc_phones_quantity` - Number of inactive (excluded) phone numbers in the mailing list
    * `creationdate` - Date and time the mailing list was created (UTC)
    * `status` - Status code of the mailing list (0 active, 1 marked as deleted, 3 awaiting reply to the moderator, 4 blocked by the service, 5 blocked while transferring addresses into a campaign)
    * `status_explain` - Description of the mailing list status, as sent by SendPulse
  </Accordion>

  <Accordion title="Mailing List Variables">
    Custom variables (fields) of every mailing list, with their data type.

    **Key:** `mailing_list_id`, `name` — **Sync:** full table

    **Fields:**

    * `mailing_list_id` - Identifier of the mailing list the record belongs to (see mailing\_lists)
    * `name` - Name of the variable
    * `type` - Data type of the variable (string, number or date)
  </Accordion>

  <Accordion title="Mailing List Contacts">
    Contacts of every mailing list, with their status and variable values.

    **Key:** `mailing_list_id`, `email` — **Sync:** full table

    **Fields:**

    * `mailing_list_id` - Identifier of the mailing list the record belongs to (see mailing\_lists)
    * `email` - Email address of the contact
    * `phone` - Phone number of the contact
    * `status` - Status code of the address in the list (0 new, 1 active, 2 confirmation requested, 3 activation requested, 4 unsubscribed, 5 rejected, 6 unsubscribed from all newsletters, 7 activation requested, 8 blocked by the user, 9 sending error, 10-12 blocked, 13 deleted by the user, 14 temporarily unavailable)
    * `status_explain` - Description of the address status, as sent by SendPulse
    * `variables` - Values of the mailing list variables for this contact (JSON object of variable name to value)
  </Accordion>

  <Accordion title="Campaigns">
    Email campaigns with their sender, subject, costs and headline counters (sent, delivered, opened, clicked, unsubscribed, errors).

    **Key:** `id` — **Sync:** full table

    **Fields:**

    * `id` - Unique identifier of the campaign
    * `name` - Name of the campaign
    * `status` - Status code of the campaign (e.g. 3 sent, 16 canceled, 26 draft; see status\_description)
    * `status_description` - Meaning of the status code, from the SendPulse documentation
    * `is_sms` - Whether the campaign is an SMS campaign
    * `is_viber` - Whether the campaign is a Viber campaign
    * `send_date` - Date and time the campaign was (or is scheduled to be) sent (UTC)
    * `sender_name` - Sender name of the campaign
    * `sender_email` - Sender email address of the campaign
    * `subject` - Subject line of the email
    * `list_id` - Identifier of the mailing list the campaign was sent to
    * `attachments` - Attachments of the campaign
    * `all_email_qty` - Total number of email addresses the campaign was sent to
    * `tariff_email_qty` - Number of emails written off the pricing plan's allowance
    * `paid_email_qty` - Number of emails paid from the balance above the plan's limit
    * `overdraft_price` - Price per email above the plan's limit
    * `company_price` - Price of the campaign
    * `overdraft_currency` - Currency of the campaign prices
    * `sent` - Number of messages sent
    * `delivered` - Number of messages delivered
    * `opening` - Number of messages opened
    * `link_redirected` - Number of messages whose links were clicked
    * `unsubscribe` - Number of recipients who unsubscribed
    * `error` - Number of delivery errors
  </Accordion>

  <Accordion title="Campaign Statistics">
    Detailed statistics of each sent campaign, with one column per delivery status.

    **Key:** `campaign_id` — **Sync:** incremental on `send_date`

    **Fields:**

    * `campaign_id` - Identifier of the campaign (see the campaigns stream)
    * `name` - Name of the campaign
    * `status` - Status code of the campaign (e.g. 3 sent, 16 canceled, 26 draft; see status\_description)
    * `status_description` - Meaning of the status code, from the SendPulse documentation
    * `is_sms` - Whether the campaign is an SMS campaign
    * `is_viber` - Whether the campaign is a Viber campaign
    * `send_date` - Date and time the campaign was (or is scheduled to be) sent (UTC)
    * `sender_name` - Sender name of the campaign
    * `sender_email` - Sender email address of the campaign
    * `subject` - Subject line of the email
    * `list_id` - Identifier of the mailing list the campaign was sent to
    * `attachments` - Attachments of the campaign
    * `all_email_qty` - Total number of email addresses the campaign was sent to
    * `tariff_email_qty` - Number of emails written off the pricing plan's allowance
    * `paid_email_qty` - Number of emails paid from the balance above the plan's limit
    * `overdraft_price` - Price per email above the plan's limit
    * `company_price` - Price of the campaign
    * `overdraft_currency` - Currency of the campaign prices
    * `preheader` - Preheader text of the email
    * `permalink` - Link to the web version of the campaign in the SendPulse archive
    * `check_open_email` - Whether opens were tracked for the campaign
    * `check_redirect_link` - Whether link clicks were tracked for the campaign
    * `in_queue` - Messages still in the sending queue
    * `sent` - Messages sent
    * `delivered` - Messages delivered
    * `opened` - Messages opened
    * `link_redirected` - Messages whose links were clicked (link redirected)
    * `unsubscribed` - Recipients who unsubscribed
    * `no_such_email` - Mail server answered that the address does not exist
    * `temporarily_unavailable` - Temporarily unavailable (will be sent later)
    * `unavailable` - Recipient unavailable
    * `rejected_as_spam` - Rejected by the recipient's server as spam
    * `mailbox_full` - Recipient mailbox is full
    * `marked_as_spam` - Marked as spam by the recipient
    * `delivery_failure` - Delivery failure
    * `not_sent` - Messages not sent
    * `no_such_domain` - Recipient domain does not exist
    * `unsubscribed_from_newsletter` - Recipients who unsubscribed from the newsletter
    * `invalid_email` - Invalid email addresses
    * `temporarily_blocked` - Temporarily blocked addresses
    * `disabled_by_administrator` - Addresses disabled by the administrator
    * `already_unsubscribed` - Recipients who had already unsubscribed
    * `delivery_statuses` - Every delivery status counter as sent by SendPulse, including codes without a column of their own (JSON array of objects with code, count and explain)
  </Accordion>

  <Accordion title="Campaign Country Opens">
    Opens of each campaign by country.

    **Key:** `campaign_id`, `country_code` — **Sync:** incremental on `campaign_send_date`

    **Fields:**

    * `campaign_id` - Identifier of the campaign the record belongs to (see campaigns)
    * `campaign_send_date` - Date and time the campaign was sent (UTC); used as the incremental replication key, as the breakdown is re-read with the campaign statistics
    * `country_code` - Two-letter code of the country the email was opened in
    * `opens` - Number of emails of the campaign opened in the country
  </Accordion>

  <Accordion title="Campaign Link Clicks">
    Clicks on each link of each campaign.

    **Key:** `campaign_id`, `link` — **Sync:** incremental on `campaign_send_date`

    **Fields:**

    * `campaign_id` - Identifier of the campaign the record belongs to (see campaigns)
    * `campaign_send_date` - Date and time the campaign was sent (UTC); used as the incremental replication key, as the breakdown is re-read with the campaign statistics
    * `link` - URL of the link in the email
    * `clicks` - Number of clicks on the link
  </Accordion>

  <Accordion title="Templates">
    Email templates created in your account (SendPulse's own template gallery is not included).

    **Key:** `real_id` — **Sync:** full table

    **Fields:**

    * `real_id` - Stable numeric identifier of the template
    * `id` - Hash identifier of the template; SendPulse changes it every time the template is edited
    * `name` - Name of the template
    * `name_slug` - System name (slug) of the template
    * `lang` - Language code of the template
    * `created` - Date and time the template was created (UTC)
    * `full_description` - Description of the template
    * `is_structure` - Whether the template was built with the block editor
    * `category` - Category code of the template
    * `category_info` - Details of the template category (JSON object)
    * `tags` - Tags of the template
    * `owner` - Owner of the template
    * `preview` - URL of the template preview image
  </Accordion>

  <Accordion title="Senders">
    Sender addresses of the account and whether they can also be used for SMTP.

    **Key:** `email` — **Sync:** full table

    **Fields:**

    * `email` - Sender email address
    * `name` - Sender name
    * `status` - Status of the sender (e.g. Active)
    * `is_allowed_for_smtp` - Whether the address can also be used in the SMTP service
  </Accordion>

  <Accordion title="Tags">
    Contact tags of the Email service. Available on the Pro plan and above.

    **Key:** `id` — **Sync:** full table

    **Fields:**

    * `id` - Unique identifier of the tag
    * `name` - Name of the tag
    * `color` - Color of the tag (hex code)
  </Accordion>

  <Accordion title="Blacklist">
    Email addresses in the account's blacklist.

    **Key:** `email` — **Sync:** full table

    **Fields:**

    * `email` - Blacklisted email address; no email is sent to it
  </Accordion>

  <Accordion title="SMTP Emails">
    Transactional emails sent through SendPulse SMTP, with the recipient server's answer and open and click tracking.

    **Key:** `id` — **Sync:** incremental on `send_date`

    **Fields:**

    * `id` - Unique identifier of the email
    * `sender` - Sender email address
    * `recipient` - Recipient email address
    * `subject` - Subject line of the email
    * `send_date` - Date and time the email was sent (UTC); used as the incremental replication key
    * `total_size` - Size of the email in bytes
    * `sender_ip` - IP address the email was submitted from
    * `used_ip` - SendPulse IP address the email was delivered from
    * `smtp_answer_code` - SMTP status code answered by the recipient's mail server
    * `smtp_answer_subcode` - Extended SMTP status code answered by the recipient's mail server
    * `smtp_answer_data` - Text answered by the recipient's mail server
    * `tracking_open` - Number of times the email was opened
    * `tracking_click` - Number of clicks on links in the email
    * `tracking_links` - Link clicks with URL, browser, OS, IP, country and date (JSON array)
    * `tracking_client_info` - Opens with browser or mail client, OS, IP, country and date (JSON array)
  </Accordion>

  <Accordion title="SMTP Bounces">
    Transactional emails that bounced, with the recipient server's answer.

    **Key:** `email_to`, `sender`, `send_date` — **Sync:** incremental on `send_date`

    **Fields:**

    * `email_to` - Recipient address that bounced
    * `sender` - Sender email address
    * `send_date` - Date and time the email was sent (UTC); used as the incremental replication key
    * `subject` - Subject line of the email
    * `smtp_answer_code` - SMTP status code answered by the recipient's mail server
    * `smtp_answer_subcode` - Extended SMTP status code answered by the recipient's mail server
    * `smtp_answer_data` - Text answered by the recipient's mail server
  </Accordion>

  <Accordion title="SMTP Unsubscribes">
    Recipients unsubscribed from transactional emails, and how.

    **Key:** `email` — **Sync:** full table

    **Fields:**

    * `email` - Unsubscribed email address
    * `unsubscribe_by_link` - Whether the recipient unsubscribed through the unsubscribe link
    * `unsubscribe_by_user` - Whether the address was unsubscribed by the account user
    * `spam_complaint` - Whether the recipient reported the email as spam
    * `date` - Date and time of the unsubscription (UTC)
  </Accordion>

  <Accordion title="SMTP Sender Domains">
    Sending domains of the SMTP service and their DKIM, SPF and DMARC checks.

    **Key:** `id` — **Sync:** full table

    **Fields:**

    * `id` - Unique identifier of the sending domain
    * `domain` - Sending domain
    * `status` - Status of the domain (0 inactive, 1 active)
    * `is_default` - Whether this is the account's default sending domain
    * `ssl_type` - Certificate type (0 no SSL, 1 generated by SendPulse, 2 provided by the user)
    * `ssl_expired` - Date and time the user's SSL certificate expires (UTC)
    * `expire_date` - Date and time the domain registration expires (UTC)
    * `check_dkim` - Whether the domain passes the DKIM check
    * `check_spf` - Whether the domain passes the SPF check
    * `check_dmarc` - Whether the domain passes the DMARC check
    * `all_checks` - Whether the domain passes every authentication check
    * `spf_txt_needed` - SPF TXT record SendPulse asks to publish for the domain
  </Accordion>

  <Accordion title="Automation Flows">
    Automation 360 flows of the account and their settings.

    **Key:** `id` — **Sync:** full table

    **Fields:**

    * `id` - Unique identifier of the flow
    * `name` - Name of the flow
    * `status` - Status code of the flow (0 new, 1 active, 3 paused)
    * `type` - Type of the flow (e.g. series)
    * `address_book_id` - Identifier of the mailing list that triggers the flow, when it is triggered by a mailing list
    * `sender_email_address` - Sender email address of the flow's emails
    * `sender_email_name` - Sender name of the flow's emails
    * `main_data` - Settings of the flow as sent by SendPulse: sending time, UTM tags, language and weekdays (JSON object)
    * `created` - Date and time the flow was created (UTC)
    * `changed` - Date and time the flow was last changed (UTC)
  </Accordion>

  <Accordion title="Automation Flow Statistics">
    Totals of each flow: starts, contacts in the flow, finishes, messages sent and conversions.

    **Key:** `flow_id` — **Sync:** full table

    **Fields:**

    * `flow_id` - Identifier of the automation flow (see automation\_flows)
    * `name` - Name of the flow
    * `status` - Status code of the flow (0 new, 1 active, 3 paused)
    * `created` - Date and time the flow was created (UTC)
    * `changed` - Date and time the flow was last changed (UTC)
    * `starts` - Number of times the flow started
    * `in_queue` - Number of contacts currently going through the flow
    * `end_count` - Number of contacts that finished the flow
    * `send_messages` - Number of messages the flow sent
    * `conversions` - Number of conversions of the flow
    * `elements` - Elements of the flow with their type, dates and the campaign or message each one sends (JSON array)
  </Accordion>

  <Accordion title="Automation Element Statistics">
    Statistics of each element (start, email, SMS, filter, goal, and so on) of each flow.

    **Key:** `flow_id`, `element_id` — **Sync:** full table

    **Fields:**

    * `flow_id` - Identifier of the automation flow (see automation\_flows)
    * `element_id` - Identifier of the element inside the flow
    * `type` - Type of the element (maintrigger, email, sms, push, viber, filter, trigger, goal, action or pause)
    * `executed` - Number of times the element was executed
    * `sent` - Number of messages sent
    * `delivered` - Number of messages delivered
    * `opened` - Number of messages opened
    * `clicked` - Number of messages clicked
    * `errors` - Number of sending errors
    * `marked_as_spam` - Number of emails marked as spam
    * `unsubscribed` - Number of recipients who unsubscribed
    * `positive` - Contacts that matched the filter (filter elements)
    * `negative` - Contacts that did not match the filter (filter elements)
    * `stopped` - Contacts stopped at the element (filter elements)
    * `deleted` - Deleted count reported for the element
    * `status` - Status code of the element
    * `last_send` - Date and time the element last ran or sent (UTC)
  </Accordion>

  <Accordion title="Automation Conversions">
    Contacts that converted in each flow, with the element they converted at.

    **Key:** `flow_id`, `id` — **Sync:** incremental on `conversion_date`

    **Fields:**

    * `flow_id` - Identifier of the automation flow (see automation\_flows)
    * `id` - Unique identifier of the conversion
    * `conversion_type` - How the contact converted: maintrigger (flow stopped by an event) or goal (reached a Goal element)
    * `element_id` - Identifier of the Start or Goal element the conversion happened at
    * `email` - Email address of the contact
    * `phone` - Phone number of the contact
    * `conversion_date` - Date and time of the conversion (UTC); used as the incremental replication key
    * `start_date` - Date and time the contact entered the flow (UTC)
    * `external_data` - Data of the event that caused the conversion, such as a CRM deal (JSON object)
  </Accordion>
</AccordionGroup>
