Changelog
Notable changes to the SociaHive SDKs, MCP server, and REST API.
Public-facing changes that affect SDK consumers, MCP clients, or REST API callers. We don't log every internal refactor.
For version bumps that don't have a notable user-visible change, we publish the new version without a changelog entry — assume those are bugfix-only.
2026-10-06
New tool: export_collected_data
Returns the actual values collected by your flows (emails, phone numbers, names, answers), newest first, so an assistant can export or sync your leads. Inputs: flowId (optional; omit for all your flows), fieldType, since (ISO date), limit (1-500, default 100) and cursor. Output: items (id, flowId, flowName, fieldType, fieldLabel, value, valid, collectedAt), nextCursor and total. Needs the flows:read scope. Rolling out to admin accounts first; until it reaches yours, calls are refused.
get_collected_data hides email- and phone-shaped previews
get_collected_data stays a summary. Its preview field is now also left out when the value looks like an email or a phone number, whatever the field type. Use export_collected_data for the values.
2026-10-05
Read-only access on the consent screen
When an MCP client asks for any write scope, the SociaHive consent screen now offers a "Read-only access" box. If the person ticks it, the authorization code and every token minted from it carry only the requested *:read scopes plus agent:execute; all *:write scopes and agent:destructive are dropped. Write tools are then refused for the missing scope. Read the granted set from the scope field of the token response rather than assuming you got what you asked for.
Token revocation endpoint
POST /api/oauth/revoke implements RFC 7009. Send token (access or refresh, form-encoded or JSON), and optionally token_type_hint and client_id. Revoking either token revokes the pair. The response is 200 for any token, including unknown or already revoked ones; 400 invalid_request only when token is missing. The endpoint is advertised as revocation_endpoint in /.well-known/oauth-authorization-server, with revocation_endpoint_auth_methods_supported: ["none"].
People can also revoke a connected app from Settings → Connected apps. Either way the next request with the revoked token gets 401 invalid_token.
2026-10-02
generate_flow: iterateOnFlowId no longer rebuilds a flow a person has edited
generate_flow with iterateOnFlowId replaces every step of the target flow. It now works only on an empty draft, or on a flow whose content is still exactly what generate_flow last built. On any other flow the call fails with state_error and suggestion: "use_edit_tools"; nothing is changed.
To change one thing in an existing flow, use update_node, add_node, delete_node or add_edge.
Flows built before this date count as edited, so they can be changed with the edit tools but not regenerated in place.
get_flow returns the flow's steps
get_flow used to return only node and edge counts. It now also returns nodes (each step's id, type, name and a one-line summary) and edges (from, to, and the handle for a button or branch). Pass nodeId (a step's id or name) to also get that step's full data in node. Request headers and credentials in step data are masked as [redacted].
Existing fields are unchanged.
update_node merges instead of replacing
update_node used to replace a step's whole data with what the caller sent, so a call carrying only name erased the step's content. It now merges:
text,linkandkeywordsare new inputs for the common edits: a message step's reply text, its outgoing link, and the trigger's keyword list.datais merged into the step. Top-level keys are set; content blocks merge byid; the trigger'sconfigmerges by key. To remove a content block, passremoveBlockIds. A key you leave out is kept, not deleted.- The write fails with
state_error(wait_then_retry) instead of overwriting when the flow is being changed at the same time.
Some content is refused with validation_error because only the owner sets it in the flow editor: anything but the name on a payment step, product selections, the post a scheduled-post automation listens on, and removing a button that has a connection. add_node refuses the same values, and add_edge / delete_edge refuse connections out of a payment step.
A restore point before every edit; scheduled-post automations
- Before
update_node,add_node,add_edge,delete_node,delete_edge,revert_flow_to_version, or agenerate_flowrebuild changes a flow, the flow as it stood is saved as a revision if no revision already holds it.get_flow_revisionslists it as "Before AI edit" andrevert_flow_to_versionrestores it. If the restore point cannot be saved, the edit is not made (upstream_error, retriable). revert_flow_to_versionnow works on drafts only, like the other edit tools. For a live flow, duplicate it first.- Editing an automation that was set to turn on with its scheduled post turns that setting off, because only a person can approve what goes live. The tool result carries a
noticesaying so, and the owner gets an in-app notification. duplicate_flow(andPOST /api/v1/flows/{id}/duplicate) no longer copies a scheduled-post link. The copy listens on no post until posts are chosen for it.
Scheduled-post automations in the tools
get_scheduled_postreturnsautomationwhen the post has one:flowId,flowName,state(building,failed,off,armed,live,needs_attention),armed, andproblemwhen it needs a fix.- New tool
detach_post_automationremoves the automation from a scheduled post. It needsposts:writeandflows:write, and always asks for confirmation. It is being rolled out gradually, so a call may be refused as not enabled. - No tool turns an automation on. That is done by the account owner on the post.
What is wrong with a flow; node and trigger catalogs
get_flowreturnsproblems: for a draft, every rule that would stop it being turned on (each withcode,messageand thenodeIdwhen one step is at fault); for a live flow, its current problem. An empty list means none.- The
sociahive://node-typesandsociahive://trigger-typesresources are now generated from the product's own lists, so they include every current step and trigger. One correction: a delay step'sdelay_timeis in milliseconds. The resource used to say seconds.
2026-05-20
Outbound webhooks — deferred
The outbound webhooks surface (/api/v1/webhooks/* CRUD and the events listed previously) is gated behind admin access until the production-grade at-least-once delivery pipeline ships. If you were planning an integration that subscribes to SociaHive events, hold off — the public surface is being redesigned and the timeline is open. We'll announce here when it's ready.
In the meantime, the equivalent integration patterns work today via polling the REST API (e.g. GET /api/v1/posts?status=published&since=<timestamp>) or by reading from the MCP list_* tools.
@sociahive/[email protected] on npm
First public release of the official Node / TypeScript SDK.
- Resource groups:
accounts,posts,flows,analytics - Typed request and response shapes
- Ergonomic
SociaHiveErrorwithisAuthError,isRateLimited,isNotFound,isStateErrorhelpers - Both CJS and ESM bundles;
typesfield correctly ordered for TypeScript conditional resolution - Node 18+
[email protected] on PyPI
First public release of the official Python SDK.
- Same resource grouping as the Node SDK
httpx-based async-capable clientSociaHiveErrorexception class- Python 3.9+
Docs site
- New documentation site at docs.sociahive.com — multi-page Fumadocs site replacing the single-file README
- Three-doors landing: AI assistants / Developers / No-code operators
- Setup guide with Tabs for each MCP client (Claude Desktop, Claude Code, Shell CLI, Local stdio)
- Developer quickstart structured as numbered Steps
- Cookbook with three runnable recipes — auto-reply comments, CSV scheduling, daily performance recap
- Flow patterns reference (seven named patterns)
- Error reference and rate limits pages
Public source repositories
- github.com/sociahive/sociahive-node — Node SDK source
- github.com/sociahive/sociahive-python — Python SDK source
- github.com/sociahive/cookbook — runnable recipe code
- github.com/sociahive/zapier-platform-app — Zapier integration scaffold
How to track future changes
- npm: npmjs.com/package/@sociahive/sdk → Versions
- PyPI: pypi.org/project/sociahive → Release history
- REST API: breaking changes go out in OpenAPI's
info.versionfield at/api/v1/openapi.json. Subscribe to that URL in your CI if you generate types from it. - MCP tool registry: call
list_capabilitiesfrom your MCP client — tools added or removed between sessions will surface immediately.