Collects as they arrive, acts daily
Publish queued posts to Facebook and Instagram
You add images and captions whenever you like, and one goes out to your Page and Instagram at the same time each day.
- Runs
- Collects as they arrive, acts daily
- Apps
- Facebook Pages
- AI
- Not needed
- Access
- pages_manage_posts, instagram_content_publish
Send this to your assistant
Create a ClickRuntime automation: give me a link I can send an image URL and caption to. Keep them in order and publish the next one to my Facebook Page and Instagram every day at 6pm, then email me if anything fails.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Social media managers who batch a month of content on a Sunday still have to remember to publish it at the right times. Facebook's own scheduler works for single posts, but photo carousels and reels cause more trouble, and a queue kept in a spreadsheet needs someone to watch the clock. One missed slot breaks the rhythm of a campaign. A Page that goes quiet loses reach it spent months earning.
You add posts to a queue whenever you like, and ClickRuntime stores them as they arrive. Each day at the time you pick, it takes the next item and publishes it to Facebook or Instagram as a photo, carousel or reel, then emails a confirmation or the error if Facebook refused it.
It is practical for agencies and solo marketers who prepare content in bulk.
What you get out of it
Batch content once, publish all month
You prepare posts when you have time and the queue handles the rest. That separates creative work from the daily schedule and prevents the gaps that appear in busy weeks.
Support carousels and reels
Many scheduling tools handle plain photos best. A queue that also publishes multi-image carousels and reels keeps richer content in your calendar rather than needing a manual upload. Skipping them leaves the most engaging formats out.
Know right away when a post fails
If Facebook rejects an image or a token has expired, you get an error email at once. You can fix and republish that day, not after a week of silence.
Keep order without a spreadsheet
Items go out in the order they were added, so the sequence of a campaign is preserved. There is no sheet to sort or time zone to convert. The queue remembers it for you.
Post to both platforms from one queue
Choosing Facebook, Instagram or both per item avoids doing everything twice. A single entry creates the post wherever you want it to appear. That removes a whole category of duplicated effort every week.
How it works
What happens, step by step
Whenever you send an image and caption to your ClickRuntime link, it is added to the end of your posting queue.
At the same time each day the automation takes the next post in the queue.
It publishes it on your Facebook Page and your Instagram account, then removes it from the queue.
If publishing fails, you get an email with the caption and the error, and the post stays in the queue.
Before it runs live
- Connect Facebook Pages
- Paste your automation's link into the other app's webhook settings
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
- 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 Facebook Pages steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, on_trigger, credentials, http, state, notify
G = "https://graph.facebook.com/v21.0"
PAGE_ID = "104857600000000"
def page_token():
user = credentials.connection("facebook", "work")
return http.get(f"{G}/{PAGE_ID}", params={"fields": "access_token", "access_token": user}).json()["access_token"]
IG_USER_ID = "17841400000000000"
@on_event
def enqueue(event):
queue = state.get("queue") or []
queue.append({"image_url": event.json["image_url"], "caption": event.json.get("caption", "")})
state.set("queue", queue)
return {"queued": len(queue)}
@on_trigger
def publish(event):
queue = state.get("queue") or []
if not queue:
return {"published": False}
item = queue[0]
try:
token = page_token()
http.post(f"{G}/{PAGE_ID}/photos", data={"url": item["image_url"], "caption": item["caption"],
"access_token": token}).raise_for_status()
container = http.post(f"{G}/{IG_USER_ID}/media", data={"image_url": item["image_url"], "caption": item["caption"],
"access_token": token}).json()["id"]
http.post(f"{G}/{IG_USER_ID}/media_publish", data={"creation_id": container, "access_token": token}).raise_for_status()
except Exception as e:
notify.email_me("Scheduled post failed", f"{item['caption'][:80]}\n\n{e}")
raise
state.set("queue", queue[1:])
return {"published": True, "left": len(queue) - 1}FAQ
Common questions
Can I choose the time for each post?
What happens if the queue is empty?
How do I add items to the queue?
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
Report shop orders to Meta for better ad targeting
Every order is sent to your Meta pixel as a purchase, so your ads learn from real sales.
See how it worksGet new Page comments in one email
Every hour you get the new comments on your recent posts, each with a link to reply.
See how it worksKnow when your Page is tagged or reviewed
You hear about tags and new recommendations within the hour.
See how it worksKeep exploring
Set up “Publish queued posts to Facebook and Instagram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.