Skip to content
← Setup kits and setup guides

Setup guide · last checked October 17, 2026

A system that turns your weekly content plan into a social media workflow that publishes only with your approval

Using your brand file and weekly topic list, the assistant writes drafts, you prepare the visuals in Canva, you approve the drafts, and the approved ones are scheduled in Zernio for the time you set. Zernio has no mandatory approval: the safeguard is the permission settings below plus your explicit 'schedule' approval.

Compiled from the official documentation. The basis for each step is listed under it.

What you get

Every week, posts that passed your approval sit scheduled in Zernio on the right account at the right time; you check comments and the weekly results separately yourself.

How it runs

You start it. You start the weekly round yourself: you ask for drafts, approve them and have the approved ones scheduled. No self-repeating task is set up.

Where it runs

Windows · macOS · Linux · Browser

What the cost depends on

Subscription · No cost · Setup service

Who it is for

  • Small business owners who regularly prepare and publish posts for Instagram (and Facebook)
  • People who run content for several brands on a weekly plan but want to approve every post themselves

Who it is not for

  • People who want posts to publish on their own without anyone approving them
  • People who want a bot that auto-replies to comments and messages
  • People who want to publish through the API with a personal (non-professional) Instagram account

How the system fits together

Brand file and weekly topic list → the assistant writes drafts → visuals are prepared in Canva → you approve → scheduled in Zernio → comments and weekly results stay under your control.

  • Claude required

    Writes the drafts and connects to Zernio and Canva

    Tool guide

  • Zernio required

    Schedules posts to your accounts, publishes them and shows their status

    Tool guide

  • Canva optional

    Prepares the post image and video

    Alternative: If you prepare your visuals in another tool or with your own template

    Tool guide

  • Canva MCP (Canva AI Connector) optional

    Lets the assistant generate and export designs in Canva

    Alternative: If you want to prepare the design in Canva by hand yourself

    Tool guide

  • Meta Business Suite optional

    Scheduling path for Facebook and Instagram only (a platform Meta describes as free)

    Alternative: If you publish only on Meta's networks

    About the tool

Connections between tools

  • Claude Zernio · Connected via MCP · Remote MCP server (https://mcp.zernio.com/mcp), sign-in with your Zernio account · permission: Listing accounts, saving drafts, media upload link; for scheduling at an absolute time, see the paths in the scheduling step
  • Claude Canva · Connected via MCP · Canva's MCP server; connected with the guide for connecting AI assistants in Canva's Help Center, and each person authorizes with their own Canva account · permission: Generating, searching, editing and exporting designs; access as far as your permissions go
  • Canva Zernio · Manual transfer · You upload the exported image or video file yourself through Zernio's media upload link
  • Zernio Instagram · Automatic via API · The Instagram professional account is authorized in Zernio; Zernio sends the post to the account · permission: Publishing

Before you start

Computer and software

  • Operating system: Windows, macOS, Linux, Browser
  • Claude (claude.ai, desktop app) or Claude Code: A current version that supports adding custom connectors
  • Node.js and npm (only for the Zernio command-line tool): The Zernio documentation doesn't give a version; npm must be working

Accounts

  • Claude account — The assistant that writes the drafts and connects to Zernio and Canva. Custom connectors are available on the Free, Pro, Max, Team and Enterprise plans; on the Free plan you can add only one custom connector
  • Zernio account — The service that schedules and publishes posts to your accounts. Pricing depends on the number of connected accounts; it says no card is required for the first two connected accounts. Every profile on every platform counts as a separate account (Instagram and Facebook together are 2 accounts), and ad accounts count too
  • Instagram professional account (business or creator) — Zernio can't publish through the API with personal accounts. The account type must be Business or Creator
  • Canva account (optional) — To prepare the post image and video. Canva's developer documentation lists the core MCP features on all plans; resizing, autofill and brand templates are Pro and above. Canva's Help Center may describe plans differently: check your own plan there

Step-by-step setup

Which one do you want to do?

The steps you check stay only in this browser; they do not confirm that the setup works. You finished 0/12 steps.

  1. Step 1 · In a code editor

    Write your brand file, weekly topic list and approval rule

    What for: So the assistant writes drafts in the same voice and frame every week, and it's clear what counts as approved.

    1. Create a working folder and put three text files in it with clear names: brand (voice, form of address, words you don't use), weekly topic list, approval list.
    2. In the brand file, write the product/service information that will appear in posts and the claims you won't make. In the approval list, give each post a row with a status of 'approved / needs changes / canceled'.
    3. Keep it short to fit the target network's text limit: the Zernio documentation gives a 2,200-character limit for Instagram captions.

    How you know it worked

    • The folder contains the brand, weekly topic and approval list files; in the approval list, the status column of every row is empty or 'awaiting approval'.
    If you get stuck: problems specific to this step
    • The drafts don't sound like your brand
      Add two or three post texts you like as examples, plus 'never write this' items, to the brand file; then ask for the drafts again.
  2. Step 2 · In the browser

    Switch your Instagram account to professional, open a Zernio account and connect your account

    What for: The account you'll publish to should be connected to the publishing service.

    1. On Instagram, check that your account type is business or creator (professional); personal accounts can't publish through the API.
    2. Open an account at zernio.com, create a profile and connect your social accounts from the dashboard. In Zernio, each profile on each platform counts as a separate account (Instagram and a Facebook Page together are 2 accounts), so the free allowance can fill up quickly.
    3. In Zernio, you can choose Instagram login or Facebook login for Instagram. Facebook login requires an Instagram professional account linked to a Facebook Page; Instagram login doesn't require a Page.

    How you know it worked

    • Your Instagram account appears among the connected accounts in Zernio (or you see its name in the assistant's account list).
    If you get stuck: problems specific to this step
    • The Instagram account won't connect or publishing is rejected
      Check the account type: a personal account can't publish through the API; it must be business or creator.
    • The Instagram account doesn't appear in the list with Facebook login
      Check that the Instagram professional account is linked to a Facebook Page; Facebook login requires this.
    • There's a Facebook Page linked to the Instagram account, but publishing is rejected
      If the Page requires Page Publishing Authorization (PPA), you can't publish to that account until it's completed on Meta's side; Meta states this in its content publishing documentation.
  3. Step 3 · In an app

    Connect Claude to Zernio

    What for: So the assistant can list your accounts and create posts.

    1. On the Pro or Max plan: in Claude, go to Customize > Connectors, choose 'Add custom connector' under '+ Add', give it a name, enter https://mcp.zernio.com/mcp as the URL, continue and confirm the sign-in settings; sign in with your Zernio account. On the Team or Enterprise plan, the organization Owner adds the connector, and you authorize with your own account by clicking 'Connect'.
    2. To use the connector in a chat, turn on Zernio under Connectors from the '+' icon in the chat. On the Free Claude plan you can add only one custom connector.
    3. IMPORTANT (for claude.ai and the desktop app): The connection has access to your entire Zernio account (including creating, scheduling and deleting). Under Customize > Connectors > Zernio > Tool permissions, set everything other than read tools to 'Needs approval'. You can give read tools (account list, post list, analytics) permanent permission.
    4. Zernio's long-tail tools are called through 'call_tool'; it may appear on its own in the list, and if it's set to 'Always allow', every write action runs without approval. Never set 'call_tool' to 'Always allow'. If the assistant uses call_tool, it should show you which tool it is calling and with which arguments.
    5. The list of names below is only an example and is not complete: posts_create, posts_update_post, posts_edit_post, posts_publish_now, posts_cross_post, posts_retry, posts_delete, posts_unpublish_post, posts_bulk_upload_posts, queue_* tools, comment and mention replies, broadcast tools, the paid support_ask.
    6. Don't use Research mode with this connection: Claude's help page says 'During the research process, Claude can invoke tools from your connectors automatically without further approval.'; the approval prompt can be skipped there. Keep Research off while Zernio is connected.
    7. If you use Claude Code, this Tool permissions screen doesn't apply to you: Claude Code's MCP permissions are a separate system and this guide doesn't cover it. Check your own permission settings in the Claude Code documentation; don't add Zernio's write tools to permanent permissions, ask for approval on every call.
    8. In Claude Code, run the command, open a Claude Code session and sign in to Zernio by typing /mcp inside it (the Zernio documentation says 'claude /mcp'; the Claude Code documentation describes /mcp as an in-session command).
    9. Tell the assistant: 'list my connected Zernio accounts'.
    Windows · macOS · LinuxFolder: Your working folder
    › claude mcp add --transport http zernio https://mcp.zernio.com/mcp

    How you know it worked

    • The assistant lists your connected accounts in Zernio (e.g., your Instagram username).
    If you get stuck: problems specific to this step
    • Claude says 'Couldn't reach the MCP server'
      Remove the connector and add it again; Claude caches failed attempts.
    • 401 Unauthorized
      If you connected with OAuth, remove the server and add it again; if you used an API key, check that the key is active and has no spaces at the start or end.
    • The assistant created a post without asking for approval
      On the Tool permissions screen, check whether write tools, including 'call_tool', are set to 'Always allow', and set them to 'Needs approval'. In Research mode, approval can be skipped. In Claude Code, check in its separate permission system. On Team and Enterprise, an administrator may restrict this setting.
  4. Step 4 · In an app

    Connect Canva for visuals, or use your own tool

    What for: Prepare the post image and video. This step is optional.

    1. If you'll use Canva, follow the guide for connecting Canva to AI assistants in Canva's Help Center; each person authorizes with their own Canva account. If you don't want that, use Canva in the browser yourself; the next steps are the same.
    2. Have the assistant generate the design, or prepare it yourself in Canva. Open the generated design candidates in Canva and check them visually.
    3. There's no automatic transfer between Canva and Zernio: you upload the exported file to Zernio yourself in the next steps.

    How you know it worked

    • There's a design for the post in Canva, and you can export the image or video.
    If you get stuck: problems specific to this step
    • Export gives a license error
      The design may contain a paid (premium) element; the Canva MCP tool documentation says export can fail with a license_required error in this case. Replace the element or check your Canva plan.
    • The export link doesn't work
      Signed links become invalid once they expire; use them right away, don't store them, and export again if needed.
  5. Step 5 · In a coding agent

    Ask for the weekly drafts

    What for: Turn the topic list into post texts.

    1. Give the assistant the brand file and this week's topic list; ask it to write a caption, hashtags and a suggested visual idea for each post into the approval list.
    2. Leave the drafts in 'awaiting approval' status. Nothing is sent to Zernio in this step.

    How you know it worked

    • The approval list has this week's post drafts, all with the status 'awaiting approval'.
    If you get stuck: problems specific to this step
    • The assistant tries to write the drafts straight to Zernio
      Tighten the request to 'write only to the approval list, don't send to Zernio'; sending to Zernio happens only after the approval step.
  6. Step 6 · In the browser

    Prepare the visual and upload it to Zernio

    What for: Have the media for the post you'll schedule ready in Zernio.

    1. Export the image or video from Canva (or your own tool). For Instagram, images must be JPEG or PNG (up to 8 MB; Zernio compresses larger images) and videos MP4 or MOV (according to Zernio's Instagram page, feed and Reels videos are up to 300 MB). Zernio's general media documentation lists other formats too, but the Instagram page is limited to these.
    2. Ask the assistant for Zernio's media upload link, open the link in your browser and upload the file. The assistant can't read files on your computer; media is uploaded from the browser.
    3. Have the assistant check that the upload finished; the media URL it returns will be added to the post.

    How you know it worked

    • The upload shows as complete and the assistant gives you a media URL to add to the post.
    If you get stuck: problems specific to this step
    • The upload link doesn't work
      The link is short-lived; if it has expired, ask the assistant for a new one.
    • I get a media error (400) when scheduling an old draft
      Zernio keeps uploaded files in temporary storage for 7 days; upload the media again and use the new URL in the draft.
  7. Step 7 · In a coding agent

    Save the posts for approval as drafts in Zernio

    What for: No post enters the publishing queue before approval.

    1. Tell the assistant to always save every post as a draft only (the is_draft option of the posts_create tool in Zernio MCP); scheduling happens only after you say 'schedule'. Write this rule into the assistant's persistent instructions file. A draft isn't scheduled or published.
    2. Note: in posts_create, if neither is_draft nor publish_now is given, the default mode is scheduled and the post is scheduled 60 minutes from now. That's why you write the 'always draft' rule for the assistant.
    3. Open the drafts in the Zernio dashboard; check that the text, media and account match the approval list.
    4. Uploaded media is kept in temporary storage for only 7 days; if you keep a draft waiting longer than a week, upload the media again, otherwise scheduling returns a 400 error.

    How you know it worked

    • Every post appears in Zernio as a draft; none is scheduled or published.
    If you get stuck: problems specific to this step
    • The assistant saved the post as scheduled instead of as a draft
      Delete the scheduled post from the Zernio dashboard or through the assistant, and have it repeat the rule 'save only with is_draft'.
  8. Step 8 · In a code editor

    Approve every post yourself

    What for: These rules exist so that only posts you approved go to scheduling: permission settings, the draft rule and an explicit 'schedule' approval. Zernio has no approval of its own; this is not a technical guarantee.

    You check this step yourself; the system should not move past it without your approval.

    1. Open the approval list and the drafts in Zernio; read each post's text, image, hashtags, account and suggested time.
    2. Set the status of suitable posts to 'approved', send the ones that need changes back to the assistant, and set unsuitable ones to 'canceled'. Only you write the approval status; the assistant can't write 'approved'. Write this into the assistant's persistent instructions file too.
    3. Compare sentences containing numbers, prices or promises with their source; delete any that have no source.

    How you know it worked

    • Every post to be scheduled has the status 'approved'; the rest aren't scheduled.
  9. Step 9 · In the terminal

    Install the Zernio command-line tool and sign in for absolute times

    What for: Give the time and time zone through a documented path.

    1. Node.js and npm must be installed (the Zernio documentation doesn't give a version). Run the installation line below.
    2. Sign in with zernio auth:login: a browser opens and you approve. Zernio creates an API key and writes it to ~/.zernio/config.json on your computer; don't paste this key into the chat, share the file or put it in a repository.
    3. Check the session with zernio auth:check and your accounts with zernio accounts:list; note the _id value of the account you'll use in the schedule command.
    Windows · macOS · LinuxFolder: Any folder
    › npm install -g @zernio/cli@0.4.1

    Version pinned (as of September 9, 2026). Check the vendor documentation before moving to a newer version.

    Windows · macOS · LinuxFolder: Any folder
    › zernio auth:login
    Windows · macOS · LinuxFolder: Any folder
    › zernio auth:check
    Windows · macOS · LinuxFolder: Any folder
    › zernio accounts:list

    How you know it worked

    • accounts:list shows your Instagram account and its _id value.
    If you get stuck: problems specific to this step
    • The command-line tool gives an auth error
      First make sure you signed in with zernio auth:login; if a ZERNIO_API_KEY environment variable exists, it is used before the key in the file, so remove it if it's wrong.
  10. Step 10 · In a coding agent

    Schedule: explicit approval first, then schedule in Zernio

    What for: Approved posts are scheduled to the right account at the right time.

    You check this step yourself; the system should not move past it without your approval.

    1. Schedule approval: before making the call, the assistant shows in writing the account name, the time (with a +03:00 offset), the text and the media URL. No call is made until you explicitly say 'schedule'. The time must be at least a few minutes in the future.
    2. Turning a draft into a scheduled post in MCP: if posts_update_post is in your tool list, use it: post_id, is_draft=false, scheduled_for (with offset) and timezone if needed. The Zernio REST documentation states the same rule (isDraft:false + scheduledFor).
    3. The core posts_update (content, scheduled_for, title) doesn't take is_draft; giving only a time doesn't turn a draft into a scheduled post. posts_update_post isn't mentioned on the MCP tools documentation page, so check your tool list.
    4. Time rule: a time with Z or an offset (+03:00) is treated as absolute; a time without an offset is read in the zone in the timezone field, and if that's missing too, the profile time zone or UTC is used. Europe/Istanbul is DijiKoçum's recommendation. If you give a time in the past, the post is published immediately in the same request (this behavior is stated in Zernio's REST/MCP documentation; the command-line documentation doesn't cover past times, so assume the same behavior).
    5. Alternative, command line: without --scheduledAt, the command publishes the post IMMEDIATELY. Use --draft on your first try. Put a future day as the date (replace the placeholder in the example below); if the date falls in the past, the post is also published immediately. Run the command yourself, or have the assistant show it to you before running it.
    6. Before scheduling you can run Zernio's validation tool (if it appears in your tool list as validate_post; this name isn't mentioned in the MCP tools documentation). Validation checks only content and media rules; it doesn't show that the account is connected or that the media has been processed. Do the final check in the Zernio dashboard.
    7. Instagram's daily API publishing limit isn't a problem for a small business (Zernio says 100, one section of Meta's documentation says 50); Zernio also limits each account to 25 posts per hour.
    Windows · macOS · LinuxFolder: Any folder
    › zernio posts:create --text "Text" --accounts <accountId> --media <media-https-url> --draft
    Windows · macOS · LinuxFolder: Any folder
    › zernio posts:create --text "Text" --accounts <accountId> --media <media-https-url> --scheduledAt "<FUTURE-DATE>T10:00:00" --timezone Europe/Istanbul

    How you know it worked

    • The posts you approved appear as scheduled in the Zernio dashboard; none that you didn't approve are in the list.
    If you get stuck: problems specific to this step
    • The post appears scheduled three hours later than expected
      Because no time zone was given, the time was treated as UTC (or the profile zone): 10:00 without an offset becomes 13:00 in Istanbul. Use a time with an offset (+03:00) or pass --timezone Europe/Istanbul.
    • I gave the draft a time but the post stayed a draft
      To turn a draft into a scheduled post you need isDraft:false together with scheduledFor (is_draft=false in posts_update_post in MCP); with the core posts_update, giving only a time leaves it a draft.
    • The post was published immediately instead of being scheduled
      A time in the past may have been given, or --scheduledAt may have been left out on the command line; both publish the post immediately. Manage the post from the dashboard, and next time try with --draft first.
    • The command-line tool returns a 400 error because of the time zone name
      Write the IANA name correctly (Europe/Istanbul); an unknown name returns an error.
  11. Step 11 · In an app

    Check comments yourself and note the week's results

    What for: So incoming comments don't go unanswered, and next week's plan is based on real results.

    You check this step yourself; the system should not move past it without your approval.

    1. After publishing, read the comments yourself (Zernio's inbox tools or Instagram itself; as of October 17, 2026, Zernio's pricing page says comments are free). You can have the assistant draft a reply; you approve it before it's sent. Automatic replies aren't set up in this guide.
    2. At the end of the week, check in the Zernio dashboard or with the assistant's analytics tools how much engagement each post got; for any value you can't measure, write 'not measured'.
    3. Update next week's topic list based on these notes.

    How you know it worked

    • Each post has a comment status and a recorded weekly result.
  12. Step 12 · In the browser

    For Meta networks only: schedule in Business Suite

    What for: Schedule approved content in Meta's own tool without opening a Zernio account.

    You check this step yourself; the system should not move past it without your approval.

    1. Meta Business Suite is free (desktop and mobile app). Your Instagram account must be a professional account and you must have full control of the business portfolio; an Instagram account can be added to only one portfolio.
    2. Add your Instagram account: in Business Suite, go to Settings > Accounts > Instagram accounts > Add > Add Instagram account. In the window that opens, sign in to Instagram, enter the code if you use two-factor authentication, and click Confirm.
    3. Create the post: Content > Create post. Paste the approved text from the approval list and upload the image. If your Page and Instagram are linked, the post appears on both; if you want it on only one, uncheck the other under 'Post to'.
    4. Schedule: turn on the Scheduling options toggle, choose the date and time, and click Schedule. If you're not ready, save a draft with Finish later; if you scheduled it wrong, go to Scheduled and use Options > Manage post > Reschedule post.
    5. On this path there's no connection between the assistant and the scheduler: move only posts marked approved in your approval list into Business Suite.

    How you know it worked

    • The post you approved appears with the date and time you chose in the Planner tab or under Content > Posts & reels > Scheduled.
    • Your Instagram account is listed under Settings > Accounts > Instagram accounts.

Is the setup working? Check these

  • The draft and scheduled posts in Zernio match the ones marked 'approved' in your approval list; there's no post that isn't on the list.
  • Zernio's scheduled and published post lists contain no post that isn't in your approval list.
  • A scheduled post appears on the account you chose, with the text and media you approved, at the right time.
  • The same post hasn't been scheduled twice.

What you pay for

The items are separate, not a total; which ones you need depends on the path you set up. Prices change, so check the source of each item.

  • SubscriptionZernio

    Monthly, based on the number of connected accounts: the first two accounts are $0, accounts 3-10 are $6 per account. Every profile on every platform counts as a separate account (Instagram and Facebook are 2 accounts), and ad accounts count too (per the pricing page). Comments are free and don't count toward the allowance; the first 10,000 messages sent from the inbox each month are free (pricing page). (October 17, 2026) source

  • SubscriptionClaude plan

    Custom connectors are available on the Free plan too (one connector); usage limits and paid plans are listed on Anthropic's page. source

  • SubscriptionCanva

    Canva's developer documentation lists the core MCP features on all plans; resizing, autofill and brand templates are Pro and above. Canva's Help Center may describe plans differently: check your own plan there. Exporting a design with premium elements may give a license error. source

  • No costMeta Business Suite (optional path)

    According to Meta's help page, Meta Business Suite is free to use on desktop and in the mobile app. If you run ads, ad spend is separate; this guide doesn't set up ads. source

  • Setup serviceSetup service

    If you like, we can handle the setup or the steps you choose for you; scope is agreed on a call. source

Sources

You can set it up yourself; we can do the step you get stuck on together

Check the steps you want. The request form receives the system name and your selected steps as a visible summary that you can edit. There is no need to share any password or API key.

Steps you want help with
Discuss my setup needs Help is available with connecting accounts, the assistant-Zernio connection, the brand file and approval setup, scheduling, and designing recurring runs. The exact scope and price are set in a call.

If you are looking for another route

The guide is free and needs no sign-up; you can follow the steps here yourself. If you’d like professional support at some point, choose the option that fits your needs. This doesn’t affect the rankings in the guide.