Every 5 minutes
Post won Pipedrive deals to Slack
Every won deal is posted to your wins channel with its name, value and owner.
- Runs
- Every 5 minutes
- Apps
- Pipedrive
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes, check for Pipedrive deals marked Won and post each one to #wins in Slack with the deal name, value and owner.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
When a deal is marked won in Pipedrive, the person who closed it knows, and perhaps their manager. Everyone else, including the engineers who will build what was sold and the customer success team who will onboard the customer, finds out later through a casual comment or a forwarded invoice. Wins that no one hears about do little for morale, and handoffs begin days late.
Every five minutes, deals with status won are listed and sorted by won_time. Deal IDs already announced are skipped, so each win appears only once, and a message is posted to Slack for each new one. The channel gives the whole company a near-live feed of closed business, in time for onboarding to begin. Quarter-end pushes are where the feed earns its keep.
It suits growing sales teams where a win should be shared, and companies whose delivery teams depend on knowing what was sold.
What you get out of it
Recognition lands while it is fresh
A win celebrated within minutes feels earned. Colleagues react in the channel, and reps feel their work is noticed, which is a cheap and effective way to keep a sales team motivated.
Delivery can start sooner
Customer success and implementation see the win as it happens and can reach out the same day. Customers who hear quickly after signing feel looked after, which reduces early buyer's remorse.
Each win is announced once
Skipping IDs already posted prevents duplicates, even if a deal is edited afterward. People trust the channel because it never repeats itself or posts stale news. Teams quickly learn to rely on the feed as the definitive word on closed business.
The company sees momentum
A feed of wins shows the business growing in a way a monthly number cannot. New hires and other departments get a feel for what is being sold and to whom.
A timestamped record of closings
Each post is a dated record of when a deal closed. Finance and operations can cross-check booking dates and customer start dates without asking sales. That makes it easy to settle questions about when a customer actually signed.
How it works
What happens, step by step
Every five minutes, ClickRuntime checks Pipedrive for deals that have just been won.
It skips any deal it has already announced.
Each win is posted to your wins channel in Slack with the deal name, value and owner.
Before it runs live
- Connect Pipedrive
What you get
Build your own
Need it to work differently?
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 Pipedrive steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
API = "https://api.pipedrive.com"
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.connection('pipedrive', 'work')}"}
deals = http.get(f"{API}/api/v2/deals", headers=headers, params={
"status": "won", "sort_by": "update_time", "sort_direction": "desc", "limit": 50}).json()["data"]
seen = set(state.get("seen") or [])
new = [d for d in deals if d["id"] not in seen]
report_fetched(len(new))
if not new:
return {"posted": 0}
users = {u["id"]: u["name"] for u in http.get(f"{API}/v1/users", headers=headers).json()["data"]}
for d in new:
notify.slack(f":trophy: Won: {d['title']} · {d['value']:,.0f} {d['currency']} · {users.get(d['owner_id'], 'unknown')}",
channel="#wins")
state.set("seen", sorted(seen | {d["id"] for d in new})[-1000:])
return {"posted": len(new)}FAQ
Common questions
What does the Slack message include?
Why check every five minutes rather than instantly?
Can I celebrate only large deals?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post new Pipedrive deals to Slack
Your team sees each new deal's value and stage in Slack within minutes.
See how it worksPost new Pipedrive contacts to Slack
Each new person is posted to Slack with their organization and owner.
See how it worksCreate follow-ups when a lead replies with interest
When a lead replies, the email is checked for interest and a call is booked on the deal for the ones who want to talk.
See how it worksKeep exploring
Set up “Post won Pipedrive deals to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
