How do I send handwritten cards from my CRM?
For developers
Use Scribble's public Zapier or Make app to connect your CRM. A native HubSpot integration is available through a private pilot; it is not listed in HubSpot Marketplace. For custom connections, use the public API, inbound hooks, and signed outbound webhooks.
On this page
#Choose a connection for your CRM
| If you want to… | Use | Needs code? |
|---|---|---|
| Connect your CRM through an automation app | Scribble on Zapier or Scribble on Make | No |
| Use the native HubSpot pilot | HubSpot setup guide | No |
| Send a card when a record changes state | An inbound hook | No — a Flow, a Zap or a workflow action is enough |
| Send cards from your own backend, with full control | POST /api/v1/cards | Yes |
| Keep Scribble's address book in step with the CRM | POST /api/v1/contacts | Yes |
| Show card mailed on the contact's timeline | Outbound webhooks | Yes — you need an endpoint that verifies a signature |
#The pattern that works, in order
Decide what the trigger is, precisely
Deal moves to closed-won is a trigger. Deal updated is not — it will fire on every note, and every fire is a card and a credit.
Confirm the CRM record actually carries a postal address
This is where most integrations fail. Sales CRMs are full of contacts with an email, a phone number and no street. Check the field coverage before you build anything.
You’ll know it worked when You can name the CRM fields that map to
line1,city,stateandzipfor the majority of the records you intend to trigger on.Test the sending route
Create an inbound hook or use your chosen connector. Send one request with your own address to check the complete path. This creates a real paid card. Use a stable idempotency key so a retry cannot create a duplicate.
Prove the path curl -X POST https://scribblecards.com/api/v1/hooks/whk_YOURTOKEN \ -H "Content-Type: application/json" \ -d '{ "name": "Dana Okafor", "line1": "88 Colin P Kelly Jr St", "city": "San Francisco", "state": "CA", "zip": "94107", "message": "Thanks for four great years, Dana." }'You’ll know it worked when A
201with a card code, and the card visible under Orders.Move to the API when you need control
Use
POST /api/v1/cardswhen you need to choose the design per card, set anarrive_ondate, or read the status back later. Create a key under Integrations with only the scopes you need.Decide how you learn a card was mailed
Under Integrations, use Webhooks to your system → Add endpoint and subscribe to
card.mailed. Verify the signature on each request.You can also poll
GET /api/v1/cards/{card_code}and checkmailed_at. Use the card code returned by the send.You’ll know it worked when The delivery log on the Integrations screen shows
HTTP 200against your endpoint for a test delivery.Sync the address book, if you need lists
If you want to run automations off CRM data — birthdays, renewal dates — push contacts in with
POST /api/v1/contactsand always send anexternal_id. See keeping contacts in sync for the pitfall.
#Common questions
- Can I trigger a card from a Salesforce Flow without any code?
- Yes. An Outbound Message or an HTTP Callout action pointed at an inbound hook URL, with the recipient's mailing fields in the body, is all it takes.
- Can I trigger a card from Shopify?
- Yes, through a Shopify Flow HTTP request action or through Zapier. The shipping address on the order carries everything a card needs, which makes Shopify one of the easier sources.
- Does Scribble read data out of my CRM?
- It depends on the route. API and inbound-hook requests push the data you supply. Native connectors may read the fields needed for their workflow; check that connector’s permissions and setup guide.
Last checked against the product on . Something wrong or missing? Tell us.
