The moment it happens
Get told when a deal moves stage in your Attio list
Whenever an entry in my pipeline list changes stage, Slack tells me which deal moved and where to.
- Runs
- The moment it happens
- Apps
- Attio
- AI
- Not needed
- Access
- read lists/records
Send this to your assistant
Create a ClickRuntime automation: when an entry in my Attio 'Sales pipeline' list changes stage, post the record name and new stage to #pipeline in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A sales team using Attio keeps deals in a list with a Stage attribute: Lead, Qualified, Proposal, Negotiation, Won. A rep drags a deal into Proposal, and the founder, who owns pricing approvals, finds out a week later during a pipeline review. By then the customer has been waiting on a number, a discount was agreed informally, and the team has no record of who authorized it or when.
When an entry in your Attio list changes, Attio sends an event to ClickRuntime. ClickRuntime fetches the entry, reads its current Stage attribute and checks whether the stage is one you care about. If so, it posts a Slack message with the deal name, the new stage and a link back to the entry.
Founders and sales leaders who want to stay close to deals without reading a board can follow only the stages that matter.
What you get out of it
Approvals happen before promises are made
When the person who approves pricing sees a deal reach Proposal immediately, they can weigh in before a figure is promised. That prevents discounts nobody agreed to. A quick reply from the approver keeps the deal moving without detours.
Late stages receive a team response
A deal entering Negotiation can pull in legal or a solutions engineer the same day. Preparation starts when it is useful, not after the customer has already asked questions. Specialists join early rather than after problems appear.
Pipeline reviews start with fewer surprises
Because the channel recorded each movement, the Friday review is a conversation about decisions, not a reveal of what happened. Meetings are shorter and more useful. People discuss decisions, not facts they already know.
Wins are celebrated and lost deals get noticed
A message on a deal reaching Won gives the team a quick lift, while movement to Lost prompts a short debrief. Both feed learning that a static board hides. Both outcomes teach the team something about what works.
Every move leaves a timestamped record
If someone later asks when a deal reached Proposal, the channel history answers. You do not need to dig through Attio's activity log to reconstruct the order of events. The channel history answers it in seconds.
How it works
What happens, step by step
Each time an entry in your Attio pipeline list is updated, Attio tells ClickRuntime straight away.
It fetches the entry and checks whether the stage is what changed.
If it did, a message goes to #pipeline saying which deal moved and to which stage.
Before it runs live
- Connect Attio
- 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 Slack
- Combine it with other Attio steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify
API = "https://api.attio.com/v2"
LIST = "sales_pipeline"
@on_event
def handle(event):
headers = {"Authorization": f"Bearer {credentials.secret('ATTIO_API_KEY')}"}
posted = 0
for ev in (event.json or {}).get("events", []):
if ev.get("event_type") != "list-entry.updated" or ev.get("attribute_id") is None:
continue
entry = http.get(f"{API}/lists/{LIST}/entries/{ev['id']['entry_id']}", headers=headers).json()["data"]
stage = (entry["entry_values"].get("stage") or [{}])[0].get("status", {}).get("title")
if not stage:
continue
record = http.get(f"{API}/objects/{entry['parent_object']}/records/{entry['parent_record_id']}",
headers=headers).json()["data"]
name = (record["values"].get("name") or [{}])[0].get("value", "Unnamed")
notify.slack(f"*{name}* moved to *{stage}* in Sales pipeline", channel="#pipeline")
posted += 1
return {"posted": posted}FAQ
Common questions
Can I watch more than one list?
What if my stage attribute has a different name?
Will edits to other fields trigger a message?
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 Attio deals to Slack as they're created
The moment a deal is added in Attio, #deals gets its name, value and owner.
See how it worksEmail a Friday list of new Attio records
Each Friday afternoon I get an email of the companies and deals added to Attio that week, grouped by type.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Get told when a deal moves stage in your Attio list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
