Monthly
Back up your Instagram posts each month
On the 1st you get a CSV of every post with caption, date, likes and link.
- Runs
- Monthly
- Apps
- AI
- Not needed
- Access
- instagram_business_basic
Send this to your assistant
Create a ClickRuntime automation: on the 1st of every month, email me a CSV of all my Instagram posts with caption, date, likes, comments and link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Years of Instagram posts, with captions, hashtags and the thoughtful replies behind them, are the working archive of a small business. If the account is hacked, locked, or suspended by mistake, that history can disappear overnight, and the business is left with a photo folder and no idea which caption went with which post or what the links were. Instagram's own data download is manual and easy to forget.
Once a month, ClickRuntime pages through every post on your account, builds a spreadsheet-style CSV with captions, post dates, media types and permalinks, and emails it to you. You end up with a dated backup that sits in your inbox, independent of Instagram.
It suits businesses, agencies and creators who treat their feed as an asset and want a record they control.
What you get out of it
Protection against account loss
Accounts do get hacked or restricted. A monthly export means the loss of access costs you the reach, not also years of written content that took effort to create. A fresh monthly copy also means you are never more than thirty days behind if you ever need to rebuild.
Captions can be reused
Good captions are marketing copy. With a searchable file of everything you have posted, you can find what worked, reuse it in newsletters and ads, and avoid repeating the same text.
Content audits get quicker
Reviewing a year of posts by type and date is awkward in the app. In a spreadsheet you can sort and count posts by month, spot long gaps and see which formats you published most.
Handover to a new manager is simple
When an agency changes or a social media manager leaves, a complete list of past posts with links gives the next person context. They learn what the account has already done.
Evidence of what was published and when
Disputes over a promotion, sponsored post terms or a claim in a caption can hinge on exact wording and date. A dated export stands as a record that does not depend on the platform.
How it works
What happens, step by step
On the first of every month, ClickRuntime goes through every post on your Instagram account.
For each post it records the date, caption, number of likes and comments, and the link.
It turns the list into a spreadsheet file (CSV).
The file is emailed to you, with the total number of posts in the subject line.
Before it runs live
- Connect Instagram
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 Instagram steps into one automation
Under the hood
The code that runs this automation
import csv, io
from clickruntime import on_trigger, notify, http, credentials
GRAPH = "https://graph.facebook.com/v21.0"
IG_ID = "17841400000000000" # your Instagram business account id
@on_trigger
def run(event):
token = credentials.connection("instagram", "main")
url = f"{GRAPH}/{IG_ID}/media"
params = {"fields": "caption,timestamp,like_count,comments_count,permalink", "limit": 100, "access_token": token}
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow(["date", "caption", "likes", "comments", "link"])
count = 0
while url:
page = http.get(url, params=params).json()
for p in page["data"]:
writer.writerow([p["timestamp"][:10], p.get("caption", ""), p.get("like_count", 0), p.get("comments_count", 0), p["permalink"]])
count += 1
url, params = page.get("paging", {}).get("next"), None
notify.email_me(f"Instagram backup: {count} posts", buf.getvalue())
return {"posts": count}FAQ
Common questions
Does the export include the images and videos themselves?
How long does it take for a large account?
Will it include Stories and Reels?
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 weekly Instagram performance email
Every Monday you see last week's reach, follower change and best three posts.
See how it worksGet yesterday's Instagram numbers each morning
Each morning you see yesterday's reach, profile views and new followers.
See how it worksPublish queued Instagram posts on weekdays
One post from your queue goes out every weekday evening, and you get its link.
See how it worksKeep exploring
Set up “Back up your Instagram posts each month” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.