Skip to main content

Add-to-List Webhooks

Every thanks.io mailing list has a built-in webhook URL. When your CRM fires that URL, the contact is automatically added to the list - no Zapier or third-party tools needed.

CRMs with pre-formatted webhook support include HighLevel, kvCORE/Bold Trail, HubSpot, Salesforce, and Sure Send.

HubSpot users

The thanks.io app for HubSpot adds records to a list without a webhook. A thanks.io Mailing Lists card on every contact and company record adds one record by hand (see Add a contact or company to a mailing list). The Add to Mailing List workflow action adds every record a HubSpot workflow enrolls, for example to feed a campaign that runs on that list, and can map HubSpot properties to custom fields 1-10 (see Add records to a mailing list from a HubSpot workflow). The thanks.io send actions mail a piece directly from a workflow, no list involved (see Send mail from a HubSpot workflow).

Finding Your Webhook URL​

  1. In your thanks.io dashboard, open Mailing Lists and open the list you want to add contacts to.

  2. Open the list's ⋮ menu and choose Advanced settings.

  3. Scroll to the Recipient add webhook card.

  4. Choose the tab for your CRM and copy its URL with the copy button:

    • Generic - for any CRM not listed below. Fill in your CRM's fields, then paste it into its webhook settings.
    • HighLevel - pre-formatted with HighLevel merge fields
    • kvCORE/Bold Trail - pre-formatted for kvCORE and Bold Trail
    • Sure Send - pre-formatted for Sure Send
  5. Paste the URL into your CRM's webhook settings.

The Recipient add webhook is part of the Business plan. You can also reach it from Add recipients → Connect an App, which links straight to the card.

Each mailing list has its own unique webhook URL. Copy it from the specific list you want contacts added to.

How the Webhook URL Works​

The URL uses simple key-value pairs after the ? to tell thanks.io where to put each piece of contact data:

key=value

Multiple fields are joined with &:

name=value&company=value&address=value

Your CRM replaces the bracketed placeholders (such as [NAME]) with the actual contact data when it fires the webhook. Different CRMs use different placeholder formats - for example ~VALUE~ or {VALUE}. Refer to your CRM's documentation for the exact syntax it expects.

All the keys in the copied webhook URL are already correct for thanks.io - just copy them as-is.

Available keys​

KeyDescription
nameFull name
firstnameFirst name
lastnameLast name
companyCompany name
addressStreet address
address2Address line 2
cityCity
stateState / Province
postal_codeZIP / Postal code
countryCountry
emailEmail address
phonePhone number
dobDate of birth
custom1 - custom10Custom fields
Avoid duplicate fields

name, firstname, and lastname all represent the same data. Use one set or the other - not both. Sending duplicate information can cause issues.

CRM-specific guides​

  • HighLevel - step-by-step setup including workflow configuration
  • Bold Trail / kvCORE - setup details for kvCORE and Bold Trail
  • HubSpot - the HubSpot app's sidebar card for adding records to a list by hand, its Add to Mailing List workflow action for adding them from a workflow, and its send actions for mailing straight from a workflow