Skip to content

The moment it happens

Post each PayPal payment to Slack

Every completed payment shows up in Slack with who paid and how much.

Runs
The moment it happens
Apps
PayPal
AI
Not needed
Access
REST app (client credentials)

Send this to your assistant

Create a ClickRuntime automation: when I receive a PayPal payment, post the payer's name, email and amount to #sales 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

The satisfying part of running a small shop is seeing orders come in, and PayPal makes you work to see it. The emails go to one person, the mobile notifications are inconsistent, and the rest of the team learns about sales only when someone mentions them. For a team packing orders or answering customer questions, that gap means slower fulfillment and no sense of momentum.

Each time PayPal sends a payment event, the request is verified so only real events count, and a message with the sale is posted to Slack. Everyone in the channel sees the sale as it happens, which gives fulfillment a prompt to start packing and gives the team a visible tally through the day.

It fits product sellers, creators selling downloads and anyone who wants a shared feed of sales instead of private emails.

What you get out of it

  • Fulfillment starts sooner

    When the person packing orders sees a sale in Slack the moment it is paid, shipping is prepared earlier. Faster dispatch means happier customers and fewer where-is-my-order messages. Customers feel that speed in their delivery times.

  • The whole team sees the shop working

    A running feed of sales builds energy and keeps people connected to the customer. After a quiet week, a busy afternoon of notifications reminds the team why the work matters.

  • Verification keeps fake sales out

    Checking the PayPal webhook signature stops forged requests from posting made-up sales. When the team reads a notification, they can trust that real money actually moved. Money-related messages deserve that level of care before anyone reacts.

  • Catch odd activity early

    A sudden burst of tiny payments or an unusually large one stands out in a channel. You can look into possible card testing or a pricing mistake while the payments are still fresh.

  • A simple log of every payment

    Slack keeps the history, so you can search for a payment by amount or name later. It is a quick lookup tool when a customer asks whether their payment was received.

How it works

What happens, step by step

  1. When a PayPal payment completes, PayPal tells ClickRuntime straight away.

  2. ClickRuntime checks with PayPal that the message is genuine.

  3. A message goes to your #sales Slack channel with the payer's name, email and the amount.

Before it runs live

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

What you get

RunsThe moment it happens
Post each PayPal payment to Slackjust nowSucceeded
Slack Β· #salesπŸ’° PayPal payment: Dana Fox (dana@acme.example), USD 240.00

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 PayPal 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_sale_notification.pyexample
from clickruntime import on_event, credentials, http, notify

API = "https://api-m.paypal.com"

def paypal_headers():
    resp = http.post(f"{API}/v1/oauth2/token", data={"grant_type": "client_credentials"},
                     auth=(credentials.secret("PAYPAL_CLIENT_ID"), credentials.secret("PAYPAL_CLIENT_SECRET")))
    resp.raise_for_status()
    return {"Authorization": f"Bearer {resp.json()['access_token']}"}

@on_event
def handle(event):
    body = event.json
    if body.get("event_type") != "PAYMENT.CAPTURE.COMPLETED":
        return {"posted": False}
    headers = paypal_headers()
    check = http.post(f"{API}/v1/notifications/verify-webhook-signature", headers=headers, json={
        "auth_algo": event.header("paypal-auth-algo"), "cert_url": event.header("paypal-cert-url"),
        "transmission_id": event.header("paypal-transmission-id"),
        "transmission_sig": event.header("paypal-transmission-sig"),
        "transmission_time": event.header("paypal-transmission-time"),
        "webhook_id": credentials.secret("PAYPAL_WEBHOOK_ID"), "webhook_event": body}).json()
    if check.get("verification_status") != "SUCCESS":
        return {"posted": False, "reason": "signature"}
    capture = body["resource"]
    order_id = capture["supplementary_data"]["related_ids"]["order_id"]
    payer = http.get(f"{API}/v2/checkout/orders/{order_id}", headers=headers).json()["payer"]
    amount = capture["amount"]
    notify.slack(f"πŸ’° PayPal payment: {payer['name']['given_name']} {payer['name']['surname']} "
                 f"({payer['email_address']}), {amount['currency_code']} {amount['value']}", channel="#sales")
    return {"posted": True, "capture": capture["id"]}

FAQ

Common questions

Does it post refunds and subscription payments too?
It posts the payment events it is connected to. A refund is a different PayPal event, so it will not appear as a sale. Tell your AI assistant to cover refunds with a separate message if you want both. Separate messages keep each type clear.
How do I stop notifications for very small payments?
You can set a minimum amount so only payments above it are posted. Give your AI assistant the threshold, such as five dollars, and you will see the updated version before it takes effect. That is quick to do.
What does the webhook verification check?
PayPal signs each webhook request. The signature is verified against your webhook id, which confirms the request came from PayPal and was not altered. Requests that fail verification are dropped without posting anything to Slack.
What permissions does it need?
REST app (client credentials). 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 β€œPost each PayPal payment to Slack” from your assistant

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