# Manage Multiple Accounts from One Automation

You run social media for three brands. Or five clients. Or one brand with separate accounts for different regions. Each account needs its own content, its own schedule, and its own platform connections. You try to build this in n8n or Make.com, and your workflow turns into a maze of IF nodes, separate credentials, and duplicated logic.

This is a recurring pain point on the [n8n forum](https://community.n8n.io) and [Make.com forum](https://community.make.com). Social media managers and agencies ask: "How do I post to multiple Instagram accounts from one scenario?" or "What is the best n8n automation guideline for multi-account content automation?" The answers involve workarounds that do not scale.

Here is how to manage any number of accounts from a single workflow.

## Why multi-account automation is hard with native nodes

The core problem: each native social media node in n8n or Make.com is tied to one OAuth credential. If you manage 5 Instagram accounts, you need 5 separate Facebook Graph API credentials, 5 separate nodes, and 5 separate branches in your workflow.

Common issues from forum discussions:

* **Credential management.** Each account needs its own OAuth connection. Adding a new client means reconfiguring the workflow, not adding a row to a spreadsheet.
* **Workflow duplication.** Users copy entire workflows per client, then struggle to keep them in sync when they change the logic.
* **Token expiration.** OAuth tokens expire at different times. One expired token breaks one client's posts while others continue. Debugging means checking each credential individually.
* **Make.com operation limits.** Each branch per account consumes operations. A 5-account, 3-platform workflow uses 15+ operations per post, which adds up fast on paid plans.
* **n8n self-hosted complexity.** Users running n8n on a VPS report memory issues when running 10+ concurrent branches with media uploads.

On the n8n forum, a user managing content for multiple accounts wrote: "I need a guideline for multi-account content automation. I want to manage accounts in a spreadsheet and have the workflow pick the right credentials." The thread has no clear solution using native nodes alone.

## The account-driven approach

With Blotato, all your social accounts are connected in one place. The API returns a list of all connected accounts with their `accountId` values. Your workflow reads from a spreadsheet, matches each row to an `accountId`, and publishes. No per-account OAuth. No branching. No duplicated workflows.

### Step 1: Get all connected accounts

Call `GET /v2/users/me/accounts` to list every connected account:

```json
{
  "items": [
    {
      "id": "101",
      "platform": "instagram",
      "fullname": "Brand A",
      "username": "brand_a"
    },
    {
      "id": "102",
      "platform": "instagram",
      "fullname": "Brand B",
      "username": "brand_b"
    },
    {
      "id": "103",
      "platform": "linkedin",
      "fullname": "Brand A",
      "username": "brand-a-company"
    }
  ]
}
```

Filter by platform if needed: `GET /v2/users/me/accounts?platform=instagram`

See: [List Connected Accounts](https://help.blotato.com/api/accounts)

### Step 2: Structure your content spreadsheet

Set up a Google Sheet (or Airtable, or Notion database) with one row per post:

| Brand   | Platform  | Account ID | Text                  | Media URL                      | Scheduled Time            | Status |
| ------- | --------- | ---------- | --------------------- | ------------------------------ | ------------------------- | ------ |
| Brand A | instagram | 101        | New product launch... | <https://example.com/img1.jpg> | 2026-04-08T09:00:00+00:00 | Ready  |
| Brand A | linkedin  | 103        | We are launching...   | <https://example.com/img1.jpg> | 2026-04-08T10:00:00+00:00 | Ready  |
| Brand B | instagram | 102        | Summer collection...  | <https://example.com/img2.jpg> | 2026-04-08T11:00:00+00:00 | Ready  |

The `accountId` column is the link between your spreadsheet and Blotato. Each row maps to one publish call.

### Step 3: Publish each row

Loop through the spreadsheet rows and call the [Publish Post](https://help.blotato.com/api/publish-post) endpoint for each:

```json
{
  "post": {
    "accountId": "101",
    "content": {
      "text": "New product launch...",
      "mediaUrls": ["https://example.com/img1.jpg"],
      "platform": "instagram"
    },
    "target": {
      "targetType": "instagram"
    }
  },
  "scheduledTime": "2026-04-08T09:00:00+00:00"
}
```

The same workflow handles Brand A's Instagram, Brand A's LinkedIn, and Brand B's Instagram. No branching. No separate credentials. The `accountId` routes each post to the right account.

## Step-by-step: n8n workflow

1. Install the [Blotato community node](https://help.blotato.com/api/n8n/n8n-blotato-node) in n8n.
2. Add a **Google Sheets Trigger** (or Schedule Trigger + Google Sheets node) to read rows where Status = "Ready".
3. Add a **Loop Over Items** node (or let n8n auto-loop) to process each row.
4. Add a Blotato **Publish Post** node inside the loop. Map the `accountId`, `text`, `mediaUrls`, `platform`, and `scheduledTime` fields from the spreadsheet columns.
5. Add a **Google Sheets Update** node to set the Status column to "Posted" after each publish.
6. Activate the workflow.

Adding a new brand means connecting the account in Blotato and adding rows to the spreadsheet. No workflow changes needed.

## Step-by-step: Make.com scenario

1. Add a **Google Sheets - Watch Rows** trigger module filtered to rows where Status = "Ready".
2. Add an **Iterator** module to process each row.
3. Add an **HTTP** module calling `POST https://backend.blotato.com/v2/posts` with the `blotato-api-key` header.
4. Map the request body fields from the spreadsheet columns: `accountId`, `text`, `mediaUrls`, `platform`, `targetType`, and `scheduledTime`.
5. Add a **Google Sheets - Update Row** module to mark the row as "Posted".
6. Activate the scenario.

One scenario handles all brands and all platforms. No Router needed. No per-account branches.

## Scaling to 10+ accounts

When managing many accounts, keep these patterns in mind:

**Content templates per brand.** Store brand-specific instructions (tone, hashtags, emoji style) in a separate sheet tab or database table. Join them to each post row before publishing.

**Bulk scheduling with `useNextFreeSlot`.** Instead of manually setting `scheduledTime` per post, use `useNextFreeSlot: true` to let Blotato pick the next open slot for each account's calendar:

```json
{
  "post": {
    "accountId": "101",
    "content": { ... }
  },
  "useNextFreeSlot": true
}
```

Each account has its own calendar slots, so Brand A's Instagram posts land on Brand A's schedule, and Brand B's posts land on Brand B's schedule.

**AI-generated content per brand.** Use the [Create Source](https://help.blotato.com/api/create-source) endpoint to generate brand-specific content. Pass brand guidelines in `customInstructions`:

```json
{
  "source": {
    "sourceType": "text",
    "text": "New product launch: wireless earbuds with 40-hour battery life"
  },
  "customInstructions": "Write an Instagram caption for Brand A. Brand A's tone is casual and playful. Use short sentences. Include 3 relevant hashtags. Do not use emojis."
}
```

Run this for each brand with different instructions to get on-brand content from the same source material.

**Status tracking.** After each publish, the API returns a `postSubmissionId`. Poll `GET /v2/posts/{postSubmissionId}` to check whether the post is `published` or `failed`. Log the status back to your spreadsheet for a full audit trail across all brands.

## Comparing approaches

|                      | Native nodes (per-account OAuth)         | Blotato API (account-driven) |
| -------------------- | ---------------------------------------- | ---------------------------- |
| Adding a new account | Reconfigure workflow, add new credential | Add rows to spreadsheet      |
| OAuth management     | One token per account, per platform      | One API key for all accounts |
| Workflow complexity  | Branches multiply with each account      | Single loop, no branching    |
| Token expiration     | Each token expires independently         | Blotato manages tokens       |
| Make.com operations  | 1 operation per node per account         | 1 HTTP call per post         |

## Forum threads referenced

These are the community discussions that prompted this post:

* [Posting to multiple social media accounts](https://community.n8n.io/t/posting-to-multiple-social-media-accounts/71347) (n8n)
* [Best n8n automation guideline for multi-account content automation](https://community.n8n.io/t/best-n8n-automation-guideline-for-multi-account-content-automation/157617) (n8n)
* [Help me with my workflow automation for social media posting](https://community.n8n.io/t/help-me-with-my-workflow-automation-for-social-media-posting/191231) (n8n)
* [Posting to multiple Instagram accounts in a scenario](https://community.make.com/t/posting-to-multiple-instagram-accounts-in-a-scenario/57859) (Make)
* [Social media automation scenario not running content](https://community.make.com/t/social-media-automation-scenario-not-running-content-help/51554) (Make)
* [Social media IG+FB scheduling automation](https://community.make.com/t/social-media-ig-fb-scheduling-automation/20495) (Make)
