Every 10 minutes
Turn lead replies into the right Pipedrive follow-up
When a lead replies to your email, Pipedrive gets a follow-up activity that matches what they asked for, and the rep is told in Slack.
- Runs
- Every 10 minutes
- Apps
- Pipedrive, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Pipedrive token; chat:write; mailbox read
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes check my Pipedrive inbox for replies from contacts, classify the intent with AI, create a matching follow-up activity and Slack the deal owner.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Reps send dozens of follow-up emails a week, and the replies come back mixed: one lead wants a call on Thursday, another asks for pricing, a third says not until next quarter. Each needs a different next step, but in a busy inbox they all look the same, and the follow-up depends on the rep reading carefully and adding the right activity in Pipedrive by hand.
This automation reads each new reply from a Pipedrive contact, works out what the person wants and creates the matching activity on their deal, such as a call, a pricing email or a reminder in three months. The rep gets a Slack message so a ready-to-buy reply never waits until the end of the day.
What you get out of it
Every reply gets a next step
Each reply leaves a dated activity in Pipedrive, so nothing is lost in the inbox.
The follow-up fits the request
A meeting request becomes a call, a pricing question becomes an email task and a 'not now' becomes a later reminder.
Hot replies reach the rep quickly
A Slack message means a lead asking for a call hears back within the hour.
Cleaner pipeline data
Activities are added consistently, so managers can trust what the pipeline says about next steps.
No double handling
Each thread is remembered once handled, so the same reply never creates two activities.
How it works
What happens, step by step
Every 10 minutes, ClickRuntime checks your Pipedrive email inbox for new replies.
It skips threads it has already handled and stops straight away if nothing is new.
AI reads each reply and decides what the person wants: a meeting, pricing, a later follow-up or nothing.
A matching follow-up activity is added to the deal in Pipedrive.
The rep is told in Slack with the contact, the intent and the new task.
Before it runs live
- Connect Pipedrive
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Pipedrive and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, ai, state, notify, report_fetched
API = "https://api.pipedrive.com"
TASKS = {"meeting": ("call", "Book the meeting"), "pricing": ("email", "Send pricing"), "later": ("task", "Check back")}
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.connection('pipedrive', 'work')}"}
threads = http.get(f"{API}/v1/mailbox/mailThreads", headers=headers, params={"folder": "inbox", "limit": 50}).json()["data"] or []
seen = state.get("seen") or {}
new = [t for t in threads if t.get("deal_id") and seen.get(str(t["id"])) != t["update_time"]]
report_fetched(len(new))
if not new:
return {"checked": 0}
for t in new:
msgs = http.get(f"{API}/v1/mailbox/mailThreads/{t['id']}/mailMessages", headers=headers).json()["data"] or []
intent = ai.generate((msgs[-1].get("snippet") or "")[:1500], max_output_tokens=5,
system="Reply with one word: meeting, pricing, later or none.").text.strip().lower()
if intent in TASKS:
kind, subject = TASKS[intent]
http.post(f"{API}/v1/activities", headers=headers, json={"subject": subject, "type": kind, "deal_id": t["deal_id"]})
notify.slack(f"Reply on '{t.get('subject')}': {intent}. Added '{subject}' in Pipedrive.", channel="#sales")
seen[str(t["id"])] = t["update_time"]
state.set("seen", seen)
return {"handled": len(new)}FAQ
Common questions
Which inbox does it read?
What intents does it recognise?
What happens with 'not interested' replies?
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
Research new Pipedrive organisations and flag the good ones
Every new organisation in Pipedrive gets a short company summary as a note, and the high-fit ones are posted to #sales.
See how it worksLog booked meetings in Pipedrive and tell the team
Each time a prospect books a meeting, they're added to Pipedrive with a meeting activity and the team sees it in #sales.
See how it worksCelebrate won deals in Slack and ask finance to invoice
When a Pipedrive deal is marked Won, #wins gets the deal, value and products, and finance is asked to approve the invoice.
See how it worksKeep exploring
Set up “Turn lead replies into the right Pipedrive follow-up” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
