Welcome new Paddle subscribers in HubSpot, Gmail and Slack
The moment someone starts paying in Paddle, their record lands in HubSpot and a short personal welcome email goes out, with the win posted to Slack.
When someone becomes a paying customer in Paddle, I want them in my CRM and personally welcomed within the same minute, instead of discovering them in an export a week later. Trigger this workflow on an incoming webhook from Paddle for a newly created subscription. Paddle sends outgoing webhooks through notification destinations, so I will point a notification destination at this workflow's webhook URL and subscribe it to the subscription created event. This has to be a webhook rather than a poll or a scheduled check: Paddle subscriptions cannot be created through the API at all, because Paddle creates them itself when a customer pays for a recurring item.
When the webhook fires, take the subscription id and the customer id out of the event payload and confirm the details against Paddle rather than trusting the payload alone. Use paddle Get Subscription to read the status, the subscription items, the plan and price ids, the billing interval such as monthly or yearly, and the recurring subscription value with its currency. Remember that Paddle returns money as a string in the smallest unit of the currency, so format it into something a human would recognise before it goes anywhere. Use paddle Get Customer to read the customer's email address, their name if it is set, and their country. If the price description is not a plan name a customer would recognise, use paddle Get Product, and paddle Get Price if you still need it, to resolve a proper plan name. Only carry on if the subscription is actually active or trialing, and stop quietly if it already came through cancelled.
Next, put them in HubSpot without making a mess of it. Use hubspot Search Contacts to look the person up by their email address before writing anything at all. If there is no match, use hubspot Create Contact. If there is a match, use hubspot Update Contact against that contact id instead of creating a second record, because trial users and repeat purchasers very often already exist in the CRM and this is exactly where duplicates get created. Either way the contact should end up carrying the plan name, the subscription value, the billing interval and the signup date, alongside email, first and last name, and country, with the lifecycle stage set to customer. Paddle can retry a webhook delivery, so if the contact already shows the same plan and the same signup date, treat it as a repeat delivery: do not write it twice and do not send a second welcome email.
Then draft and send the welcome email yourself and write it like a person, not like a system. Keep it under 120 words, plain text, with no HTML, no images, no logo, no order summary and no amounts. It must never read like a receipt or an invoice, because Paddle already sends the billing paperwork itself and a second money email is both confusing and slightly alarming. Reference the specific plan they actually bought by name, and point them at the single most useful first step for that plan rather than a generic list of links, so someone on a small monthly plan and someone on an annual top tier plan get sent somewhere different. Give it a short human subject line, sign it from me, and send it with gmail Send a Message to the email address that came back from Paddle.
Finally, post a new customer line into my revenue channel using the slackbot Send a Message operation. Keep it to a couple of lines that can be read at a glance: the customer's name or email, the plan they bought, the billing interval, the subscription value with its currency, their country, and whether they were already a known contact in HubSpot or brand new. Include a link to their HubSpot contact record when you have the contact id.
If a step fails, finish the rest of the run anyway and say what broke in the Slack message rather than dropping the customer silently. The CRM record matters most and the welcome email second, so never let a Slack problem stop the email going out, and never let an email problem stop the contact being written.
What does this prompt do?
- Picks up every new paid subscription in Paddle the moment it starts, and reads the plan, the price, the billing interval and the customer's email and country
- Finds the person in your CRM by email and updates them, or creates a new contact if they are not there yet, so trial users and repeat buyers never end up with two records
- Writes and sends a short, plain welcome email from your own inbox that names the plan they actually bought and points them at the right first step for it
- Posts a one line new customer note in your revenue channel so the whole team sees the win in real time
What do I need to use this?
- A Paddle account where you can turn on notifications for new subscriptions
- A HubSpot login with permission to view and edit contacts
- A Gmail account to send the welcome email from
- A Slack workspace and the channel where new customer notes should land
How can I customize it?
- Change which channel gets the new customer line, or send larger plans to a different channel than small ones
- Swap the first step the email suggests for each plan, so a starter customer and an enterprise customer get pointed somewhere different
- Adjust the length, tone and signature of the welcome email, or have it drafted into Slack for a quick approval instead of sending straight away
- Choose which fields get written back to the CRM record, such as plan name, subscription value, billing interval and signup date
FAQs
Will my customer get a second receipt from this?
What happens if the customer is already in HubSpot?
How quickly does it run?
Does it work if I sell several different plans?
Can I have someone check the email before it sends?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Never let a new paying customer go unwelcomed
Set this up once and every Paddle subscriber lands in your CRM and hears from you personally within the minute.