On a schedule
Turn your morning watch list into Asana tasks and a Slack summary
Anything on your watch list that needs action becomes an Asana task, and the team gets a short summary in Slack.
- Runs
- On a schedule
- Apps
- Asana, Slack
- AI
- Optional
- Access
- Asana write; chat:write
Send this to your assistant
Create a ClickRuntime automation: every morning, check my watch list for anything that needs action, create Asana tasks for those items, and post a summary in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing lead keeps an eye on a handful of signals every week: competitor launches on Hacker News, new mentions of the product, keywords the team cares about. Checking each source by hand is the first thing to slip when the week gets busy. When a competitor announces a feature, the team hears about it from a customer a fortnight later.
This automation checks the watch list every morning, turns anything new into an Asana task and posts a short summary in Slack, so the team reacts to signals while they are still news.
What you get out of it
Signals turn into owned work
A new mention or a competitor launch becomes an Asana task someone can pick up. It does not depend on a person reading a feed and remembering. Follow-up has an owner and a due date.
The whole team sees the same picture
The Slack summary tells everyone what came in that morning. Product, sales and marketing hear about a competitor launch at the same time. Fewer "did you see this?" messages.
Only new items, once
Each item is remembered after it is reported, so it never comes back the next day. The project and channel stay clean. Something only shows up when it is actually new.
Checks that never get skipped
The check runs every morning, including during launches, holidays and busy weeks. Your view of the market does not depend on who had time. Gaps in coverage disappear.
A history of what you watched
Tasks build into a log of competitor moves and mentions over time. That is useful for quarterly planning and positioning work. You can see trends instead of isolated news.
How it works
What happens, step by step
Every morning, ClickRuntime checks each item on your watch list for new results.
It remembers what it has already reported, so each item appears only once.
AI picks out the items that need someone to act, if you turned that on.
A task is created in your Asana project for each of those items.
A short summary of everything new is posted in your Slack channel.
Before it runs live
- Connect Asana
- 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
- Run it at a different time, more or less often, or only on weekdays
- 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 Asana and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify, ai, report_fetched
WATCH = ["Northwind Analytics", "Acme Metrics"]
PROJECT_ID = "your-asana-project-id"
@on_trigger
def run(event):
seen, new = state.get("seen") or [], []
for term in WATCH:
for h in http.get("https://hn.algolia.com/api/v1/search_by_date", params={"query": term, "tags": "story"}).json()["hits"]:
if h["objectID"] not in seen:
new.append((h["objectID"], term, h["title"], f"https://news.ycombinator.com/item?id={h['objectID']}"))
report_fetched(len(new))
if not new:
return {"new": 0}
for oid, term, title, url in new:
try:
act = "yes" in ai.generate(f"We track '{term}'. Does this need action from our team? yes or no.\n{title}", max_output_tokens=3).text.lower()
except ai.AIError:
act = True
if act:
http.post("https://app.asana.com/api/1.0/tasks", headers={"Authorization": f"Bearer {credentials.secret('ASANA_TOKEN')}"},
json={"data": {"name": f"{term}: {title}"[:200], "notes": url, "projects": [PROJECT_ID]}})
seen.append(oid)
notify.slack("Watch list today:\n" + "\n".join(f"- {t}: {title} {u}" for _, t, title, u in new), channel="#market")
state.set("seen", seen[-2000:])
return {"new": len(new)}FAQ
Common questions
What can go on the watch list?
Does every new item become a task?
Can it run weekly instead of daily?
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 a daily standup from Asana to Slack
Every weekday morning, your team channel shows what each person finished yesterday, what is due today and what is overdue.
See how it worksSet up an Asana project and Slack channel for each new client
When a new client comes in, they get an Asana project from your template and their own Slack channel, with links posted in #clients.
See how it worksScore leads, create Asana tasks and alert sales in Slack
Hot leads are scored on arrival, turned into Asana tasks and posted to your sales channel so someone picks them up straight away.
See how it worksKeep exploring
Set up “Turn your morning watch list into Asana tasks and a Slack summary” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.