On a schedule
Collect daily standups by Mattermost DM
Everyone gets the standup questions privately each morning, and their answers are posted together in one place.
- Runs
- On a schedule
- Apps
- Mattermost
- AI
- Not needed
- Access
- bot/PAT that can DM users and post in channel
Send this to your assistant
Create a ClickRuntime automation: each weekday at 9am, DM everyone on our Mattermost 'engineering' team: what did you do yesterday, what's next, anything blocking? At 10am post all answers in the 'standup' channel.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Daily standups for a distributed team are hard to schedule. People work across time zones, some are in meetings at 9:30, and a fifteen-minute call turns into forty when one person goes into detail. Yet skipping the standup means a blocker sits unnoticed for two days, and a manager has no idea what the team is working on until the status meeting.
On the schedule you choose, ClickRuntime sends each team member a direct message in Mattermost with your standup questions. Their replies in that DM are collected from the time of the prompt and combined into a single report posted in the team channel, so everyone can read the updates in one place.
It suits engineering teams, support groups and remote companies that want the information of a standup without the meeting.
What you get out of it
Blockers surface the same morning
When a person writes that they are waiting on a review or an access request, everyone sees it in the combined post. A teammate can pick it up before the day is lost.
No meeting across time zones
Team members answer when they start work, whether that is in Berlin or in Bangalore. Nobody has to join a call at an awkward hour just to say what they did yesterday.
Answers are written, so they are searchable
Weeks later you can search the channel for a project name and find who said what. Spoken standups leave no record, and written ones are useful for retrospectives and handovers.
Managers read one post, not ten chats
Instead of chasing individual replies, a lead reads a single summary and sees at a glance who has not responded. That saves the time of nudging people one by one.
Quiet people are heard
In a live call, the person who talks last gets rushed. In a written format, everyone gets the same space, which gives introverted or newer team members an equal voice.
How it works
What happens, step by step
Each weekday at 9am ClickRuntime sends every member of your engineering channel a private Mattermost message with the standup questions: what they did yesterday, what's next and anything blocking.
People answer in that private chat whenever suits them.
Later that morning the automation collects each person's replies.
It posts one combined standup in your standup channel, with each person's answers under their name and "no answer" for anyone who didn't reply.
Before it runs live
- Connect Mattermost
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
- 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 Mattermost steps into one automation
Under the hood
The code that runs this automation
import time
from datetime import datetime
from clickruntime import on_trigger, credentials, http, state
BASE = "https://chat.acme.com/api/v4"
TEAM_ID, ENG_CHANNEL_ID, STANDUP_CHANNEL_ID = "teamid123", "engchannel123", "standupchannel123"
QUESTIONS = "Standup: what did you do yesterday, what's next, anything blocking?"
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.secret('MATTERMOST_TOKEN')}"}
me = http.get(f"{BASE}/users/me", headers=h).json()["id"]
if datetime.utcnow().hour < 10: # 9am run: send the questions
members = http.get(f"{BASE}/channels/{ENG_CHANNEL_ID}/members", params={"per_page": 200}, headers=h).json()
dms = {}
for m in members:
if m["user_id"] == me:
continue
dm = http.post(f"{BASE}/channels/direct", json=[me, m["user_id"]], headers=h).json()["id"]
http.post(f"{BASE}/posts", json={"channel_id": dm, "message": QUESTIONS}, headers=h)
dms[m["user_id"]] = dm
state.set("standup", {"asked_at": int(time.time() * 1000), "dms": dms})
return {"asked": len(dms)}
s = state.get("standup") or {"dms": {}}
report = []
for user_id, dm in s["dms"].items():
posts = http.get(f"{BASE}/channels/{dm}/posts", params={"since": s["asked_at"]}, headers=h).json()["posts"]
answers = [p["message"] for p in posts.values() if p["user_id"] == user_id]
name = http.get(f"{BASE}/users/{user_id}", headers=h).json()["username"]
report.append(f"**@{name}**\n" + ("\n".join(answers) or "_no answer_"))
http.post(f"{BASE}/posts", json={"channel_id": STANDUP_CHANNEL_ID, "message": "\n\n".join(report)}, headers=h)
return {"answered": len(report)}FAQ
Common questions
What happens if someone does not reply?
Can I change the standup questions?
Does the bot read other messages in the DM?
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
Get a morning summary of a Mattermost channel
One email each morning tells you what was discussed and decided in the channel yesterday.
See how it worksPost new orders and leads to a Mattermost channel
Events from your shop, forms or CRM appear as tidy posts in the channel your team watches.
See how it worksAdd a slash command that runs your automation
Typing a command in Mattermost does the job and posts the result in the channel for everyone.
See how it worksKeep exploring
Set up “Collect daily standups by Mattermost DM” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.