# Instagram AI agent for Slack & Microsoft Teams

Viktor is an AI employee that connects to Instagram in one click via OAuth and helps you schedule social posts and track engagement, running 36 Instagram actions for you like Mark Seen, Send Image, and Get User Info. Ask in plain English in Slack or Microsoft Teams; Viktor does the work in Instagram and reports back. Setup takes about two minutes.

- Tool: Instagram
- Category: Marketing
- Connection: One-click OAuth
- Actions available: 36
- Works from: Slack and Microsoft Teams
- Page: https://viktor.com/integrations/instagram

## What can you ask Viktor to do in Instagram?

- "Schedule next week's posts in Instagram from this content calendar."
- "Pull last week's engagement stats from Instagram and post a summary every Monday."
- "Find our best-performing post in Instagram this month and suggest three follow-ups."
- "Watch Instagram for a spike in mentions and alert me with the context."

## What can Viktor do in Instagram? (36 actions)

- **Create Carousel Container** - Create a draft carousel post with multiple images/videos before publishing. Instagram requires carousels to have between 2 and 10 media items. Container creationids expire in under 24 hours, so publish promptly after creation.
- **Create Media Container (Deprecated)** - DEPRECATED: Use INSTAGRAMPOSTIGUSERMEDIA instead. Creates a draft media container for photos/videos/reels before publishing. Business/Creator accounts only — personal accounts unsupported. Returns a container ID (data.id or data.creationid) used as creationid for publishing. Containers expire in ~24 hours — recreate stale containers rather than reusing old IDs. Before publishing via INSTAGRAMCREATEPOST, call INSTAGRAMGETPOSTSTATUS and wait for FINISHED status — publishing before FINISHED triggers error 9007. Each creationid is one-time-use; if container creation fails (statuscode='ERROR'), fix media params and recreate via this tool rather than retrying publish with the failed ID.
- **Create Post (Deprecated)** - DEPRECATED: Use INSTAGRAMPOSTIGUSERMEDIAPUBLISH instead. Publish a draft media container to Instagram (final publishing step). Posts become immediately and publicly visible upon success — confirm intent before calling. Requires Business or Creator account with publish scopes; missing scopes return Graph error code 10. After creating a media container, Instagram may need time to process media before publishing. If called too early, error code 9007 is returned. This action automatically retries with exponential backoff (up to ~44 seconds total). For large videos, use INSTAGRAMGETPOSTSTATUS to poll until statuscode='FINISHED' before calling; for carousels, all child containers must individually reach FINISHED status first. No native scheduling support — use an external scheduler to trigger this call at the desired time.
- **Delete Comment** - Tool to delete a comment on Instagram media. Use when you need to remove a comment that was created by your Instagram Business or Creator Account. Note: You can only delete comments that your account created - you cannot delete other users' comments unless they are on your own media.
- **Delete Messenger Profile** - Delete ice breakers or a persistent menu from an Instagram messenger profile.
- **Get Conversation** - Get details about a specific Instagram DM conversation (participants, etc). Requires a Business or Creator account with Instagram messaging permissions; personal accounts will return permission errors. Newly sent/received messages may take a few seconds to appear in results.
- **Get IG Comment Replies** - Get replies to a specific Instagram comment. Returns a list of comment replies with details like text, username, timestamp, and like count. Use when you need to retrieve child comments (replies) for a specific parent comment.
- **Get Instagram Media** - Get a published Instagram Media object (photo, video, story, reel, or carousel). Use when you need to retrieve detailed information about a specific Instagram post including engagement metrics, caption, media URLs, and metadata. NOTE: This action is for published media only. For unpublished container IDs (from INSTAGRAMCREATEMEDIACONTAINER), use INSTAGRAMGETPOSTSTATUS to check status instead.
- **Get IG Media Children** - Tool to get media objects (images/videos) that are children of an Instagram carousel/album post. Use when you need to retrieve individual media items from a carousel album post. Note: Carousel children media do not support insights queries - for analytics, query metrics at the parent carousel level.
- **Get IG Media Comments** - Tool to retrieve comments on an Instagram media object. Use when you need to fetch comments from a specific Instagram post, photo, video, or carousel owned by the connected Business/Creator account. Supports cursor-based pagination for navigating through large comment lists. An empty data array in the response indicates the post has no comments and is not an error. Bulk-fetching across many media objects may trigger API rate limits.
- **Get IG Media Insights** - Tool to get insights and metrics for Instagram media objects (photos, videos, reels, carousel albums). Use when you need to retrieve performance data such as views, reach, likes, comments, saves, and shares for specific media. Note: Insights data is only available for media published within the last 2 years, and the account must have at least 1,000 followers. Requires a Business or Creator account; personal Instagram profiles are not supported.
- **Get IG User Content Publishing Limit** - Get an Instagram Business Account's current content publishing usage. Use this to monitor quota usage before publishing; exceeding the daily cap blocks new posts until the quota resets (no partial failure — new publish calls are rejected until reset). IMPORTANT: This endpoint requires an IG User ID (Instagram Business Account ID), NOT an IGSID (Instagram Scoped ID). IGSID is only used for messaging-related endpoints. Content publishing endpoints require a proper IG User ID. Excessive polling of this endpoint may trigger Graph error 613 (rate limit); space calls several seconds apart.
- **Get IG User Live Media** - Get live media objects during an active Instagram broadcast. Returns the live video media ID and metadata when a live broadcast is in progress on an Instagram Business or Creator account. Use this to monitor active live streams and access real-time engagement data.
- **Get IG User Media** - Get Instagram user's media collection (posts, photos, videos, reels, carousels). Use when you need to retrieve all media published by an Instagram Business or Creator account with support for pagination and time-based filtering.
- **Get IG User Stories** - Get active story media objects for an Instagram Business or Creator account. Stories are retrieved via the /stories endpoint. Returns stories that are currently active within the 24-hour window. Use this to retrieve story content, metadata, and engagement metrics for monitoring or analytics purposes.
- **Get IG User Tags (Deprecated)** - Deprecated because the Instagram API with Instagram Login does not support tagging. Use a Facebook Login-based Instagram integration for tagged media.
- **Get Messenger Profile** - Get the messenger profile settings for an Instagram account. Returns ice breakers and other messaging configuration. Use when you need to retrieve messaging settings, ice breaker questions, or messenger configuration for an Instagram Business account.
- **Get Page Conversations** - Get Instagram conversations for a Page connected to an Instagram Business account. Use platform=instagram parameter to filter for Instagram conversations only.
- **Get Post Comments (Deprecated)** - DEPRECATED: Use INSTAGRAMGETIGMEDIACOMMENTS instead. Get comments on an Instagram post. Requires Instagram Business or Creator account. Returns empty data array (not an error) when no comments exist. Response data is nested under data.data; unwrap before processing. Timestamps are timezone-aware ISO 8601 strings; use UTC-based comparison.
- **Get Post Insights (Deprecated)** - DEPRECATED: Use INSTAGRAMGETIGMEDIAINSIGHTS instead. Get Instagram post insights/analytics (impressions, reach, engagement, etc.). Requires a Business or Creator account; personal accounts cannot access insights. Metrics may be unavailable for several minutes after publishing; verify post status is FINISHED before calling.
- **Get Post Status (Deprecated)** - DEPRECATED: Use GetIgMedia instead. Check the processing status of a draft post container. Poll until statuscode='FINISHED' before calling INSTAGRAMCREATEPOST; publishing early triggers OAuthException 9007 (HTTP 400). If statuscode='ERROR' or remains non-terminal after ~30 attempts, the container is permanently failed — recreate a new container. Poll every 3–5s with exponential backoff to avoid error 613/code 4/HTTP 429. For carousels, all child containers must reach FINISHED before publishing the parent.
- **Get User Info** - Get Instagram Business Account info including profile details and statistics. Use "me" to query your own authenticated account, or provide the numeric Business Account ID of an account you manage. NOTE: followerscount and followscount are returned for your own profile (iguserid="me"). For other accounts, follower/follow counts are surfaced through the businessdiscovery edge rather than this direct-node action, so they may be null here.
- **Get User Insights** - Get Instagram account-level insights and analytics (profile views, reach, follower count, etc.). Requires a Business or Creator account; personal accounts are not supported. Returned timestamps are in UTC. metrictype (timeseries or totalvalue): When set to totalvalue, the API returns a totalvalue object instead of values. breakdown: Only applicable when metrictype=totalvalue and only for supported metrics. timeframe: Required for demographics-related metrics and overrides since/until for those metrics.
- **Get User Media (Deprecated)** - DEPRECATED: Use INSTAGRAMGETIGUSERMEDIA instead. Get Instagram user's media (posts, photos, videos). Only works for connected Business or Creator accounts; personal accounts return no data. Response data is nested under data.data; unwrap before processing. Items mix images, videos, carousels, and reels — filter by mediatype and mediaproducttype. Use mediaurl for file download, permalink for share links. Fields like caption, likecount may be null. Timestamps are UTC ISO 8601. HTTP 429 with Retry-After header indicates rate limiting.
- **List All Conversations** - List all Instagram DM conversations for the authenticated user. Requires a Business/Creator account with messaging permissions; personal accounts return empty results. Response conversations are nested under data.data — accessing top-level data as the final list returns zero items. An empty data list is a valid non-error outcome meaning no conversations exist in scope.
- **List All Messages** - List all messages from a specific Instagram DM conversation. Requires a Business or Creator account with messaging permissions; personal accounts return empty results. Response data is nested under data.data (double-wrapped); attachment-only messages may have empty text fields.
- **Mark Seen** - Mark Instagram DM messages as read/seen for a specific user. Sends a 'markseen' sender action to indicate messages from the specified recipient have been read. Marking as seen is visible to the other party and changes inbox read state — use with explicit user approval in automated or bulk flows. IMPORTANT LIMITATIONS: - The senderaction API feature may have limited support on Instagram - The recipient must have an active 24-hour messaging window open - Requires instagrammanagemessages permission - Only works with Instagram Business or Creator accounts If this action fails with a 500 error, it may indicate that the senderaction feature is not supported for your Instagram account or the specific recipient.
- **Post IG Comment Replies** - Tool to create a reply to an Instagram comment. Use when you need to reply to a specific comment on an Instagram post owned by a Business or Creator account. The reply must be 300 characters or less, contain at most 4 hashtags and 1 URL, and cannot consist entirely of capital letters.
- **Post IG Media Comments** - Tool to create a comment on an Instagram media object. Use when you need to post a comment on a specific Instagram post, photo, video, or carousel. The comment must be 300 characters or less, contain at most 4 hashtags and 1 URL, and cannot consist entirely of capital letters.
- **Post IG User Media** - Tool to create a media container for Instagram posts. Use this to create a container for images, videos, Reels, or carousels. This is the first step in Instagram's two-step publishing process - after creating the container, use the mediapublish endpoint to publish it.
- **Publish IG User Media** - Tool to publish a media container to an Instagram Business account. This action automatically waits for the container to finish processing before publishing. Instagram enforces an account-specific content-publishing rate limit over a 24-hour moving window; the exact cap varies by account and should be read live via INSTAGRAMGETIGUSERCONTENTPUBLISHINGLIMIT before bulk publishing. The publishing process: 1. First, create a media container using INSTAGRAMCREATEMEDIACONTAINER 2. Call this action with the creationid - it will automatically poll for FINISHED status 3. Once ready, the media is published and the published media ID is returned For videos/reels, processing may take 30-120 seconds. Images are typically instant.
- **Reply to IG User Mentions** - Tool to reply to a mention of your Instagram Business or Creator account. Use when you need to respond to comments or media captions where your account has been @mentioned by another Instagram user. This creates a comment on the media or comment containing the mention.
- **Reply To Comment (Deprecated)** - DEPRECATED: Use INSTAGRAMPOSTIGCOMMENTREPLIES instead. Reply to a comment on Instagram media. Only usable on comments belonging to media owned by the authenticated account. Creates a public, irreversible reply; invoke only with explicit user confirmation, not for bulk or speculative use.
- **Send Image** - Send an image via Instagram DM to a specific user. Each send modifies inbox state; avoid bulk or automated sends without explicit user approval.
- **Send Text Message** - Send a text message to an Instagram user via DM in an existing conversation. Cannot initiate new DM threads — a prior conversation must exist. Requires an Instagram Business or Creator account with messaging permissions. Fails with errorsubcode 2534022 if outside the messaging window; do not retry these failures.
- **Update Messenger Profile** - Tool to update the messenger profile settings for an Instagram account. Use when you need to configure ice breakers and messaging options. Ice breakers are suggested questions that help users start conversations with your Instagram Business account.

## How does Viktor work with Instagram?

1. Add Viktor to Slack or Microsoft Teams.
2. Connect Instagram with one-click OAuth - Viktor handles authentication.
3. Ask in plain English. Viktor runs the Instagram actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What is a Instagram AI agent?

A Instagram AI agent is an AI that connects to your Instagram account and completes work in it - it doesn't just answer questions about Instagram, it takes the actions. Viktor is that agent: an AI employee that works in Instagram on your behalf and delivers the finished result in Slack or Microsoft Teams.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Instagram actions, chains them with the other 3,200+ tools it connects to, and asks for approval before anything sensitive runs.

### About Instagram

Instagram is a social media platform for sharing photos, videos, and stories. Only supports Instagram Business and Creator accounts, not Instagram Personal accounts.

## Security and permissions

- One-click OAuth - Viktor never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive Instagram actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

## FAQ

### Does Viktor integrate with Instagram?

Yes. Instagram is one of the 3,200+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in Instagram from Slack or Microsoft Teams - no workflow builder, no code.

### How do I connect Instagram to Viktor?

Ask Viktor in Slack or Microsoft Teams to connect Instagram, then approve the one-click OAuth prompt. Viktor never sees your password, handles authentication itself, and starts working right away. Setup takes about two minutes, and you can revoke access at any time.

### What can Viktor do in Instagram?

Viktor can run 36 Instagram actions, including Mark Seen, Send Image, and Get User Info - and chain them with other tools in a single request. In practice that means Viktor helps you schedule social posts and track engagement. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows to automate Instagram?

No. Viktor isn't a workflow builder - there are no triggers to map and no workflows to maintain. You ask for the outcome in plain English in Slack or Microsoft Teams, and Viktor decides which Instagram actions to take, runs them, and reports back.

### Is my Instagram data secure with Viktor?

Yes. Viktor connects to Instagram in one click via OAuth, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the Instagram integration cost?

Nothing extra - every integration, including Instagram, is available on every plan. You can start free with up to $100 in credits, no credit card required; paid plans start at $50/month.

### Can Viktor use Instagram together with my other tools?

Yes - that's the point. Viktor connects to 3,200+ tools and works across them in a single run: it can pull data from Instagram, cross-reference it with another tool - for example Slack or Gmail, and deliver the finished result in Slack or Microsoft Teams.

## Viktor uses Instagram together with

- [Slack](https://viktor.com/integrations/slack)
- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Notion](https://viktor.com/integrations/notion)
- [Salesforce](https://viktor.com/integrations/salesforce)

## More Marketing integrations

- [Meta Ads](https://viktor.com/integrations/meta-ads)
- [Google Ads](https://viktor.com/integrations/google-ads)
- [YouTube](https://viktor.com/integrations/youtube)
- [Customer.io](https://viktor.com/integrations/customer-io)
- [Zendesk](https://viktor.com/integrations/zendesk)
- [Mailchimp](https://viktor.com/integrations/mailchimp)
- [Add to Calendar PRO](https://viktor.com/integrations/add-to-calendar-pro)
- [LinkedIn](https://viktor.com/integrations/linkedin)

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 3,200+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
