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
Get install link
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 inlist.
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. 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 frompending 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:
- Call
own-app-createand opencreate_urlto create the app in Slack from the manifest. - Call
own-app-savewith the App ID, Client ID, Client Secret and Signing Secret from the app’s settings in Slack. - Share
https://helpgenie.ai/connect/slack/install/{id}. A test install from that link setsstatustoready. - When
needs_updateistrue, apply the newmanifestin Slack and callown-app-savewithmanifestUpdated: true.
The own app object
Returned byown-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 andcreate_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 topending 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. 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 receiveFORBIDDEN. 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
Resolve an own app install link
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

