How to manage your TikTok account with OpenClaw
Connect OpenClaw to ViewPrinter with one command and it can post, schedule and read results for your TikTok account, and the other four platforms, on its own. Then have it answer comments and DMs as they arrive, and collect the ones worth a post.
·
OpenClaw is an agent that runs on its own schedule, so the question is less “how do I post” and more “how do I give it the account and the rules”. ViewPrinter is the account half: your TikTok connected, tools that say which of them publish, results the agent can read back, and a webhook that tells it the moment someone comments.
1. Give OpenClaw the server
- Run the command below.
- Run
openclaw mcp login viewprinter. - Sign in to ViewPrinter when the browser opens, and approve the tools. OpenClaw holds the token after that.
openclaw mcp add viewprinter \
--url https://viewprinter.tech/api/mcp \
--transport streamable-http --auth oauth \
--oauth-scope "mcp:tools offline_access" \
--oauth-client-metadata-url https://viewprinter.tech/.well-known/openclaw-client.json2. Connect your TikTok account
In the ViewPrinter dashboard, connect TikTok through TikTok’s own sign-in. Add Instagram, YouTube, X or Facebook the same way if the agent should reach those too. Then ask OpenClaw to call accounts_list and note the account ids; the comment rules below need them.
What to let it do
- Read: list accounts, list scheduled posts, read performance. Safe to leave open.
- Write: upload media, schedule a post, cancel a scheduled post. Put these behind OpenClaw’s approval, at least at first.
3. Have it answer comments and DMs
Someone comments “LINK”; OpenClaw sends them one DM with the link and replies “Check your DMs!” under the comment. This is the automation most people pay ManyChat for, and why we leave it to your agent has the comparison. Check which platforms support comments and DMs right now first.
Two things OpenClaw needs that it does not have by default: inbound hooks, which are off until you turn them on, and a public https address for ViewPrinter to deliver to. OpenClaw’s docs recommend keeping its gateway behind your own machine, a tailnet or a reverse proxy, so it needs a tunnel to be reachable. The prompt below has OpenClaw set up both, then register the webhook with ViewPrinter itself. Replace the account ids, the DM and the link with your own.
Set yourself up to answer ViewPrinter comment and DM events.
1. Enable inbound hooks in your openclaw.json: generate a long random hook token and keep the base path /hooks. Add a mapped hook at /hooks/viewprinter that runs an agent turn with the whole JSON request body as its input, following the rules below.
2. Make /hooks/viewprinter reachable from the internet over https, through a tunnel or reverse proxy (for example a Cloudflare Tunnel or Tailscale Funnel). If you need anything from me to do that, ask. Then tell me its public https address.
3. Register it with ViewPrinter: call webhooks_save with url set to that https address, events ["comment.created", "message.received"], and auth_header set to "Bearer " followed by the hook token. Then call webhooks_list and confirm it is active. Do not repeat the token back to me.
Rules for every event that arrives on /hooks/viewprinter:
Each event is a ViewPrinter webhook body: JSON with a type, an id, an accountId and the ids to look things up by. It never contains the comment or message text, so always fetch it first.
For every event:
1. If you have already handled this event id, stop. The same event can arrive more than once.
2. If accountId is not one of these, stop: ACCOUNT_IDS_FROM_ACCOUNTS_LIST
3. If type is comment.created, read the comment with ViewPrinter comments_list using data.commentId.
- If it is asking for the link (for example "LINK", "link?", "where do I get it?"), send one private reply with messages_reply using comment_id, before data.privateReplyUntil. Send exactly this, with the link alone on the last line:
Hey! Thanks for asking. Here it is:
https://example.com/app
- Then reply to the comment publicly with comments_reply: "Check your DMs!". Never put the link in the public reply.
- Anything else (questions, complaints, jokes, people talking to each other): do nothing.
4. If type is message.received, read the thread with messages_list using data.conversationId. If they are asking for the link again, send it with messages_reply before data.replyUntil. Otherwise leave it for me.
5. After every event, tell me on the channel you normally message me on: the comment or message, exactly what you sent, or why you skipped it.
You have my standing permission to send these two replies without asking me each time. Do nothing else on these accounts from these events.To test, comment “LINK” on one of your recent posts from a different account. If nothing arrives, ask OpenClaw to call webhooks_list: it shows whether deliveries are failing.
Optional: collect content ideas from the comments
Since OpenClaw already reads every comment, it can make a second decision on each one: is this a post? Ideas go to a running list and to the note it sends you, never to the commenter.
Add this to the rules for /hooks/viewprinter. It runs on every comment, after the reply rules, whether or not you replied.
Also decide whether the comment is a content idea: something I could make a post about. Save it when it has at least one of:
1. A specific situation or story from the commenter's own life
2. A doubt or objection about my product that I could answer
3. A myth or common belief worth correcting
4. A question a whole post could answer
5. A disagreement about how something should be counted or judged
Do not save: bare link requests, insults or one-word reactions, rants with nothing specific in them, thank-yous, jokes, or a comment you have already logged.
When you save one, add a line to a running list called "Content ideas":
Content idea (date, platform): one-line hook. Why it would work as a post.
Include the idea, or "Content idea: no", in the note you send me after each event. Never mention content ideas in a DM or a public reply. The list is only for me.Every tool and its annotation is on the MCP page. The same comment setup for Grok Bot is how to auto-reply to comments with Grok Bot.
Sources
- OpenClaw Docs — Inbound webhooks (hooks.enabled, token, mapped hooks)
- Meta for Developers — Instagram private replies (one per comment, 7 days)
Each page read on 2 October 2026.
Common questions
Then post it
Say it once, post it everywhere
Say what to post and when — it goes out on time to every account, without you opening a tab.
Paste this into your client
{
"mcpServers": {
"viewprinter": {
"type": "http",
"url": "https://viewprinter.tech/api/mcp"
}
}
}