The moment it happens
Log 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.
- Runs
- The moment it happens
- Apps
- Pipedrive, Slack
- AI
- Not needed
- Access
- Pipedrive token; chat:write
Send this to your assistant
Create a ClickRuntime automation: when Calendly reports a new booking, find or create the person in Pipedrive by email, add a meeting activity at the booked time and post it to #sales.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A prospect books a demo through your scheduling link at 11 p.m. The calendar invite arrives, but Pipedrive knows nothing about it. Unless the rep remembers to add the person and the meeting by hand, the pipeline undercounts meetings, the manager's forecast is off and nobody else on the team knows the call is happening.
This automation closes that gap. As soon as the booking comes in, the person is found or created in Pipedrive, a meeting activity is added at the right time, and #sales gets a short post, so the CRM and the team are both up to date before the rep has even seen the invite.
What you get out of it
Pipedrive matches the calendar
Every booked meeting appears as an activity, so meeting counts and pipeline reports reflect what is actually happening.
No duplicate contacts
The person is looked up by email first and only created if they are new.
The team knows who is coming
A post in #sales means colleagues can share context about the company before the call.
Nothing depends on memory
Late-night and weekend bookings are logged the same way as ones made during office hours.
Works with your booking tool
Calendly and Cal.com can both send bookings, so you keep the scheduling page you already use.
How it works
What happens, step by step
When a prospect books a meeting, your booking tool tells ClickRuntime straight away.
It looks the invitee up in Pipedrive by email, and adds them as a new person if they are not there yet.
A meeting activity is added to that person at the booked date and time.
A short message with the name, email and meeting time is posted to #sales.
Before it runs live
- Connect Pipedrive
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Paste your automation's link into the other app's webhook settings
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 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_event, credentials, http, notify
API = "https://api.pipedrive.com"
@on_event
def handle(event):
p = (event.json or {}).get("payload", {})
email, name, start = p.get("email"), p.get("name"), p.get("scheduled_event", {}).get("start_time", "")
if not email:
return {"ignored": True}
headers = {"Authorization": f"Bearer {credentials.connection('pipedrive', 'work')}"}
found = http.get(f"{API}/api/v2/persons/search", headers=headers,
params={"term": email, "fields": "email", "exact_match": "true"}).json()["data"]["items"]
if found:
person_id = found[0]["item"]["id"]
else:
person_id = http.post(f"{API}/api/v2/persons", headers=headers, json={
"name": name or email, "emails": [{"value": email, "primary": True}]}).json()["data"]["id"]
http.post(f"{API}/v1/activities", headers=headers, json={
"subject": f"Meeting with {name or email}", "type": "meeting", "person_id": person_id,
"due_date": start[:10], "due_time": start[11:16]})
notify.slack(f"New meeting booked: {name} <{email}> on {start[:10]} at {start[11:16]} UTC", channel="#sales")
return {"person": person_id}FAQ
Common questions
Which booking tools does this work with?
What if the person already exists in Pipedrive?
Does a cancelled booking remove the activity?
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
Celebrate 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 worksResearch 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 worksTurn 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.
See how it worksKeep exploring
Set up “Log booked meetings in Pipedrive and tell the team” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
