To send handwritten cards from HubSpot, connect HubSpot to MailMyCard once. A new workflow action, "MailMyCard: Send a card", then appears in HubSpot. Add it to a contact-based workflow, for example one that enrolls contacts whose deal is closed won, and map the address fields. Each enrolled contact gets your saved card, written by a real pen and posted with tracking.
MailMyCard is in private preview, so signing up needs an invite. The HubSpot connection is made from the MailMyCard dashboard, and the steps below are the ones the product uses today.
What do you need before you start?
Three things: a MailMyCard account with a card saved as a template and money in its wallet, a HubSpot account that can build workflows, and contacts with a mailing address. HubSpot includes workflows in the Professional and Enterprise editions of its hubs. The country must be stored as a two-letter code, which HubSpot has a property for.
HubSpot's knowledge base lists workflows under Professional and Enterprise tiers of Marketing Hub, Sales Hub, Service Hub, Data Hub, Smart CRM and Revenue Hub (HubSpot). If your account cannot open workflows, the action has nowhere to run.
How do you connect HubSpot to MailMyCard?
Save a card as a template, open Integrations in your MailMyCard dashboard, choose HubSpot, pick the template and press Connect HubSpot. Approve MailMyCard on HubSpot's screen, and you land back on Integrations with the action ready in your workflows. Nothing to copy or paste.
Step by step:
- Write the card. In your MailMyCard dashboard, write the card your contacts should get. On the review step, choose Save this card as a template.
- Open Integrations. It is in the account menu.
- Pick HubSpot. Under Add an integration, press Connect on the HubSpot tile.
- Choose the template, then press Connect HubSpot.
- Approve on HubSpot. HubSpot asks you to approve MailMyCard for your account.
- Check it is connected. Back on Integrations, a note says "MailMyCard: Send a card" is now in your workflows' action list. HubSpot is listed under Your integrations as "HubSpot (connected)", with how many requests came in and how many cards went out.
One HubSpot account sends one saved card. To switch to a different card, connect again and choose the other template; the new connection replaces the old one.
How do you send a card when a deal is closed won?
Build a contact-based workflow whose trigger looks at the contact's associated deal: enroll contacts when that deal's stage is Closed won. Then add the action "MailMyCard: Send a card" and map the address. HubSpot lets workflows enroll records "based on their property values or the property values of any associated records".
That quote is from HubSpot's guide to enrollment triggers (HubSpot). The action is built for contacts, so start from a contact-based workflow, not a deal-based one. In HubSpot:
- Create a workflow that enrolls contacts.
- Set the trigger on the associated deal: deal stage is Closed won (or whichever stage means won in your pipeline).
- Narrow it if a deal has several contacts. Every enrolled contact gets a card, so a deal with three contacts sends three. Add a filter, such as a job title or a property you use to mark the main buyer.
- Add the action. Custom actions sit in the action panel alongside HubSpot's own (HubSpot developer docs). Choose MailMyCard: Send a card.
- Map the fields as shown in the next section, then review and turn the workflow on.
If HubSpot sends the same action run twice, it still makes one card. A contact who is enrolled again in a later run is a new request, though, and gets a new card.
Can a contact property trigger the card instead?
Yes. The action does not care why the contact was enrolled, so any trigger HubSpot offers works. Common ones: lifecycle stage becomes Customer, a custom property such as "Send thank-you card" is set to Yes, or a contact is added to a list. Each enrolled contact gets one card per run.
A property you set by hand is the most controlled version. A rep ticks "Send thank-you card" after a good call, the workflow sends it, and a later step clears the box. For notes worth sending at each stage of a deal, see our 24 handwritten notes for sales.
Which HubSpot fields fill the card?
The address fields fill the envelope, and the first name fills the card. The words of the card are the ones saved in your template, the same for every contact, with [Name] replaced by the first name you map. No other HubSpot property goes into the message today, so write words that fit every contact the workflow enrolls.

The action has nine fields:
| Field in "Send a card" | Map it to | Required? |
|---|---|---|
| First name | First name | Yes |
| Last name | Last name | No |
| Street address | Street address | Yes |
| Address line 2 | A unit or suite property, if you keep one | No |
| City | City | Yes |
| State / region | State/Region | No |
| Postal code | Postal code | Yes |
| Country (two-letter code) | Country/Region Code | Yes |
| Quantity | Typed in (leave empty for 1) | No |
The country trips people up. HubSpot's default Country/Region property holds a name, while its Country/Region Code property is "the two letter country code where the contact is located (e.g., US)" (HubSpot). Map the code. A name like "United States" in that field is not read as a country, and the card is refused.
Two wording examples that fit any won deal:
Dear [Name], thank you for choosing us. The real work starts now, and we are ready for it. Call me any time. Rohan
Hi [Name], welcome aboard. Thank you for your trust, and for your patience with the paperwork. Priya
Any blank in brackets other than [Name], such as [Company], makes the card fail rather than be posted with the brackets showing.
What happens if a card cannot be sent?
The action reports back to HubSpot with a result of "refused" and no card is made. The usual reasons: the contact has no complete mailing address, the country is not a two-letter code we post to, or the MailMyCard wallet is too low. The same reason is shown next to HubSpot on your Integrations page as the last problem.
The action returns two values to the workflow: Result (placed or refused) and MailMyCard order id. A refusal for a reason on your side, like a missing address, is not retried, so fix the contact and enroll it again. If the fault was on MailMyCard's side, we answer so that HubSpot tries again.
Cards are paid from a prepaid wallet, so a workflow can never spend more than you have added. For prices at volume, see our For business page.
Why send a handwritten card after a deal closes?
Because a thank-you changes what people do next, and people underrate it. In experiments by Adam Grant and Francesca Gino, 66 per cent of people who had been thanked agreed to help again, against 32 per cent who had not. A written thank-you is cheap. What it buys is goodwill at the start of the relationship, when the customer is deciding whether they chose well.
The Grant and Gino figures come from the Harvard Gazette, which also reports that thanks from a manager raised the calls university fundraisers made by more than 50 per cent (Harvard Gazette). Handwriting helps a request too: in Randy Garner's study, a handwritten sticky note lifted survey returns to 76 per cent from 36 per cent (Behavioural Insights Team).
People also hold back for the wrong reason. Amit Kumar and Nicholas Epley found letter writers "significantly underestimated how surprised recipients would be" and overestimated how awkward they would feel (University of Chicago News).
The workflow fixes the time problem. Salesforce found reps spend just 28 per cent of their time selling, and that 73 per cent of customers expect companies to understand their unique needs (Salesforce). And the customer you keep is cheaper than the one you find: acquiring a new one costs five to 25 times more (Harvard Business Review).
Does the same work for Pipedrive, Zoho, Attio, monday, Keap and Close?
Yes. Those six connect from the same Integrations page with one click, and the webhook is registered in the CRM for you. Each sends your saved card when a deal is won, except Keap, which uses a tag. There is no field mapping: the address is read from the CRM record.
What sends the card in each:
- Pipedrive: a deal is marked won; its contact gets the card.
- Zoho CRM: a deal's stage becomes Closed Won; its contact gets the card.
- Attio: a deal's stage becomes Won; its associated person gets the card.
- monday.com: an item on the board you choose is set to Won; the address in its columns gets the card.
- Keap: the tag "MailMyCard: send a card" is applied to a contact; they get the card at their billing address.
- Close: an opportunity is marked won; the lead's contact gets the card at the lead's address.
For Salesforce, or HubSpot without the app, Integrations has an Advanced: webhooks section that makes a webhook URL any workflow can post an address to. Shops use a different route: see handwritten thank-you cards for Shopify. Everything else, including the API, is in our developer docs.
Sources
- HubSpot Knowledge Base, "Create workflows": knowledge.hubspot.com
- HubSpot Knowledge Base, "Set filter enrollment triggers": knowledge.hubspot.com
- HubSpot Knowledge Base, "HubSpot's default contact properties": knowledge.hubspot.com
- HubSpot Developers, "Define a custom workflow action": developers.hubspot.com
- Leddy, C. (2013), "The power of 'thanks'", Harvard Gazette, on Grant and Gino (2010): news.harvard.edu
- Behavioural Insights Team, on Garner (2005), Journal of Consumer Psychology: bi.team
- University of Chicago News (2018), on Kumar and Epley, Psychological Science: news.uchicago.edu
- Salesforce, sales research (2023): salesforce.com
- Gallo, A. (2014), "The Value of Keeping the Right Customers", Harvard Business Review: hbr.org



