Advanced workflows · Automation

Connect publishing to your existing workflow

Choose between CLI, local API, MCP, and Webhooks, then build a small workflow whose results you can verify.

Maintained by VeloWrite · Reviewed

Pick one repeated task

Automation is easiest to evaluate when the task has a clear beginning and a result you can inspect. You might already keep release notes in a repository and want to prepare a publishing job from that file. Or an editorial tool may need to send an approved article to a receiving workflow. Write down which file is the source, which destinations are allowed, and where someone will review the outcome.

Keep your first integration small. Use a harmless document and a simulated destination before attaching a production account. This gives you a way to compare the prepared title, Markdown, and destination list with what you intended. A successful simulation demonstrates local preparation; remote authorization and platform behavior still need their own checks.

Use the interface your existing tool can manage

The CLI suits a script that can launch a process, send JSON through standard input, and read a response. It is useful for a repository task or a local helper. Give the process an explicit Publisher data directory so you know which job history it is using. Accidentally pointing two tools at different profiles can make a submitted job appear to be missing.

The local HTTP API suits a program that already makes HTTP requests. The optional bridge listens on the loopback interface and uses a bearer token. Keep that token private and check the current bridge reference for supported operations. Starting a local API does not make it a hosted publishing service, and exposing its port publicly changes the security assumptions.

MCP suits a compatible client that can discover tools and send structured requests. Configure the bridge executable, native Publisher binary, and data directory explicitly. Inspect the capabilities returned by the current installation before building a workflow around a particular operation. A tool being discoverable does not mean it has permission to send content to a real account.

Separate preparation from the decision to send

Begin by asking the integration to report its capabilities, then inspect the existing jobs. Prepare a small document and queue a simulation. Compare the stored content with the source file, including punctuation, code fences, and non-ASCII characters. This catches input-encoding and quoting mistakes before a platform ever sees the article.

Use JSON serialization in your script instead of assembling request text by joining strings. A title containing quotation marks should remain a title, not break the request. Send sensitive values through the documented protected input mechanism rather than command-line arguments, which can appear in process listings and shell history.

Retain the job identifier returned by a submission. A later process can use it to inspect progress and decide what still needs review. If the input file changes after submission, treat that as a new editorial decision. The existing queued snapshot gives you a stable record of what that job was asked to deliver.

Use Webhooks for a receiving workflow

A Webhook is useful when another system owns the next step. Publisher sends the prepared article to an HTTPS endpoint; the receiver might create a draft in another service or place the text in an approval queue. Define that responsibility before implementing the endpoint. An editor needs to know whether confirming a send will store content or make it public.

VeloWrite's signed Webhook contract includes a timestamp, signature, and idempotency key. Verify the signature against the exact request bytes using the configured secret before processing the content. Apply an appropriate clock window and use a constant-time comparison. Parsing and reserializing JSON before verification can change the bytes and invalidate a legitimate signature.

Keep a record of the idempotency key and the corresponding remote result. If the same delivery arrives again, return the recorded result instead of creating another article. This is especially useful when the original response was lost. A retry should not become an accidental duplicate post.

Make receipts describe what happened

The receiving service should return a structured receipt with the matching key, a stable remote identifier, and a truthful status. Accepted or processing means work remains. Draft created means there is a remote draft to review. Published means the destination reports that publication completed. A generic successful HTTP response is too little information for an editor deciding whether to check the public page.

Give each receiver a separate name and configuration when you use several Webhooks. Test them independently. An endpoint for a staging blog should not be interchangeable with one that posts publicly, even if their request formats match. Keep secrets out of job notes and avoid writing complete article bodies into routine receiver logs.

Plan for interruption and uncertain results

Decide how your calling tool will record a timeout before enabling real delivery. Look up the existing job and check the remote draft list or receiver record first. Do not submit a new job simply because the previous process stopped waiting. The remote operation may already have completed.

Useful operational records include the local job ID, destination, attempt time, receipt, and remaining action. Avoid logging credentials. Test an invalid credential and an unavailable receiver with non-sensitive material, then confirm that the result is understandable and the original document remains available. Review failures manually until the workflow is predictable enough for your needs.

Check access before scheduling a workflow

CLI, local API, MCP, and Publisher require active trial or Pro access. Editing and conversion remain free. Also check the destination's account permissions and any network or proxy settings needed on the machine doing the work. Reaching a platform over a proxy proves connectivity; it does not prove permission to create a post.

Start with the automation setup guide, consult integration options, and read the publishing review workflow before enabling a real destination. Keep the first working example small enough that you can explain every request and verify every result.