Skip to content

The moment it happens

Announce new Paddle subscribers in Slack

Each new subscriber shows up in your channel with their plan and price the moment they sign up.

Runs
The moment it happens
Apps
Paddle
AI
Not needed
Access
read (customers, subscriptions); notification settings

Send this to your assistant

Create a ClickRuntime automation: when someone starts a subscription in Paddle, post their email, plan name and monthly amount to #revenue in Slack.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A SaaS founder selling through Paddle usually learns about a new subscriber days later, when someone opens the revenue dashboard or a monthly report lands. By then the welcome moment has passed. The customer paid, got a receipt, and heard nothing human, and nobody noticed that the plan they picked was the pricey annual one or that a trial converted overnight.

Each time Paddle sends a subscription created event, the signature on the request is checked against your Paddle-Signature secret, and only genuine events go further. A Slack message then names the customer, the plan and the price, so the channel shows sign-ups as they happen instead of after the fact.

It suits small teams where the founder, support and sales all watch the same channel, and early-stage products where every single new subscriber is still worth a personal note.

What you get out of it

  • A welcome while interest is hot

    Someone who just paid is at their most engaged. A message in Slack lets a founder send a short personal email within the hour, which tends to surface setup problems and questions before they turn into a quiet cancellation.

  • Everyone sees growth as it happens

    Posting each new subscriber into a channel gives support, sales and engineering a shared pulse. A slow week looks slow and a good day is noticed, without anyone needing to log in and refresh a report.

  • Learn which plans actually sell

    Seeing plan and price on every message builds an honest picture of the mix. If the annual tier keeps winning or nobody picks the cheapest one, you notice within a couple of weeks instead of at quarter end.

  • Spot onboarding gaps early

    When a subscriber appears in Slack, someone can check that their account was provisioned and they received access. A broken fulfillment hook then gets caught after one customer, not after fifty.

  • Fake events never reach the channel

    The Paddle-Signature check means a forged or replayed request cannot post a made-up sign-up. The numbers your team sees in Slack can be trusted when they are quoted in planning or to investors.

How it works

What happens, step by step

  1. When someone subscribes through Paddle, Paddle tells ClickRuntime straight away.

  2. ClickRuntime checks the message really came from Paddle.

  3. A message goes to your #revenue Slack channel with the customer's email, the plan and the price.

Before it runs live

  • Connect Paddle
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Announce new Paddle subscribers in Slackjust nowSucceeded
Slack · #revenue🎉 New subscription: ops@northwind.example on *Pro monthly*, USD 49.00/month

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Paddle steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
new_subscription_alert.pyexample
from clickruntime import on_event, credentials, http, notify

import hashlib, hmac

def paddle_signed(event):
    parts = dict(p.split("=", 1) for p in event.header("Paddle-Signature").split(";"))
    expected = hmac.new(credentials.secret("PADDLE_WEBHOOK_SECRET").encode(),
                        f"{parts['ts']}:{event.body}".encode(), hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, parts["h1"])

@on_event
def handle(event):
    if not paddle_signed(event):
        return {"posted": False, "reason": "bad signature"}
    body = event.json
    if body["event_type"] != "subscription.created":
        return {"posted": False}
    sub = body["data"]
    customer = http.get(f"https://api.paddle.com/customers/{sub['customer_id']}",
                        headers={"Authorization": f"Bearer {credentials.secret('PADDLE_API_KEY')}"}).json()["data"]
    price = sub["items"][0]["price"]
    amount = int(price["unit_price"]["amount"]) / 100
    notify.slack(f"🎉 New subscription: {customer['email']} on *{price['description']}*, "
                 f"{price['unit_price']['currency_code']} {amount:,.2f}/{price['billing_cycle']['interval']}",
                 channel="#revenue")
    return {"subscription": sub["id"]}

FAQ

Common questions

Does it fire for trials as well as paid subscriptions?
It reacts to the subscription created event, which Paddle sends when a subscription starts, including one that begins in a trial. The message shows the plan and price so your team can tell a trial start from a paid one at a glance.
Where do I find the secret used to verify Paddle-Signature?
Paddle shows an endpoint secret key on the notification destination you create in its dashboard. You give that key to ClickRuntime, where it is stored as a secret, and requests whose signature does not match are rejected.
Can I post to a different channel for annual plans?
Yes. Tell your AI assistant to route annual subscriptions to a separate channel, or to add a mention when the price is above a number you choose. You see the revised version and approve it before it replaces the current one.
What permissions does it need?
read (customers, subscriptions); notification settings. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Announce new Paddle subscribers in Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.