Webhook-Based CRM Integration
What it is
Any CRM that can send an outbound HTTP POST - Salesforce, Pipedrive, ActiveCampaign, Keap, Monday.com, and others - can trigger a thanks.io mail send. This guide covers the general pattern.
For platform-specific steps, see HighLevel or Bold Trail / kvCORE.
General setup steps
- Get your API key - go to Settings → API Access and click Create API Key.
- Note your creative ID - go to Creatives in the sidebar, open the menu on the creative you want to mail, and choose Copy creative ID. A creative sends its front and message exactly as saved. To send separate templates instead, choose Preview on the creative to copy its image template ID and message template ID. See Finding template IDs.
- Create the webhook in your CRM - fire on the event you want to trigger mail (deal stage change, tag added, contact created, etc.).
- Configure the HTTP request:
- Method:
POST - URL:
https://api.thanks.io/api/v2/send/{mailer-type}(replace{mailer-type}withpostcard,letter,windowlessletter,notecard,magnacard, orgiftcard) - Headers:
Authorization: Bearer YOUR_API_TOKENandContent-Type: application/json - Body: JSON with the recipient fields and either
creative_idor the template fields (see docs.thanks.io for the full schema). Acreative_idcan't be combined with template, message, front image, or handwriting fields; onlyqrcode_url(and, for letters,additional_pages_url) may be added.
- Method:
- Map CRM fields to the thanks.io recipient schema (name, street, city, state, ZIP).
- Turn on Test Mode under Settings → API Access and test with a single record.
- Check the Audit Log at Settings → Audit Log to confirm the request was received.
- Turn off Test Mode and go live.
Tips & best practices
- Always test with Test Mode on before going live.
- To see what a send will cost at live rates, point the same request at
https://api.thanks.io/api/v2/estimate/{mailer-type}instead of/send/. It returns the total and whether your balance covers it, without charging or mailing anything. See Estimating an Order's Cost. - Use the Audit Log to diagnose failed API calls - it shows requests received, responses returned, and validation errors.
- Validate address fields in your CRM before sending; missing addresses cause
422errors. - Implement exponential backoff for
429(rate limit) responses.