Skip to content

Every 5 minutes

Welcome new members when they join a Slack channel

Every 5 minutes, people who joined a Slack channel since the last check get a welcome message in that channel that mentions them and links the pinned guide.

Runs
Every 5 minutes
Apps
Slack
AI
Not needed
Access
channels:read, groups:read, users:read, chat:write

Send this to your assistant

Create a ClickRuntime automation: every 5 minutes, check who joined #customers-beta and post a welcome in the channel mentioning them, with a link to our beta guide and who to ask for help.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Community and customer channels in Slack get new people every week, and the first thing they need is the same: where to start, what the channel is for and who to ask. Slack's own channel join message is a grey line nobody reads.

This automation checks the channel's member list every 5 minutes, works out who joined since the last check, skips bots and deactivated accounts, and posts a welcome in the channel that mentions each new person by name with the links and contacts you set.

Teams running customer beta channels, shared channels with partners and internal onboarding channels use it so nobody joins to silence.

What you get out of it

  • Mentions, not a grey line

    New members get a real notification with their name in it.

  • Your links, your words

    The message carries the guide, rules or contacts you choose, and you can change them any time.

  • Grouped welcomes

    Several people joining in the same window are welcomed in one message.

  • No bots welcomed

    Integrations and bot users added to the channel are skipped.

  • Polling only

    It reads the member list with standard scopes and needs no event subscription on your Slack app.

How it works

What happens, step by step

  1. Every 5 minutes the automation reads the member list of the channel.

  2. It compares it with the list from the previous run to find people who joined.

  3. It looks up each new member to skip bots and deactivated accounts.

  4. One welcome message mentions everyone new and gives them the links and contacts you set.

Before it runs live

  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsEvery 5 minutes
Welcome new members when they join a Slack channeltoday, 9:00Succeeded
#customers-beta · SlackWelcome @Maria Lopez and @Tae Park 👋 Start with the beta guide: https://acme.com/beta-guide Post bugs here with a screenshot; @Kim Chen answers within a day.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Slack steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
welcome_new_members_when_they_join_a_slack_channel.pyexample
from clickruntime import on_trigger, credentials, http, state, notify

CHANNEL_ID = "C0123BETA"
CHANNEL = "#customers-beta"
WELCOME = ("Start with the beta guide: https://acme.com/beta-guide\n"
           "Post bugs here with a screenshot; <@U0KIMCHEN> answers within a day.")

def slack(method, **params):
    resp = http.get(f"https://slack.com/api/{method}", params=params,
                    headers={"Authorization": f"Bearer {credentials.connection('slack', 'work')}"})
    data = resp.json()
    if not data.get("ok"):
        raise RuntimeError(data.get("error"))
    return data

@on_trigger
def run(event):
    members, cursor = [], None
    while True:
        page = slack("conversations.members", channel=CHANNEL_ID, limit=1000, **({"cursor": cursor} if cursor else {}))
        members += page["members"]
        cursor = page.get("response_metadata", {}).get("next_cursor")
        if not cursor:
            break
    prev = state.get("members")
    state.set("members", members)
    if prev is None:
        return {"baseline": len(members)}
    joined = [m for m in members if m not in set(prev)]
    people = []
    for uid in joined:
        u = slack("users.info", user=uid)["user"]
        if not u.get("is_bot") and not u.get("deleted"):
            people.append(f"<@{uid}>")
    if people:
        notify.slack(f"Welcome {' and '.join([', '.join(people[:-1]), people[-1]] if len(people) > 1 else people)} 👋\n{WELCOME}", channel=CHANNEL)
    return {"joined": len(people)}

FAQ

Common questions

Which Slack scopes does it need?
channels:read to read the member list of a public channel (groups:read for a private one) and users:read to skip bots. Posting uses chat:write, and your Slack app must be invited to the channel.
Will someone who leaves and rejoins be welcomed again?
Yes, because they are new compared with the previous list. If that matters, ask your assistant to keep a list of everyone ever welcomed instead.
Can it send the welcome privately?
Yes. Post to each new member's user ID instead of the channel and your Slack app sends them a direct message.
What permissions does it need?
channels:read, groups:read, users:read, chat:write. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Welcome new members when they join a Slack channel” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.