AutopilotHQ
Integrations › AutopilotHQ

AutopilotHQ Integration

Sync ad leads to Autopilot (Ortto) contacts and marketing journeys -- with custom fields mapped so your automation triggers the moment a lead submits.

Available Integrations

Connect AutopilotHQ with 4 lead sources

Start Free Trial No credit card required · 14-day free trial
Trusted by
1,000+ businesses
Leads synced
2M+
Integrations
37+
Free trial
14 days, no card

How It Works

1
Connect Your Ad Account
Link your Facebook, Google, LinkedIn, or TikTok ad account to LeadSync in one click.
2
Choose AutopilotHQ
Select AutopilotHQ as your destination and authenticate your account.
3
Map Your Fields
Match your lead form fields to AutopilotHQ and start syncing leads instantly.

How LeadSync Pushes Contacts to Autopilot (Ortto)

Autopilot rebranded to Ortto in 2022, but the underlying API at api2.autopilothq.com/v1/ kept the original name and shape. LeadSync authenticates with your single Autopilot API Key (sent as the custom autopilotapikey: header on every request) and POSTs to /contact with the lead's name, email, custom fields, and the destination list_id wrapped in Autopilot's required {contact: {...}} envelope.

During setup LeadSync calls GET /lists to enumerate every Autopilot list on your account so you can pick a destination per lead source. The list_id arrives on the contact create payload as _autopilot_list -- Autopilot's special pseudo-property that adds the contact to the named list as part of the same atomic operation that creates them.

Custom Fields with Type-Aware Storage

Autopilot custom fields are typed -- text, number, date -- and the API requires you to declare the fieldType when creating or updating a custom field value. LeadSync calls GET /contacts/custom_fields to enumerate every custom field on your account, builds an internal id of the form fieldType--FieldName (e.g. text--Lead Source, integer--Annual Revenue), and uses that combined id when constructing the contact payload so each value lands in the right slot with the right type.

When you map a lead form question to a custom field in the LeadSync mapping screen, the value is wrapped under send_data['custom'] in the payload -- the structure Autopilot uses to keep custom fields separate from system fields like FirstName, LastName, and Email. Type validation runs on the Autopilot side, so a "Lead Source" text field happily accepts free-text and an "Annual Revenue" integer field rejects non-numeric input.

Full-Name Splitting and Journeys

When the lead arrives with a single full_name field (Facebook's default), LeadSync runs Utils::parseFullName to split it into FirstName + LastName. This means an Autopilot Journey email using {{contact.FirstName}} renders correctly even on leads that arrived with one combined name field, and your contact list isn't cluttered with duplicate-looking entries.

Once the contact is added to the chosen list, any Autopilot Journey with a "List entered" trigger pointing at that list fires within seconds -- ready to send your welcome email, kick off a multi-step nurture sequence, or post to a Slack channel via Autopilot's native Slack integration.

Frequently Asked Questions

Log into Autopilot (now Ortto), open Settings > Autopilot API > Manage API keys, and copy the key (or generate a new one). Paste it into LeadSync when you create the AutopilotHQ connection. LeadSync stores it encrypted and uses it as the autopilotapikey header on every API call.
Yes -- the company rebranded to Ortto in 2022. The product itself, the API endpoint (api2.autopilothq.com), and the field structure all stayed the same, so existing LeadSync connections continue to work without changes. New customers connect using the same API Key flow.
In the LeadSync connection settings, the Lists dropdown shows every Autopilot list on your account (loaded live via the /lists API endpoint). Pick the destination and every new lead is added to that list as part of the same /contact create call -- using Autopilot's _autopilot_list pseudo-property to bind list membership to contact creation atomically.
Yes. Build a Journey with a "List entered" trigger pointing at the list LeadSync writes to and every new lead enters the Journey within seconds. Welcome emails, multi-step nurture sequences, scoring rules, or Slack notifications via Autopilot's native Slack integration all run automatically.
Yes. LeadSync calls Autopilot's /contacts/custom_fields endpoint to pull every custom field on your account along with its fieldType. The mapping screen lists each field by name; when you save a mapping, LeadSync sends the value with the correct field type so a numeric Autopilot field accepts numeric input and a date field accepts date input.
When the lead arrives with only full_name (the Facebook default), LeadSync runs Utils::parseFullName to split it into FirstName + LastName. "Mary Jane Smith" arrives as FirstName "Mary" and LastName "Jane Smith", so Autopilot Journey email merge tags like {{contact.FirstName}} render correctly without manual cleanup.
Autopilot upserts contacts by email by default -- a repeat submission updates the existing contact's custom field values and adds them to the destination list if not already present, rather than creating a second row. Your contact count stays accurate and your Journey doesn't double-fire on the same person.
Yes. Each LeadSync connection picks its own Autopilot list, so create separate connections for Facebook and LinkedIn and choose different destination lists on each. Build different Journeys triggered off each list and your paid-social and B2B audiences receive different nurture flows automatically.
Yes. LeadSync supports AutopilotHQ (Ortto) as a destination for Facebook Lead Ads, Instagram Lead Ads, Google Ads lead form extensions, LinkedIn Lead Gen Forms, and TikTok Lead Generation. Each ad source is its own connection but they all use the same AutopilotHQ helper.

Start Syncing Leads to AutopilotHQ

Set up your AutopilotHQ integration in under 60 seconds. Free 14-day trial, no credit card required.

Start Your Free Trial
No credit card required • Set up in 60 seconds • Cancel anytime