Skip to content

Every 15 minutes

Share each published Buffer post in Slack

Every post Buffer publishes shows up in our marketing channel with its text and link.

Runs
Every 15 minutes
Apps
Buffer
AI
Not needed
Access
API key

Send this to your assistant

Create a ClickRuntime automation: every 15 minutes, check Buffer for newly published posts and share each one's text, channel and link in #marketing on Slack.

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

When a team shares a Buffer account, nobody knows for sure what has gone out. A scheduled post may have been edited at the last minute, a colleague may have published something extra, or a post may have failed to go. Account managers and community managers end up scrolling through the social profiles to check, and a customer who replies to a post the community team has not seen gets a late answer.

Every 15 minutes, ClickRuntime asks Buffer for posts sent since the last check and posts the text and link of each to Slack. It then saves a checkpoint so only new posts are announced next time. The channel becomes a running list of exactly what the brand has published, in order.

Social, support and leadership teams who want to see publishing activity without a Buffer login are the usual readers.

What you get out of it

  • Community managers can respond quickly

    Seeing a post appear in Slack means the person monitoring replies knows what has just gone live. They can prepare for questions or comments right away. They know what has just gone live and can prepare for the comments to follow.

  • Support knows what customers have seen

    When a customer mentions an offer or announcement, support can find the post in the channel at once. They answer accurately, without hunting across social profiles. Support can find the post in the channel at once and answer accurately, instead of hunting across several social profiles while a customer waits for a reply.

  • Executives stay informed

    Leaders can see what the company is saying publicly without logging in or asking for a report. Surprises, such as an off-brand post, are noticed and corrected early. Leaders see what the company is saying publicly without logging in or asking for a report, and an off-brand or mistaken post is noticed and corrected early.

  • Approval mistakes are caught faster

    If the wrong post, or the wrong version, goes out, the team sees it within about fifteen minutes. A quick edit or deletion reduces the time it stays visible. A quick edit or deletion shortens the time a wrong post stays visible, which limits the damage to the brand and the number of screenshots taken.

  • A running archive of published content

    The channel history is a searchable record of what was posted and when. Looking up last month's campaign copy takes a search, not an export. Looking up last month's campaign copy becomes a quick search, not an export, a login or a message to a colleague who might not remember.

How it works

What happens, step by step

  1. Every 15 minutes, ClickRuntime checks Buffer for the latest published posts.

  2. It keeps only posts published since its last check, so each one is shared once.

  3. Each post goes to #marketing in Slack with the channel it went out on, the post text and a link to it.

Before it runs live

  • Connect Buffer

What you get

RunsEvery 15 minutes
Share each published Buffer post in Slacktoday, 9:00Succeeded
Slack · #marketingPublished on Northwind (linkedin): We just opened our new Austin office! https://www.linkedin.com/feed/update/urn:li:activity:7

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 Slack
  • Combine it with other Buffer 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.
sent_post_log_to_slack.pyexample
from clickruntime import on_trigger, credentials, notify, http, state, report_fetched

ORG_ID = "your-organization-id"

def buffer(query, variables=None):
    resp = http.post("https://api.buffer.com", json={"query": query, "variables": variables or {}},
                     headers={"Authorization": f"Bearer {credentials.secret('BUFFER_API_KEY')}"})
    resp.raise_for_status()
    return resp.json()["data"]

@on_trigger
def run(event):
    edges = buffer("query($org: OrganizationId!) { posts(input: {organizationId: $org, filter: {status: [sent]}}, "
                   "first: 20) { edges { node { id text sentAt externalLink channel { name service } } } } }",
                   {"org": ORG_ID})["posts"]["edges"]
    since = state.get("last_sent_at") or ""
    new = sorted((e["node"] for e in edges if e["node"]["sentAt"] > since), key=lambda p: p["sentAt"])
    report_fetched(len(new))
    if not new:
        return {"posted": 0}
    for p in new:
        notify.slack(f"Published on {p['channel']['name']} ({p['channel']['service']}):\n{p['text'][:280]}\n"
                     f"{p.get('externalLink') or ''}", channel="#marketing")
    state.set("last_sent_at", new[-1]["sentAt"])
    return {"posted": len(new)}

FAQ

Common questions

Does it include posts that failed to publish?
It reports posts Buffer marks as sent. A post that failed to publish would not be in the sent list, so it would not appear. A separate check for errors could be added if you want to be told about failures too.
Why is there a delay of up to 15 minutes?
The workflow checks Buffer on a schedule rather than being notified when a post goes out. A post appears at the next check after it is sent. A shorter interval is possible, subject to how often you want Buffer to be queried.
Does it post from every channel in the account?
By default it covers the channels you choose. If your Buffer organization has many profiles, you can restrict the log to certain ones, such as only the brand profile. Tell your AI assistant the channels and approve the change.
What permissions does it need?
API key. 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 “Share each published Buffer post in Slack” from your assistant

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