Welcome new Paddle subscribers in HubSpot, Gmail and Slack

By General Input

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.

Integrations

  • Paddle
  • HubSpot
  • Gmail
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

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.

Related prompts

Explore more prompts
Win back LiveChat visitors whose chats went unansweredA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts from