Automatically add form submitters as contacts to an ActiveCampaign list when they submit a Contactum form. Contactum uses ActiveCampaign’s legacy v1 API, which is available on all plan types including Lite.
Requirements #
- Contactum Pro
- An active ActiveCampaign account
- Your ActiveCampaign API URL and API Key (both are required)
1. Find Your API URL and API Key #
ActiveCampaign requires two credentials — an account-specific URL and an API key. Both are found in the same place.
Log in to your ActiveCampaign account.
Go to Settings (gear icon, bottom-left) → Developer.
Under the API Access section you will find:
- API URL — your account endpoint, in the format
https://YOURACCOUNTNAME.api-us1.com - API Key — a long alphanumeric string
- API URL — your account endpoint, in the format
Copy both values. Keep the API key private — anyone with the key and URL can access and modify your contacts.
Do not add a trailing slash to the API URL. Contactum strips it automatically, but entering it cleanly avoids confusion.
2. Connect ActiveCampaign in Contactum #
- Go to Contactum → Settings → Integrations → ActiveCampaign.
- Enter your API URL in the first field (e.g.
https://myaccount.api-us1.com). - Enter your API Key in the second field.
- Click Save Settings.
Contactum validates both credentials by calling list_paginator on your API URL. Validation checks two things:
- The URL responds with JSON — if not, the URL is invalid.
- The
result_codein the response is1— if it is0, the API key is invalid.
If both pass, a “Your ActiveCampaign configuration is valid” message appears and the status badge turns green.
To disconnect, click Disconnect ActiveCampaign. This clears both the API URL and key and disables all ActiveCampaign contact syncing until you reconnect.
3. Enable ActiveCampaign on a Specific Form #
The global connection does not add anyone to a list on its own — you must enable and map the integration per form.
Open the form in the Contactum form builder.
Go to Form Settings → Integrations.
Find ActiveCampaign and toggle it on.
If the card shows Not Connected, complete Step 2 first.
Click Configure to open the field mapping dialog.
4. Configure Field Mapping #
| Field | Required | Description |
|---|---|---|
| List | Yes | The ActiveCampaign list to subscribe the contact to. Click the refresh (↻) icon to load all lists from your account |
| Yes | Map to the form field that collects the contact’s email address | |
| First Name | No | Map to a text or name field for the contact’s first name |
| Last Name | No | Map to a text or name field for the contact’s last name |
Using Smart Tags #
Each text field accepts a smart tag from your form. Click the { } merge tag button next to the input and select the form field. The value is inserted as {field_name}. Example:
Email → {email}
First Name → {first_name}
Last Name → {last_name}
You can also type a smart tag manually if you know the field name.
Refreshing Lists #
If you created a new list in ActiveCampaign after connecting, click the refresh (↻) button next to the List dropdown. Contactum calls list_list on your API and returns all available lists.
- Click Save Settings in the dialog, then Save the form.
5. How Contact Syncing Works #
When a visitor submits the form:
- Contactum saves the form entry and fires the
contactum_entry_submissionaction. - The ActiveCampaign integration checks that:
- The global API URL and API key are saved and verified (
status: true) - The form has ActiveCampaign enabled
- A List and an Email mapping are both configured
- The global API URL and API key are saved and verified (
- Smart tags in the Email, First Name, and Last Name fields are resolved against the submitted entry data.
- If the resolved email address is empty, the sync is silently skipped.
- A
contact_syncrequest is sent to your ActiveCampaign API with the following data:
email = subscriber@example.com
first_name = Jane
last_name = Doe
p[42] = 42
p[{list_id}] is the ActiveCampaign legacy API syntax for subscribing a contact to a list. The value equals the list ID.
contact_syncperforms an upsert — if the email already exists, the contact record is updated and they are added to the list. If the email is new, a contact record is created.
Contact syncing happens after the entry is saved. An ActiveCampaign API failure does not block the form submission or show an error to the visitor — the form completes normally.
6. Contact Behaviour in ActiveCampaign #
| Scenario | Result |
|---|---|
| New email address | Contact created and subscribed to the list |
| Existing email, same list | Contact’s first/last name updated; list subscription unchanged |
| Existing email, different list | Contact added to the new list; existing subscriptions unchanged |
| Existing email, unsubscribed from list | ActiveCampaign may block re-subscription depending on your unsubscribe settings |
| Empty email from smart tag | Sync skipped silently |
| API URL or key invalid | Sync skipped silently; form still processes normally |
7. Troubleshooting #
“Invalid API URL” error on save #
- Confirm the URL follows the exact format:
https://YOURACCOUNTNAME.api-us1.com - Do not include
/admin/api.phpor any path — only the base account URL. - Check that your server can reach the ActiveCampaign API (some hosting environments block outbound requests).
“Invalid API Key” error on save #
- Copy the API key directly from ActiveCampaign → Settings → Developer with no spaces.
- The API key is tied to your user account. If you recently regenerated it, update it in Contactum as well.
List dropdown is empty after clicking refresh #
- Confirm the global connection shows the green valid badge before refreshing — Contactum uses the saved credentials to fetch lists.
- Confirm you have at least one list in ActiveCampaign → Lists.
Contacts are not appearing in ActiveCampaign #
- Confirm the form has ActiveCampaign toggled on and was saved after enabling.
- Confirm a List is selected in the Configure dialog — the integration silently skips if no list ID is set.
- Confirm the Email field is mapped and the mapped form field contains a valid email address on submission.
- Submit a test entry and check the email value in Contactum → Entries.
- Enable
WP_DEBUG_LOGand checkwp-content/debug.logfor PHP errors during submission.
Contact is created but not subscribed to the list #
- The list subscription uses
p[{list_id}] = list_id. Verify the correct list is selected in the form’s Configure dialog — the list ID must match an existing ActiveCampaign list. - If the contact previously unsubscribed from the list, ActiveCampaign’s unsubscribe rules may prevent re-subscription. Check the contact record in ActiveCampaign → Contacts to see their subscription status for that list.
8. Notes #
- API version: Contactum uses ActiveCampaign’s legacy v1 API (
/admin/api.php?api_action=…), available on all plans including Lite. The newer v3 REST API is not used. - API URL format: The URL is account-specific and always follows the pattern
https://ACCOUNTNAME.api-us1.com. EU-hosted accounts may use a different subdomain — copy the exact URL from your Developer settings. - Credentials storage: Both
apiKeyandapiUrlare stored inwp_optionsunder the keyactivecampaign. Restrict database access and keep WordPress authentication keys strong. overwriteflag: When editing an existing contact, Contactum sendsoverwrite=0, which means existing field values in ActiveCampaign are not overwritten — only empty fields are filled in. This prevents submitted form data from accidentally clearing data already in ActiveCampaign.