Release Status Released Supported By Singer community
Availability Free Status Page Autopilot Status Page
Default Historical Sync 1 year Default Replication Frequency 60 minutes
Whitelisting Unsupported Destination Incompatibilities None

Connecting Autopilot

Step 1: Retrieve your Autopilot API Key

  1. Sign into your Autopilot account.
  2. Click the gear (Settings) icon on the left side of the page.
  3. In the Settings menu, click Autopilot API.
  4. If you haven’t used the API before, you’ll need to generate a new key. Click the Generate button.
  5. Your API Key will display.

Make sure you keep this key safe, as it has access to your Autopilot account. If at any time your key is lost or compromised, you can click the Regenerate button to generate a new key. Remember to also update the key in Stitch or you’ll encounter connection issues.

Step 2: Add Autopilot as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Autopilot icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Autopilot” would create a schema called stitch_autopilot in the destination. Note: Schema names cannot be changed after you save the integration.

Step 3: Define the Historical Sync

The Sync Historical Data setting will define the starting date for your Autopilot integration. This means that:

  • For tables using Incremental Replication, data equal to or newer than this date will be replicated to your data warehouse.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Autopilot’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Initial and historical replication jobs

After you finish setting up Autopilot, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Autopilot table schemas

Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : contact_id API Endpoint: getAllContacts

The contacts table contains info about the contacts in your Autopilot account.

Any custom fields associated with contacts will also be replicated.

contact_id
STRING

The contact ID.

updated_at
DATE-TIME

The time the contact was last updated.

name
STRING

The name of the contact.

first_name
STRING

The first name of the contact.

last_name
STRING

The last name of the contact.

company
STRING

The company of the contact.

company_priority
BOOLEAN

Indicates the contact’s company priority.

email
STRING

The email address of the contact.

lead_source
STRING

The lead source of the contact.

mailing_country
STRING

The mailing country of the contact.

mailing_state
STRING

The mailing state of the contact.

phone
STRING

The phone number associated with the contact.

status
STRING

The status of the contact.

salutation
STRING

The salutation of the contact. Ex: Mr.

anywhere_page_visits

Details about the contact’s page visits.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__anywhere_page_visits. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

url
STRING

The URL associated with the page visit.

anywhere_utm

Details about the UTM parameters associated with the contact’s page visits.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__anywhere_utm. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

url
STRING

The UTM parameter and value associated with the page visit.

mail_opened

Details about the emails opened by the contact.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_opened. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the email was opened by the contact.

mail_received

Details about the emails received by the contact.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_received. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the email was received by the contact.

mail_bounced

Details about the emails sent to the contact that have bounced.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_bounced. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the email bounced.

mail_hardbounced

Details about the emails sent to the contact that have hardbounced.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_hardbounced. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the email hardbounced.

mail_clicked

Details about the emails clicked by the contact.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_clicked. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the email was clicked by the contact.

mail_complained

Details about the emails the contact reported as spam.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_complained. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the contact reported the email as spam.

twitter
STRING

The Twitter handle associated with the contact.

mail_unsubscribed

Details about the emails the contact has unsubscribed from.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__mail_unsubscribed. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The ID of the email.

timestamp
DATE-TIME

The time the contact unsubscribed.

created_at
DATE-TIME

The time the contact was created.

first_conversion_at
DATE-TIME

The time the contact first converted.

first_visit_at
DATE-TIME

The time of the contact’s first visit.

lists

The IDs of the lists that the contact belongs to.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__lists. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_contact_id
STRING

The contact ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

value
STRING

The ID of the contact list.


Replication Method: Full Table API Endpoint: getListofLists
Primary Key : list_id

The lists table contains info about the available lists in your Autopilot account.

list_id
STRING

The ID of the list.

title
STRING

The title of the list.


Replication Method: Full Table API Endpoint: getContactsOnList
Primary Key : list_id : contact_id

The lists_contacts table contains list and contact ID pairs, allowing you to create a list of all the contacts that belong to a given Autopilot list.

list_id
STRING

The list ID.

contact_id
STRING

The ID of the contact that belongs to the list.


Replication Method: Full Table API Endpoint: getListOfSmartSegments
Primary Key : segment_id

The smart_segments table contains info about the smart segments in your Autopilot account.

segment_id
STRING

The ID of the segment.

title
STRING

The title of the segment.


smart_segments_contacts

Replication Method: Full Table API Endpoint: getContactsOnSmartSegment
Primary Key : segment_id : contact_id

The smart_segments_contacts table contains segment and contact pairs, or the segments your contacts are associated with.

segment_id
STRING

The ID of the segment.

contact_id
STRING

The ID of the contact that belongs to the segment.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.