Huddo (Cross-App) Tools¶
The huddo_* tools work across Huddo apps: they tell an assistant who the user is and what's installed, catch the user up on recent activity, work out what a pasted URL points to, and handle comments, links and files on pages, ideas and spaces alike.
huddo_whoami is in the core tool group. The rest are in the crossapp group.
huddo_whoami¶
Tells the assistant who the signed-in user is and which Huddo apps this install has. Assistants are told to call it first, since its app list says which other tools apply.
Read-only · Needs: Huddo
This tool takes no parameters.
Returns: the user's id, name, email and locale; their current organisation (id, name and role); up to 10 orgs they belong to, with their role in each; and apps, the installed apps with their URLs.
Example: "Which Huddo apps do I have access to?"
huddo_resolve¶
Works out what a Huddo URL points to: the app, the kind of thing (page, wiki, whiteboard, lab, idea, space or link), its ids, and its title. Every tool that takes a url does this for itself, so assistants use this tool mainly to check a link before deciding what to do with it.
Read-only · Needs: Huddo
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | Yes | A Huddo URL, up to 2,048 characters |
Returns: outcome and, depending on it, the app, type, ids, slugs and title:
resolved: the URL is a Huddo object and the app confirmed it.parsed: the URL has a known Huddo shape, but there's no tool to read that kind of object yet.unresolvable: the URL isn't a Huddo object, for example a URL on another site.
Example: "What is this link? https://connections.example.com/huddo/wikis/..."
huddo_recent¶
What the user opened or worked on lately across Huddo, newest first: links they opened, wiki pages, ideas and labs, and spaces they visited.
Read-only · Needs: Huddo (each app is included only when it's installed)
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
limit |
integer | No | 20 | 1 to 50 |
Returns: items, each with app, type, title, url and at (when); apps, the apps that were checked; and unavailable, any app that couldn't be read just now (the others are still listed).
Example: "Where was I yesterday? Show me what I was working on."
huddo_digest¶
The user's week in one call: their newest unread notifications, and for each of their most recently visited spaces, the wiki page changes and the activity in its active idea labs since a date.
Read-only · Needs: Notifications (wiki changes need Wikis, lab activity needs Ideas, and spaces need Spaces)
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
since |
date or date-time | No | A week ago | Where wiki changes and lab activity start. It doesn't limit the inbox |
spaces |
array of strings | No | Up to 3 space slugs. Without it, the user's 3 most recently visited spaces |
Returns:
since, the start date.inbox:unreadTotal, the number of all unread notifications, and the newest unreaditems, however old, up to 8 (type, title, URL).spaces: for each space, itsnameandurl; up to 5 recent pagechanges(what changed, which page and wiki, by whom and when); and up to 2 activelabs, each with itsquestion,url,newIdeas(the number of new ideas sincesince) andmostVotedSince, a list holding the idea with the most votes cast or changed sincesince, with itsid,title,votesandurl(left out when there's no such idea).unavailable: any part that couldn't be read, for example because an app isn't installed. The rest of the digest is still returned.
Example: "Give me my weekly digest."
huddo_get_comments¶
Reads the comments on an idea, a space's feed or a wiki page. A wiki page can have several threads: comments on the page as a whole, and inline comments on a passage of text.
Read-only · Needs: Discussions
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | No | The URL of the idea, space or page | |
app |
string | No | Instead of url: ideas, spaces or wikis |
|
type |
string | No | Instead of url: idea, space or page |
|
id |
string | No | Instead of url: the idea id, the space slug or the page id |
|
discussionId |
id | No | Read one thread of a wiki page on its own (from an earlier answer) | |
messages |
integer | No | 20 | 1 to 50. The number of newest posts to return |
offset |
integer | No | 0 | Newest posts to skip, to read older ones. Pass nextOffset from an earlier answer |
maxChars |
integer | No | 1,000 | 100 to 10,000. The most characters of each message |
totalChars |
integer | No | 20,000 | 1,000 to 60,000. The most characters returned in total |
Give either url, or app, type and id.
Returns: the title and url of what was commented on, and the messages, newest post first. Each message has its text as Markdown, author, time, reactions and up to the last 10 replies. For a wiki page, up to 20 threads, page threads first, then inline ones (with the quoted text), each with its discussionId. truncated and nextOffset say when there are more.
Example: "What are people saying in the comments on the Q3 roadmap page?"
huddo_comment¶
Posts a comment on an idea, a space's feed or a wiki page, or replies to an existing comment. The people in mentionUserIds are mentioned and notified.
Write · Needs: Discussions
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | No | The URL of the idea, space or page | |
app |
string | No | Instead of url: ideas, spaces or wikis |
|
type |
string | No | Instead of url: idea, space or page |
|
id |
string | No | Instead of url: the idea id, the space slug or the page id |
|
discussionId |
id | No | Wiki pages only: the thread to post in. Without it, each comment starts a new thread | |
replyTo |
id | No | A message to reply to. On a wiki page, also give discussionId |
|
body |
string | Yes | Markdown, 1 to 20,000 characters. Headings, images and tables become plain text | |
mentionUserIds |
array of user ids | No | None | Up to 20 people to mention, for example from core_find_people |
Returns: discussionId, messageId, parentMessageId (for a reply), url, and unresolvedMentions, any id that couldn't be mentioned because it isn't a known person.
Example: "Reply to Sam's comment on that idea saying we'll trial it next sprint, and mention Priya."
huddo_link¶
Adds a link from a page, idea, lab or space to any web address, so it shows among that object's links and its clicks are counted. The user needs edit rights on the object.
Write · Needs: Links
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | No | The Huddo URL of the object to add the link to | |
service |
string | No | Instead of url: wikis, ideas, spaces or links |
|
objectType |
string | No | Instead of url: the kind of object |
|
objectId |
string | No | Instead of url: the object's id |
|
to |
URL | Yes | The http or https address to link to |
|
title |
string | No | Up to 300 characters |
Returns: the link's refId (used by huddo_unlink), slug, url, title and source, and the object it was added to.
Example: "Add a link to our design spec on the Onboarding space."
huddo_unlink¶
Removes a link that was added with huddo_link (or by hand in Huddo). Links that come from an object's content can't be removed this way; they go when the content changes. Only the link's place on that object is removed: the address's other places and its click counts stay.
Delete · Needs: Links
The user must have added the link and be able to contribute to the object, or be able to edit the object. The link can be added again, but the removal itself can't be undone.
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
refId |
id | Yes | The link's ref id, from huddo_link or huddo_related |
Returns: deleted and the refId.
Example: "Remove the old Confluence link from the Onboarding space."
huddo_related¶
What's related to a page, idea, lab or space: the links it holds, the other objects that link to it (backlinks), and, given a query, search results from inside it (within a page and the pages under it, or within a lab).
Read-only · Needs: Links (searching inside also needs Search)
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | No | The Huddo URL of the object | |
service |
string | No | Instead of url: wikis, ideas, spaces or links |
|
objectType |
string | No | Instead of url: the kind of object |
|
objectId |
string | No | Instead of url: the object's id |
|
query |
string | No | Words to search for inside the object, up to 1,000 characters | |
include |
array of strings | No | links, backlinks and search |
Any of links, backlinks and search |
Returns: the object; up to 20 links (title, URL, kind, source, and the refId of links that were added by hand); up to 20 backlinks (title, where it is, URL); and up to 10 search results.
Example: "What links to the Incident Response page?"
huddo_upload_file¶
Attaches a file to a wiki page, an idea or a space, and returns a link to put in a page, idea or comment. Attach the file to the object that will show it: a file belongs to the object it's attached to, so people who can't see that object can't see the file, and it goes when that object is deleted.
Write · Needs: file attachments
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
url |
URL | No | The URL of the page, idea or space | |
app |
string | No | Instead of url: ideas, spaces or wikis |
|
type |
string | No | Instead of url: idea, space or page |
|
id |
string | No | Instead of url: the idea id, the space slug or the page id |
|
discussionId |
id | No | Instead of the above: a comment thread. The file goes on the page, idea or space it belongs to | |
filename |
string | Yes | 1 to 255 characters, with no characters that file names can't hold, such as /, \ or : |
|
mimeType |
string | Yes | One of the accepted types below | |
content |
string | Yes | The file, base64-encoded. Up to 10 MiB once decoded | |
description |
string | No | Up to 2,000 characters |
Accepted types: PNG, JPEG, GIF and WebP images (image/png, image/jpeg, image/gif, image/webp), PDF (application/pdf), Word, Excel and PowerPoint (.docx, .xlsx, .pptx), plain text (text/plain), CSV (text/csv), Markdown (text/markdown) and JSON (application/json).
Returns: fileId, url, markdown (an image or link to paste into Markdown) and attachedTo, where the file lives.
Example: "Add this architecture diagram to the System Overview page."
huddo_delete_file¶
Permanently deletes an uploaded file. Anywhere the file is shown, such as an image on a page or a link to it, breaks. The user needs edit rights on the object the file belongs to.
Delete · Needs: file attachments
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
fileId |
id | Yes | From huddo_upload_file |
|
confirmFilename |
string | Yes | The file's exact name. A name that doesn't match is refused |
Returns: deleted, fileId, filename and attachedTo.
Example: "Delete the draft-diagram.png I uploaded to the System Overview page."