Orkestia
Blog
Chat

API and console

Every chat workflow you can call from the API, the console or an assistant, who may call it, the end-user entry points, and the console Chat tab

Every chat operation is a workflow. A workflow is callable from the API, the console and the MCP server only when it is featured. The others are internal: they run inside the featured ones and answer a direct call with WORKFLOW_NOT_FEATURED. Featuring decides who may ask; the checks inside each workflow decide what comes back.

Reads

All reads resolve the space inside your organization, refuse another organization's space, and never return key material.

ReadInputsWho may callReturns
data.buzz.space.liststatusYour organizationYour chat spaces
data.buzz.space.getspace_uuid or identity_app_uuidYour organization, not end usersOne space
buzz.space.statusspace_uuid or identity_app_uuidYour organizationRelay readiness, member convergence, actors
data.buzz.member.listspace_uuid or identity_app_uuid, status, relay_stateYour organization, not end usersMembers with moderation, last seen and status codes
data.buzz.member.directoryspace_uuid or identity_app_uuid, channel_id, kind (all, actors, people), query, limit (1 to 200), offsetYour organization, or an end user who is an active member of their app's spacePeople and actors with names and roles, no platform ids
data.buzz.channel.listspace_uuid or identity_app_uuid, include_archivedYour organization, or an end user (their app, open channels)Channels, the relay URL and relay public key
data.buzz.theme.getspace_uuid or identity_app_uuid, which, versionYour organization, or an end user (published theme only)The theme document
data.buzz.member.channelsspace_uuid, member_uuidOrganization admins (people, not agents)The channels one member is in
data.buzz.attachment.listspace_uuid, status, limitOrganization admins (people, not agents)Attached actors, triggers, ceilings, replies in the last hour, and each one's responder settings
data.buzz.actor.commandsspace_uuid or identity_app_uuid, actor_public_key (or attachment_uuid for organization callers), localeYour organization, or an end user who can talk to that actor (through the commands entry point)The actor's slash commands: command, title, description, kind (read or write). No platform ids
data.buzz.inbound.listspace_uuid, status, attachment_uuid, staff_actor_uuid, limit (up to 200)Organization admins (people, not agents)The actor ledger, no message content
buzz.media.listspace_uuid, channel_id, limit, untilOrganization adminsFiles the recent messages of a channel carry
buzz.theme.validatedocumentYour organizationValidation result, no write
The last three admin reads refuse agent sessions. An actor that checks a space's health uses buzz.space.status, data.buzz.member.list, data.buzz.channel.list and data.buzz.member.directory instead.

Verbs for your organization

Started by a person in your organization. They refuse agents, agent sessions and end users unless the table says otherwise.

AreaWorkflows
Spacebuzz.space.enable, buzz.space.publish-chat, buzz.space.disable, buzz.space.delete
Themebuzz.theme.save-draft, buzz.theme.publish, buzz.theme.rollback
Membersbuzz.member.set-role, buzz.member.set-status, buzz.member.remove, buzz.member.rotate-key, buzz.member.reconcile, buzz.member.admin-set-display-name (admins)
Moderation (admins)buzz.member.timeout, buzz.member.clear-timeout, buzz.member.ban, buzz.member.unban, buzz.message.moderate-delete
Channelsbuzz.channel.create, buzz.channel.set-member, buzz.channel.archive
Actorsbuzz.actor.attach, buzz.actor.set-status, buzz.bridge.sync, buzz.actor.set-reply-principal and buzz.actor.set-responder (admins and owners, signed in as a person)
Actors speakingbuzz.actor.notify, buzz.actor.dm-open, buzz.message.post (optionally with a ui card). Also callable by the attached actor itself, as itself
Structured cardsbuzz.actor.post-view: a refreshable read card from the actor's DGI scope. Schedulable. See Cards, live updates and proactive posts
People (identity)identity.end-user.create, identity.end-user.invite, identity.end-user.bind-actor

End-user entry points

End users never start buzz.* types directly. buzz.space.enable publishes the chat's entry points as compositions exposed on your identity app, and the chat page calls those with the person's own token. Each one refuses a caller who is not the signed-in end user and any input that names someone else.

Entry pointWrapsUse
openbuzz.session.issueOpen the chat: relay URL, the person's chat credential for this session (revealed once), role, theme version, attachment settings
sign-outbuzz.session.revokeRevoke the person's chat sessions
themedata.buzz.theme.getThe published theme
channelsdata.buzz.channel.listChannels the person can see
membersdata.buzz.member.directoryPeople and actors to mention or DM
display-namebuzz.member.set-display-name"Your name in the chat"
channel-create, channel-update, channel-invitebuzz.channel.create-as-member, buzz.channel.update-as-member, buzz.channel.invite-memberMember-run channels, when member_channel_create is on
channel-join, channel-leavebuzz.channel.join, buzz.channel.leaveOpen channels, when member_channel_join is on
notificationsbuzz.member.set-notificationsThe person's missed-message email switch
commandsdata.buzz.actor.commandsThe / command palette of an actor with a DGI responder

A space created before an entry point existed gets it when you re-run buzz.space.enable, which adds only the missing ones (it runs buzz.space.publish-entrypoints, which you cannot start on its own).

If you build your own chat page, call these the same way: sign the person in with @orkestia/auth and start the exposed workflow with their token.

Internal, not callable

Everything else in buzz.* and data.buzz.* runs only inside the verbs above: the bridge's entry and config read, the actor reply run, the handoff, the notification scan, the step workflows of enable and delete, the entry-point publisher (buzz.space.publish-entrypoints), the card watchers that keep run cards and live cards current (buzz.actor.watch-run, buzz.actor.watch-card), and every data.buzz.* writer. The read that builds a card, dgi.view.render, runs inside buzz.actor.post-view and card refreshes. You will see them in run histories; you cannot start them.

The console Chat tab

Open an identity app in the console and choose Chat.

PartWhat it does
Status and setupEnable the chat, see relay readiness, publish the chat page and open it
Theme editorEdit the theme with a live preview; save draft, publish, history and rollback
Members (Membros) → MembersThe roster with status, moderation and last seen, and actions per person: role, name, timeout, ban, suspend, remove, rotate key
Members → Invite (Convidar)Create and invite end users by email
Members → Actors (Atores)Attach, pause and detach actors, sync the bridge, and switch an actor's reply mode. Responders (Staff, DGI, hybrid) are set with buzz.actor.set-responder
Members → Maintenance (Manutenção)Reconcile the roster and repair display names
Members → Activity (Atividade)The actor ledger: what woke each actor and what happened

The console calls the same workflows listed on this page, so anything you do there shows up in your run history.

Ask your AI assistant

prompts
List every featured workflow under buzz. and data.buzz. with list_workflow_types, and group them into reads, organization verbs and end-user entry points.

Show me the input schema of buzz.actor.attach with get_workflow_schema and explain each field.

For my identity app "<app name>", run buzz.space.status and data.buzz.space.get and summarize the space: status, relay, members and actors.

For AI agents

RuleDetail
Discoverlist_workflow_types(prefix="buzz.") and prefix="data.buzz.". Only featured: true types are startable
Safe readsThe reads above are read-only. Admin reads refuse agent sessions; fall back to buzz.space.status and data.buzz.member.list
End-user typesTypes marked end_user_eligible run for end users only through the app's entry points
NeverLook for a workflow that reads messages or returns a chat key to an organization caller. Neither exists