AFI AFI

Intercom

Estimated reading: 4 minutes Updated August 1, 2026

Intercom is a customer messaging platform that combines live chat, email, bots, and a help desk. Advanced Form Integration creates contacts (leads and users) in Intercom from your WordPress form submissions, with support for location data, social profiles, and company associations.

What you’ll need

  • An active Intercom account.
  • An Intercom Access Token (see below).
  • The Advanced Form Integration plugin installed and activated.

Get your Intercom access token

  1. Go to the Intercom Developer Hub.
  2. Create a new app.
  3. Add the “Read and write all contact data” and “Read and write all ticket data” permissions.
  4. Copy the Access Token.
  5. In WordPress, go to AFI → Settings → Intercom.
  6. Click Add Account, paste the access token, and give the account a name.
  7. Click Save.

Intercom uses Bearer token authentication with the Intercom-Version: 2.15 header on all requests.

Create the integration

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

Screenshot: AFI field-mapping screen with Intercom contact fields shown next to form field tokens

Tasks supported

Create Contact

Creates a contact in Intercom via POST /contacts. The role defaults to lead if not specified. Any field prefixed with custom_ is automatically routed to Intercom’s custom_attributes object. Location fields are grouped under location_data, and social profile fields under social_profiles.

Field Field key Required Notes
Email email Yes Primary identifier
External ID external_id No External identifier from your system
Name name No Full name
Phone phone No
Role role No user or lead. Defaults to lead.
Owner ID owner_id No Team member ID
Avatar Image URL avatar_image_url No
Location fields location_city_name, location_country_name, location_country_code, location_region_name, location_timezone No
Social Profile social_profile_name, social_profile_url, social_profile_username No Platform name (e.g. twitter), URL, username
Company ID company_id No Associates contact with an existing company
Custom attributes custom_source, custom_industry, custom_company_size No Example custom attributes; any custom_* key is supported

Pro features

The Pro integration adds contact upsert (create or update), auto-loaded custom data attributes, and three additional tasks. Pro uses the same Intercom access token connection.

Create or Update Contact (upsert)

Pro searches for an existing contact by email via POST /contacts/search. If found, the contact is updated via PUT /contacts/{id}. If not, a new contact is created via POST /contacts.

Custom data attributes (auto-loaded)

Pro fetches writable custom data attributes from GET /data_attributes?model=contact. Only api_writable attributes appear. Each one shows as “[Custom]” in the mapper with its label.

Additional Pro tasks

  • Add Note to Contact: finds a contact by email, then attaches a note via POST /contacts/{id}/notes.
  • Tag a Contact: finds a contact by email, matches the tag name against workspace tags, then applies it via POST /contacts/{id}/tags.
  • Track Event: records an event via POST /events with optional JSON metadata. Accepts email or user ID for identification.

Feature comparison

Feature Free Pro
Create contact (lead or user)
Standard fields (name, email, phone, location, social)
Company association
Basic custom attributes (hardcoded examples)
Contact upsert (search by email, create or update) No
Custom data attributes (auto-loaded from workspace) No
Add Note to Contact No
Tag a Contact No
Track Event No

Conditional logic example

Only create Intercom contacts for B2B leads. Add a condition on company_name being not empty. Consumer enquiries without a company go to a different integration.

Troubleshooting

Nothing arrives in Intercom

Open AFI → Log and find the most recent entry. AFI stores the request URL, JSON body, headers, and raw response.

401 Unauthorized

The access token is invalid or expired. Regenerate it in the Intercom Developer Hub and update it in AFI → Settings → Intercom.

Rate limited (HTTP 429)

Intercom enforces rate limits per workspace. AFI automatically retries once after a short back-off, honoring the Retry-After header.

Related docs