Post to social media from Microsoft Power Automate

To post to social media from Microsoft Power Automate, add an HTTP action to your cloud flow that sends a POST to https://postwire.io/api/post with your PostWire API key in the Authorization header and a JSON body listing the networks. One action publishes to TikTok, Instagram, YouTube, LinkedIn, Facebook Pages, Bluesky, Mastodon, Telegram, Discord and X (paid plans), with a separate caption per network if you want one; send it to /api/schedule with run_at and it goes out later. The trigger can be anything a flow starts from: a new SharePoint list item, a row in an Excel table, a Teams message, a form response or a Recurrence schedule.

Power Automate is where a Microsoft 365 team already keeps its content: the calendar in a SharePoint list, the approved copy in Excel, the sign-off in Teams. On Oct 26, 2026 its connector index listed X, LinkedIn V2 and YouTube connectors, no TikTok connector, and for Instagram one independent-publisher connector, Instagram Basic Display. An HTTP action to a posting API covers every network from the same flow.

Updated . Written from PostWire's own code; vendor prices read on Oct 26, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.

Post from Power Automate to social media, step by step

About fifteen minutes. PostWire's REST API is on its free plan: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card. On Power Automate's side, Microsoft's licensing FAQ says free and Microsoft 365 plans "can only access standard connectors"; if the designer marks the HTTP action Premium in your tenant, it needs Power Automate Premium ($15.00 per user a month, paid yearly, on Microsoft's pricing page on Oct 26, 2026).

  1. Create a free PostWire account and connect your networks

    Open the dashboard and sign in with your email: a 6-digit code, no password, no card. Connect the accounts the flow should post to (Instagram, TikTok, YouTube, LinkedIn, Facebook Pages, Bluesky and the rest), each with the network's own sign-in.

  2. Create an API key

    Under API & MCP press Create key and copy it (it starts with pw_live_). The flow sends it in a header, never in the URL.

  3. Start the flow from your content

    Create an automated cloud flow and pick the trigger that should cause a post. The example below uses SharePoint's When an item is created on a list with the columns Caption, ImageUrl and PostAt. For a fixed rhythm, pick a scheduled cloud flow instead: Microsoft's own example is the Recurrence trigger with Interval 1 and Frequency Week for once a week.

  4. Add the HTTP action

    Add HTTP as the next step and fill its fields: Method POST · URI https://postwire.io/api/schedule · Headers two rows, one with your key · Body the JSON below.

    Method:  POST
    URI:     https://postwire.io/api/schedule
    Headers: Authorization   Bearer YOUR_POSTWIRE_API_KEY
             Content-Type    application/json
    Body:
    {
      "platforms": ["instagram", "linkedin", "facebook"],
      "text": "CAPTION",
      "photo_url": "IMAGE_URL",
      "run_at": "POST_AT"
    }
  5. Swap the capitals for dynamic content

    Place the cursor on CAPTION, IMAGE_URL and POST_AT in turn and pick the list's Caption, ImageUrl and PostAt from the dynamic content panel. run_at takes an ISO 8601 time up to 365 days ahead, or "next_slot" for the brand's next free queue slot. PostWire checks the connections and the media for every network when the flow sends it, not at posting time, so a missing image or an unconnected network fails the run now.

  6. Test the flow and open the posts

    Add an item to the list and open the flow's run. The HTTP action's output shows what PostWire answered: the schedule and its networks, or the field it refused and why. When the time comes, the post appears under History in the PostWire dashboard with each network's live link.

To publish at once instead of at a time, change the URI to https://postwire.io/api/post, drop run_at and add "idempotency_key" with the item's ID: an item the flow sends twice within 24 hours is then published once. Instagram needs an image or a video; for networks that take text alone (LinkedIn, Bluesky, Telegram, Mastodon, X) photo_url can go. For video, send video_url with a public link; YouTube also wants a title.

Where PostWire helps a Power Automate setup

Connector facts from Microsoft's connector reference, and Buffer's from Microsoft's connector page and Buffer's pricing page, read on Oct 26, 2026.

Instagram and TikTokNetworks in one actionPrice
Buffer connectorStandard connector: "Access your pending and sent updates, social media profiles, and more"The channels connected in BufferFree: 3 channels · Essentials $5/mo per channel, billed yearly
Microsoft's network connectorsNo TikTok connector; Instagram Basic Display (Independent Publisher)One connector per networkX, LinkedIn V2 and YouTube are Standard connectors
PostWirePublishes live: photos, carousels, Reels, TikTok videos and photo postsEvery network listed (2 per post on Free)Free: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card · Starter $9/mo for 3 businesses

Checked on Oct 26, 2026 (2026-10-26) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.

Where PostWire is ahead

  • Instagram and TikTok from a flow: the HTTP action publishes Reels, carousels and TikTok videos live.
  • One action, every network: one request lists the networks, so a flow has one HTTP step instead of a connector per network.
  • Priced per business, not per channel: Starter is $9 a month for 3 businesses with every network in each post.
  • A caption per network with per_platform, and a post published now is never sent twice with idempotency_key.
  • Shared files work as links: a OneDrive or SharePoint sharing link is turned into the file's download link.
  • The answer comes back into the flow: each network's live link or its reason, ready for Parse JSON, a SharePoint column or a Teams message.
Sources, all read on Oct 26, 2026:

Three bodies for the same HTTP action

The method, URI and headers stay the same; only the Body changes. Field names are from PostWire's OpenAPI file (/openapi.json), which also documents every error code.

A different caption per network, with per_platform:

{
  "platforms": ["linkedin", "x", "bluesky"],
  "text": "CAPTION",
  "per_platform": {
    "linkedin": { "text": "LINKEDIN_CAPTION" },
    "x": { "text": "SHORT_CAPTION" }
  }
}

A video to TikTok, YouTube Shorts and Instagram Reels, from a file shared with a link anyone can open. A OneDrive or SharePoint sharing link works as it is: PostWire turns it into the file's download link.

{
  "platforms": ["tiktok", "youtube", "instagram"],
  "text": "CAPTION",
  "title": "TITLE",
  "video_url": "PUBLIC_VIDEO_URL",
  "privacy": "public"
}

The next free slot, for a flow that fires often: PostWire spreads the posts over the brand's posting hours instead of sending them all at once. timezone says how to read those hours when the brand has none saved.

{
  "platforms": ["linkedin", "facebook"],
  "text": "CAPTION",
  "run_at": "next_slot",
  "timezone": "America/New_York"
}

Read the answer back into the flow

A flow can act on what PostWire answered, for example to write each post's link back to the SharePoint item or to post it in a Teams channel.

  • Parse JSON on the HTTP action's body turns the answer into dynamic content. From /api/post, results is a list with one entry per network: platform, ok, url of the live post, and error with a code when a network refused it (for example media_required or not_connected).
  • Apply to each over results then handles one network at a time; Microsoft's page for the action says it "requires an array", which results is.
  • A condition on ok sends the failures to whoever owns the list, with the network's own reason.

Power Automate's own social connectors vs one HTTP action

What Microsoft's connector index and connector pages listed on Oct 26, 2026, next to what the HTTP action to PostWire does:

NetworkPower Automate connectorHTTP action to PostWire
InstagramInstagram Basic Display (Independent Publisher)Publishes a photo, a carousel of up to 10, or a Reel
TikTokNot in the connector indexPublishes the video, or a photo post of up to 35 images
YouTubeYouTube (Standard), with triggers such as "When I upload a video"Publishes a video from a URL, with title and privacy
FacebookFacebook [DEPRECATED]Posts to your Facebook Pages
LinkedInLinkedIn V2 (Standard): "Post an article V2"Posts to your personal profile, with images or video
XX (Standard): "Post a tweet"Posts on paid plans, in the same call as the other networks
Bluesky, Mastodon, Telegram, DiscordNot read for this pageThe same request: add the network to platforms

The gain is one action for every network: one flow, one key, one list of networks, instead of a connection and an action per network.

What to watch

  • The key is in the flow. Anyone who can edit the flow can read the header. Create a key just for Power Automate and delete it in API & MCP if the flow is shared or retired.
  • Quotes in the text. A double quote inside a caption breaks the JSON body, and the request is refused with a 400 shown in the run's output. Keep quotes out of the source column, or build the body with an expression that escapes them.
  • Bursts. PostWire allows 60 API requests a minute per key on Free. A flow that loops over a whole table is better pointed at /api/schedule with "next_slot".
  • The free plan posts to 2 networks per post. List more in platforms and the versions for the others are kept, not sent; paid plans publish to every network listed.

Questions people ask

Can Power Automate post to social media?

Yes. Its connector index lists X, LinkedIn V2 and YouTube connectors, and for any network a cloud flow can send an HTTP request to a posting API. With PostWire one HTTP action publishes to TikTok, Instagram, YouTube, LinkedIn, Facebook Pages, Bluesky, Mastodon, Telegram, Discord and X (paid plans).

Can Power Automate post to Instagram?

Not with a Microsoft connector: on Oct 26, 2026 the connector index listed only Instagram Basic Display, from an independent publisher. An HTTP action to PostWire's POST /api/post with an image or video URL publishes a photo, a carousel or a Reel.

Can Power Automate post to TikTok?

The connector index listed no TikTok connector on Oct 26, 2026. Send the video's public link in video_url to https://postwire.io/api/post from an HTTP action and PostWire publishes it on TikTok, and on YouTube and Instagram in the same request if you list them.

How do I schedule social media posts from a SharePoint list or Excel?

Start the flow with the list's or table's trigger for a new item or row, then add an HTTP action that POSTs to https://postwire.io/api/schedule with platforms, text, photo_url or video_url, and run_at set to the item's date column (ISO 8601, up to 365 days ahead) or "next_slot".

Do I need Power Automate Premium?

Microsoft's licensing FAQ says free and Microsoft 365 plans can only use standard connectors, and Power Automate Premium ($15.00 per user a month, paid yearly, on Oct 26, 2026) adds premium ones. Check how the designer labels the HTTP action in your tenant. PostWire's REST API itself is on its free plan.

Is there a PostWire connector for Power Automate?

Not as a listed connector. The HTTP action is the way in, and PostWire's OpenAPI file at https://postwire.io/openapi.json describes every field and answer.