---
title: "Rewrite the exact saved Hive simple automation draft you reviewed. Send its draftVersionId and revision from read_automation_flow; Hive refuses an outdated edit. Change the words, link, account, watched posts or steps. This saves a draft and sends nothing; going live is a separate reviewed action."
method: POST
path: "/api/v1/tools/update_simple_automation"
---

# Rewrite the exact saved Hive simple automation draft you reviewed. Send its draftVersionId and revision from read_automation_flow; Hive refuses an outdated edit. Change the words, link, account, watched posts or steps. This saves a draft and sends nothing; going live is a separate reviewed action.

`POST /api/v1/tools/update_simple_automation`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/update_simple_automation`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `flowId` string, required: The Hive automation to change.
  - `expectedDraftVersionId` string, required: The exact draftVersionId returned by read_automation_flow for the draft you reviewed.
  - `expectedRevision` integer, required: The saved revision returned with that draftVersionId. Do not replace it with a newer revision to retry an outdated edit.
  - `recipe` 'comment-link' | 'story-leads' | 'dm-faq' | 'comment-follow-gate' | 'comment-affiliate-links' | 'default-reply', required: Which Hive simple automation this is.
  - `accountId` string: The connected Hive account this automation runs on. Leave it out to get the list of accounts to choose from; never guess it.
  - `platform` string: The network when accountId is not known yet: instagram, facebook, whatsapp, tiktok, messenger. Hive answers with the accounts to choose from instead of guessing.
  - `name` string: Optional new name.
  - `keywords` string[]: The words a comment or message must contain.
  - `replyText` string: The message the automation sends.
  - `linkUrl` string: The destination the link message opens.
  - `linkButtonLabel` string: The label on the button people tap to ask for the link.
  - `publicReplyText` string: A public reply to the comment. Supplying it switches the public reply step on.
  - `postIds` string[]: External post ids from read_eligible_posts (or story ids from read_eligible_stories) this automation watches. At most 20. Leave empty to watch every post on the account.
  - `postScope` 'any' | 'specific': any watches every post on the account; specific watches only postIds.
  - `options` object
    - `askEmail` boolean: Switch on the step that asks for an email address.
    - `askFollow` boolean: Switch on the step that asks the person to follow first.
    - `followUp` boolean: Switch on the later follow-up message.
    - `followUpText` string: The words of that follow-up message.
    - `emailPrompt` string: The words used when asking for the email address.
    - `privacyPolicyUrl` string: The privacy policy shown with the email ask.

## Response `200`

Tool result

- ToolResult
  - `data` unknown, required
  - `meta` object, required
    - `tool` string
    - `workspaceId` string, uuid

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hivepublish/apis/hive-developer-api.md) · [All operations](https://skmtc.dev/hivepublish/apis/hive-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hivepublish/apis/hive-developer-api/revisions/b440c763583e?raw)
