Skip to main content
Chat channels let a genie answer customers inside their own Slack workspace or Microsoft Teams organization. The genie owner shares an install link; each customer workspace that installs it gets that genie added. A workspace can hold several genies, including genies from different owners, through one shared Help Genie app. Each genie answers under its own name. Once connected, the genie answers direct messages, mentions and follow-ups in a thread. Each genie can be paused, resumed or disconnected in each workspace on its own, without affecting the other genies there. On a paid plan, a genie can also have its own Slack app: a Slack app the owner creates in their own Slack account, with the genie’s name, so customers install a branded bot instead of the shared Help Genie app. See Own Slack app.
Microsoft Teams is experimental and intended for business accounts.
All actions except slack-oauth, teams-oauth and own-app-install-url require access to the genie (owner, team member with access, or admin). Callers without access receive UNAUTHORIZED. Creating, changing or removing an own Slack app is limited to the genie’s owner and admins.

List connected workspaces

Returns the Slack workspaces and Teams organizations a genie is connected to, newest first.
string
required
Must be "chat-channels"
string
required
Must be "list"
object
required
boolean
Whether the request succeeded.
array

Returns the shareable link that adds this genie to a customer’s Slack workspace or Teams organization. For Slack, the link installs the shared Help Genie app; for Teams, it opens a Microsoft sign-in, after which the genie is connected to the person’s organization. If the app is already there, the genie is added alongside the existing ones. Share it with customers; each workspace that installs it appears in list. The link of a genie’s own Slack app is separate: https://helpgenie.ai/connect/slack/install/{appId}, using the id from own-app-get. The link does not expire. Control access per workspace with set-paused and disconnect.
string
required
Must be "chat-channels"
string
required
Must be "install-link"
object
required
boolean
Whether the request succeeded.
object

Pause or resume a workspace

Pauses or resumes the genie in one connected workspace. A paused genie stays added to the workspace but does not answer. Other genies in the same workspace are unaffected.
string
required
Must be "chat-channels"
string
required
Must be "set-paused"
object
required
boolean
Whether the request succeeded.
object
The updated workspace connection, with the same fields as a list item. Returns NOT_FOUND when the connection does not belong to this genie.

Disconnect a workspace

Removes the genie from a customer’s Slack workspace or Teams organization. Other genies in that workspace keep answering. In Slack, when no other genie is left there, the app is also uninstalled from the workspace, so the bot does not stay behind without answering. In Teams, only the customer can remove the app itself.
This action is destructive. The customer has to use the genie’s install link again to add it back.
Succeeds silently when the connection does not exist or does not belong to this genie.
string
required
Must be "chat-channels"
string
required
Must be "disconnect"
object
required
boolean
Whether the request succeeded.
object

Own Slack app

A genie’s own Slack app lets customers install a bot with the genie’s name instead of the shared Help Genie app. The owner creates the app in their own Slack account from a ready-made manifest, then pastes its credentials back into Help Genie. The first finished install proves the credentials work and moves the app from pending to ready. Own apps need a paid plan on the genie owner’s account (or, for a teammate’s genie, the team owner’s account). Admins are exempt. Setup flow:
  1. Call own-app-create and open create_url to create the app in Slack from the manifest.
  2. Call own-app-save with the App ID, Client ID, Client Secret and Signing Secret from the app’s settings in Slack.
  3. Share https://helpgenie.ai/connect/slack/install/{id}. A test install from that link sets status to ready.
  4. When needs_update is true, apply the new manifest in Slack and call own-app-save with manifestUpdated: true.

The own app object

Returned by own-app-get, own-app-create and own-app-save. Secrets are never returned.
string
Own app ID. Used in the install link /connect/slack/install/{id}.
string
"pending" until a test install succeeds with the saved credentials, then "ready".
string | null
The App ID saved from Slack.
string | null
The Client ID saved from Slack.
boolean
Whether both the Client Secret and the Signing Secret are saved.
boolean
true when a ready app was set up from an older manifest or is missing permissions the genie now needs. Apply the current manifest in Slack, then call own-app-save with manifestUpdated: true.
object
The Slack app manifest for this genie: its name, bot user, permissions, and the event and interactivity URLs that connect it to Help Genie.
string
Link that opens Slack’s “create app” page with the manifest filled in.

Get own Slack app

Returns the genie’s own Slack app, if it has one, and whether the caller may set one up.
string
required
Must be "chat-channels"
string
required
Must be "own-app-get"
object
required
boolean
Whether the request succeeded.
object

Start an own Slack app

Starts setting up the genie’s own Slack app and returns its manifest and create_url. Returns the existing app when the genie already has one. Genie owner or admin only (UNAUTHORIZED otherwise). Returns FORBIDDEN without a paid plan.
string
required
Must be "chat-channels"
string
required
Must be "own-app-create"
object
required
boolean
Whether the request succeeded.
object
The own app object, with status: "pending" for a new app.

Save own Slack app

Saves the credentials pasted from the app’s settings in Slack, or records that the owner applied the latest manifest. A secret left blank keeps the stored one. Changing the App ID or Client ID means a different Slack app: both secrets are required again, and the app returns to pending until a new test install succeeds. Genie owner or admin only (UNAUTHORIZED otherwise). Returns FORBIDDEN without a paid plan and NOT_FOUND when the genie has no own app yet (call own-app-create first).
string
required
Must be "chat-channels"
string
required
Must be "own-app-save"
object
required
boolean
Whether the request succeeded.
object
The updated own app object.

Remove own Slack app

Uninstalls the genie’s own Slack app from every customer workspace, then deletes its credentials and those workspace connections. A workspace that refuses the uninstall does not block the removal. Workspaces using the shared Help Genie app are not affected.
This action is destructive. Customers who installed the own app lose the genie; the owner has to set the app up again to restore it.
Genie owner or admin only (UNAUTHORIZED otherwise). Succeeds silently when the genie has no own app.
string
required
Must be "chat-channels"
string
required
Must be "own-app-remove"
object
required
boolean
Whether the request succeeded.
object

List all own Slack apps (admin)

Returns every genie’s own Slack app with its health, worst first, then newest first. Admin only; other callers receive FORBIDDEN. Secrets are never returned.
string
required
Must be "chat-channels"
string
required
Must be "own-app-admin-list"
boolean
Whether the request succeeded.
object

Complete a Slack install

Finishes a Slack install after the customer approves the app in Slack. Called by the /connect/slack/callback page with the values Slack returns. Adds the genie named in the install link to the customer’s workspace, alongside any genies already there. The same action finishes installs of a genie’s own Slack app. The first successful install marks the own app ready. If the credentials answer for a different Slack app than the saved App ID, the install is undone and VALIDATION_ERROR is returned. This action is public: it accepts a public request (no API key) as well as a signed-in session. Reinstalling a genie that is already in the workspace refreshes the connection. After the install, the installer gets a direct message from the app. If this is the only genie in the workspace, it greets them; if there are several, they are asked which genie they want to talk to.
string
required
Must be "chat-channels"
string
required
Must be "slack-oauth"
object
required
boolean
Whether the request succeeded.
object

Complete a Teams install

Finishes connecting a genie to a Microsoft Teams organization after the customer signs in with Microsoft. Called by the /connect/teams/callback page with the values Microsoft returns. Adds the genie named in the install link to the organization the person signed in with, alongside any genies already there, then installs the app for that person so the genie is waiting in Teams. This action is public: it accepts a public request (no API key) as well as a signed-in session. If Microsoft refuses to install the app for the person (for example, because their organization restricts app installs), the genie stays connected and installed is false; addUrl then lets them add the app themselves. When the install succeeds, the genie greets them in a personal chat.
string
required
Must be "chat-channels"
string
required
Must be "teams-oauth"
object
required
boolean
Whether the request succeeded.
object

Resolves the install link of a genie’s own Slack app to the app’s Slack authorize page. Called by the /connect/slack/install/{chatAppId} page on each visit, so the link keeps working when the owner replaces the app’s credentials. This action is public: it accepts a public request (no API key) as well as a signed-in session. Returns NOT_FOUND for an unknown app, or until its Client ID is saved.
string
required
Must be "chat-channels"
string
required
Must be "own-app-install-url"
object
required
boolean
Whether the request succeeded.
object

Error codes