AFI AFI

Apollo.io

Estimated reading: 5 minutes Updated August 1, 2026

Apollo.io is a sales engagement platform combining a B2B contact database with sequencing, analytics, and CRM. Advanced Form Integration creates or updates contacts and companies (accounts) in Apollo.io from your WordPress form submissions, so every lead capture, demo request, or sign-up lands directly in your sales pipeline.

What you’ll need

  • An active Apollo.io account.
  • An Apollo.io API Key (see below).
  • The Advanced Form Integration plugin installed and activated.

Get your Apollo.io API key

Apollo.io authenticates API requests with a key sent in the X-Api-Key header.

  1. Sign in to your Apollo.io dashboard.
  2. Go to Settings → Integrations → API and click Connect.
  3. Go to API Keys and click Create.
  4. Enter a name for the key and copy the generated API Key.
  5. In WordPress, go to AFI → Settings → Apollo.io.
  6. Click Add New Account, paste the API Key, and give the account a name.
  7. Click Save.

Create the integration

  1. Go to AFI → Add New.
  2. Give the integration a name, for example Lead form to Apollo.io.
  3. Under Trigger, pick the form plugin and the specific form you want to listen on.
  4. Under Action → Platform, select Apollo.io.
  5. In Task, choose Add Contact.
  6. Pick the saved account in the Apollo.io Account dropdown.
  7. Optional: select an Owner to assign the contact and company to a specific Apollo.io user.
  8. Map your form fields onto the Apollo.io fields listed below.
  9. Optional: open Conditional Logic to limit which submissions are sent.
  10. Click Save Integration.

The action works in a specific order: it first creates or updates a company (account) if any company fields are mapped, then creates or updates the contact and links it to that company. AFI searches Apollo.io for existing records by email (contacts) or company name (accounts) before deciding whether to create or update, preventing duplicates.

Tasks supported

Add Contact

Creates or updates a contact in Apollo.io. AFI searches for an existing contact by email via POST /contacts/search. If a match is found, the contact is updated via PUT /contacts/{id}. If no match exists, a new contact is created via POST /contacts. The company (account) is created or updated first, then the contact is linked to it via account_id.

Contact fields

Field Field key Required Notes
Email email Yes Used as the search key for upsert
First Name first_name No
Last Name last_name No
Job Title title No
Contact Stage ID contact_stage_id No Stage IDs are listed in the field description (loaded from contact_stages API)
Website URL website_url No
Address present_raw_address No
Phone direct_phone No
Corporate Phone corporate_phone No
Mobile Phone mobile_phone No
Other Phone other_phone No
Contact Lists label_names No Comma-separated label names (loaded from labels API). Stored as an array.

Company (account) fields

These fields create or update the linked company. If Company Name is empty, no company is created.

Field Field key Required Notes
Company Name company__name No Used as the search key for company upsert
Company Domain company__domain No
Company Stage ID company__account_stage_id No Stage IDs listed in the field description
Company Phone company__phone No
Company Address company__raw_address No

Owner assignment

Select an Owner in the integration to assign both the contact and company to a specific Apollo.io user. Owner IDs are loaded from the users/search API. The owner is applied to the company record as owner_id.

Pro features

The Pro integration extends the free version with auto-loaded custom fields for both contacts and companies. Pro uses the same Apollo.io account connection and the same task, so your existing integrations keep working when you upgrade.

Custom fields

Pro fetches all typed custom fields from your Apollo.io instance via GET /typed_custom_fields and presents them in the mapper with their real names. Contact custom fields (modality: contact) and company custom fields (modality: account) are both included. Each custom field value is sent under the typed_custom_fields object in the API payload.

Feature comparison

Feature Free Pro
Create/update contact (upsert by email)
Create/update company (upsert by name)
Standard contact fields
Standard company fields
Contact lists (labels)
Owner assignment
Auto-loaded contact custom fields No
Auto-loaded company custom fields No

Conditional logic example

Only create contacts for leads interested in a demo. Add a condition: Interested in Demo is Yes. Other submissions are skipped, keeping your Apollo.io contact database focused on qualified leads.

Troubleshooting

Nothing arrives in Apollo.io

Open AFI → Log and find the most recent entry for this integration. AFI stores the request it sent and the raw response it got back, so the Apollo.io error message is right there. If there is no log entry at all, the trigger never fired: re-check the form selection and submit a real test entry from the front end rather than the form builder preview.

API key rejected (401)

Copy the API key directly from Settings → Integrations → API Keys in Apollo.io. If the key was revoked or regenerated, update it in AFI → Settings → Apollo.io.

Contact created but not linked to company

The company is only created when Company Name (company__name) is mapped and non-empty. If the name is blank, AFI skips company creation and the contact is created without an account_id link.

Contact lists not applying

The Contact Lists field accepts comma-separated label names (not IDs). The available labels are listed in the field description, loaded from your Apollo.io labels API. Make sure the label names match exactly, including spaces and capitalization.

Related docs