Skip to content

Weekly

Approve each LinkedIn draft before it posts

Every Monday a draft arrives in your inbox, and it's only published if you click approve.

Runs
Weekly
Apps
LinkedIn
AI
Yes, uses the built-in AI allowance
Access
w_member_social

Send this to your assistant

Create a ClickRuntime automation: every Monday at 9am, draft a LinkedIn post from the next topic on my list, email it to me with an approve link, and publish it only when I click it.

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

Many people want a regular LinkedIn presence but dread both extremes: writing every post from scratch takes an hour they do not have, and letting software post unreviewed is a reputation risk. One wrong claim or an awkward tone under your own name can cost more than a month of silence. Consultants, founders and recruiters who care about how they sound need a draft they can control.

Every week, ClickRuntime's built-in AI writes a LinkedIn post draft and saves it. You receive an email containing the draft and an approve link. Nothing is published until you click it; when you do, ClickRuntime publishes the post to your profile. If you ignore the email, the draft is simply never posted.

It suits professionals who want consistency without surrendering the final say.

What you get out of it

  • Nothing goes live without your say

    The approve link is the only way the post is published. That removes the fear that an off-brand or inaccurate post will appear on your profile while you are on a plane or in a meeting.

  • A blank page is never the problem

    Getting a decent draft in your inbox each week removes the hardest step. Editing a paragraph is far easier than starting one, and you can approve a good draft in under a minute.

  • Consistency builds your audience

    LinkedIn rewards regular posting, and most people drop off after a few weeks. A weekly draft that arrives on its own keeps the habit going through busy periods. That habit is hard to keep alive when you rely on willpower.

  • You keep your voice

    Because you review before approving, you can reject or ask for a change if a draft does not sound like you. That keeps the posts honest, which matters when your name and employer are attached.

  • Mistakes are caught before the public sees them

    An invented statistic or a clumsy phrase is easy to spot in a quiet email and expensive to retract once published. The review step is cheap insurance for your reputation.

How it works

What happens, step by step

  1. Once a week, AI writes a LinkedIn post draft on one of your topics.

  2. The draft is saved and emailed to you with a Publish button.

  3. Nothing is posted until you click that button.

  4. When you click it, the draft is published on your LinkedIn profile exactly as you read it.

Before it runs live

  • Connect LinkedIn

What you get

RunsWeekly
Approve each LinkedIn draft before it poststoday, 9:00Succeeded
Email · Approve LinkedIn draftApprove LinkedIn draft: Lessons from our pricing change "We raised prices 12% last spring. Here is what churned and what didn't..." Publish it →

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

  • 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 Slack
  • Combine it with other LinkedIn 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.
ai_draft_with_email_approval.pyexample
import secrets
from clickruntime import on_trigger, on_event, state, notify, http, credentials, ai

APPROVE_LINK = "https://hooks.clickruntime.com/t/your-trigger-link"  # this automation's trigger link

@on_trigger
def draft(event):
    topics = state.get("topics") or ["Lessons from our pricing change"]
    text = ai.generate(f"Write a LinkedIn post of about 150 words about: {topics[0]}", max_output_tokens=400).text.strip()
    code = secrets.token_urlsafe(16)
    state.set("pending", {"code": code, "text": text})
    state.set("topics", topics[1:])
    notify.email_me(f"Approve LinkedIn draft: {topics[0]}", f"{text}\n\nPublish it: {APPROVE_LINK}?code={code}")
    return {"drafted": topics[0]}

@on_event
def approve(event):
    pending = state.get("pending")
    if not pending or pending["code"] not in (event.body or "") + str(event.json or ""):
        return {"published": False}
    token = credentials.connection("linkedin", "main")
    headers = {"Authorization": f"Bearer {token}", "LinkedIn-Version": "202405", "X-Restli-Protocol-Version": "2.0.0"}
    me = http.get("https://api.linkedin.com/v2/userinfo", headers=headers).json()["sub"]
    http.post("https://api.linkedin.com/rest/posts", headers=headers, json={
        "author": f"urn:li:person:{me}", "commentary": pending["text"], "visibility": "PUBLIC",
        "distribution": {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []},
        "lifecycleState": "PUBLISHED",
    }).raise_for_status()
    state.delete("pending")
    return {"published": True}

FAQ

Common questions

What happens if I do not click approve?
The draft stays unpublished. It is stored, but nothing is posted to LinkedIn, and next week a new draft arrives. There is no automatic fallback that publishes after a delay, so skipping a week is simply that.
Can I edit the draft before it is posted?
The approve link publishes the draft as written. If you want to change it, ask your assistant for a revised draft, or tell the automation what to adjust, and a new email will arrive. A version where you paste your own edited text is possible too.
Is the approve link safe to forward?
Treat it like a password, because anyone with the link can publish the draft. It is unique to each draft and works once. Do not forward the email to people you would not trust to post on your behalf.
What permissions does it need?
w_member_social. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (weekly). Checks that find nothing to do 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 “Approve each LinkedIn draft before it posts” from your assistant

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