Docs

SureContact Integration

3 min readUpdated June 22, 2026

SureContact is a WordPress-native CRM and email marketing plugin from the Brainstorm Force team — the same team behind SureForms, SureCart, and Spectra. WP Smart Consent integrates with SureContact via its public API v1, forwarding opted-in contacts to your lists in real time using a single contact upsert call.

Enabling the Integration#

In the WP Smart Consent dashboard, go to CRMs & ESPs, find the SureContact card, open the Connection tab, and paste in your API key. Toggle the integration on and save. WP Smart Consent connects to your SureContact account and populates the list picker with your available lists.

To find your API key, open SureContact in your WordPress admin and go to SureContact → Settings → API. Copy the key shown there. Authentication uses the X-API-Key header.

A web interface for SureContact shows an "Inactive" status. Tabs include Connection, Field mapping, Custom fields, and Options. Connection tab is open, showing toggles for "Enabled" and a field to paste an API key. A green "Save SureContact" button is at the bottom left.

Custom Fields#

SureContact supports contact custom fields defined in your SureContact account. In the Custom fields tab, add a row, select the WPSC source field on the left, and enter the SureContact custom field name on the right. The field name must match exactly what is defined in SureContact. These are sent inside the custom_fields object in the API payload.

Note that phone and company are treated as primary fields in SureContact’s contact model, not custom fields. If you map either of those through the field mapping tab they are sent inside primary_fields automatically rather than custom_fields.

A screenshot of the SureContact CRM interface. The “Custom fields” tab is open, showing an option to “Add SureContact custom field.” A green “Save SureContact” button is at the bottom, and the status in the top right is set to “Inactive.”.

Field Mapping#

The Field mapping tab maps WPSC fields to SureContact contact fields. SureContact’s primary contact fields are email, first_name, last_name, phone, and company. Email, first name, and last name are always sent automatically inside primary_fields. Phone and company, when mapped, are also sent inside primary_fields. Any other destination key goes to custom_fields.

A user interface for SureContact CRM shows the “Field mapping” tab selected. The top shows “Inactive” status. Below, it says first and last name are always sent. There are no mappings listed. Buttons for “Add mapping” and “Save SureContact” appear at the bottom.

How It Works#

WP Smart Consent sends a single POST to https://api.surecontact.com/api/v1/public/contacts/upsert with the contact payload. If the contact already exists they are updated. The source field is set to integration on every upsert so you can filter by origin inside SureContact.

The payload structure is:

json

{
  "primary_fields": {
    "email": "jane@example.com",
    "first_name": "Jane",
    "last_name": "Smith",
    "source": "integration"
  },
  "custom_fields": {
    "city": "Dubai"
  },
  "list_uuids": ["uuid-1", "uuid-2"],
  "tag_uuids": ["uuid-3"]
}

Lists and tags in SureContact are referenced by UUID rather than name. WP Smart Consent resolves tag names to UUIDs at settings save time by calling GET /api/v1/public/tags and caching the resolved UUIDs in the integration settings. This means tag lookups add no latency at opt-in time.

Lists Tab#

The Lists tab is where you select which SureContact lists opted-in contacts are added to. The list is populated automatically from your SureContact account after the API key is saved. Selected list UUIDs are sent directly in the payload.

Options#

The Options tab has two settings.

Update existing contacts — controls whether an existing SureContact contact matched by email has their fields updated on each opt-in.

Send on unchecked — when enabled, contacts are forwarded to SureContact even when the opt-in checkbox was not ticked.

Tags — a comma-separated list of tag names to apply to every contact. Tag names are resolved to UUIDs at save time. Tags that do not exist in SureContact at save time will not be applied — create them in SureContact first before adding them here.

A SureContact settings page displays four tabs: Connection, Field mapping, Custom fields, and Options (selected). Options include two toggles: “Update existing contacts” (on), “Send on unchecked” (off), and a text box for Tags. A green “Save SureContact” button is at the bottom.

Troubleshooting#

List not populating — confirm the API key is correct and saved. Lists are fetched from GET /api/v1/public/lists after save. A wrong key returns a 401 and the list stays empty.

Tags not being applied — tags are resolved to UUIDs when you save the integration settings, not at opt-in time. If you create a new tag in SureContact after saving, re-open the connection settings and save again to re-resolve the tag UUIDs.

Custom field values not saving — confirm the field name in the Custom fields tab matches exactly what is defined in SureContact. Field names are case-sensitive.

This website uses cookies to enhance your browsing experience and ensure the site functions properly. By continuing to use this site, you acknowledge and accept our use of cookies.

Accept All Accept Required Only