- Brand
- Riido
- Category
- Productivity
- Primary Subcategory
- Project & Task Management Platforms
Integration details
Description
Riido helps users inspect workspaces and teams, manage components, backlogs, and meetings, and update meeting bodies, links, board entries, statuses, labels, members, priorities, and comments through authenticated Riido workflows.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Project & Task Management Platforms
- Secondary Subcategories
- None listed
- Brand
- Riido
- Access
- Account required
- First tracked
- 2026-07-20
- Tool count
- 55
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Agent DiscoverabilityChatGPT Discoverability ScoreUpdated dailyThe first to track the ChatGPT, Claude, Muse, Grok & Google ecosystems, with the largest database on the core platforms. Tracked daily since .
0/100
Invisible#84of 96
in Project & Task Management Platforms- Picked
- 0.0/100
- Found
- 0.0/100
- Positioned
- –/100
Category leaderboard
Project & Task Management Platforms
- 1A
Asana51
- 2L
Linear48
- 3A
Atlassian Rovo (Legacy)43
- 4M
monday.com28
- 84R
Riido0
Get alerts for Riido
Get updates when Riido’s Discoverability Score or category rank changes.
Competing in ChatGPT Project & Task Management Platforms
View Category55 tools agents can invoke
Add a new backlog to a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: You MUST follow these steps in order and ask the user at each step if the information is not already provided. Do NOT skip steps or assume values. 1. Call list_my_workspaces -> show the list to the user -> ask which workspace to use 2. Call list_teams(workspace_id) -> show the list to the user -> ask which team to use 3. Call list_backlog_sections(team_id) -> show the list to the user -> ask which section to use 4. Ask the user for the backlog title if not provided 5. Only then call this tool with all confirmed values Args: team_id: The team ID to add the backlog to (from list_teams, confirmed by user) title: Title of the backlog (confirmed by user) backlog_section_id: The section ID to place the backlog in (from list_backlog_sections, confirmed by user) Returns: Dict with backlogId and title.
Add a label to an existing backlog. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: Identify the target backlog first. Ask the user: "Which backlog? Provide a Riido page URL or I'll look it up step by step." Then call list_team_labels to show available labels and ask the user to select. Note: Only labels with status 'active' can be added. Args: team_id: The team ID containing the backlog (confirmed by user) backlog_id: The ID of the backlog to add label to (confirmed by user) label_id: The ID of the label to add (confirmed by user from list_team_labels) Returns: Dict with success status.
Add a new backlog section to a specific team. Requires: OAuth 'write' scope IMPORTANT - If team_id is not already known: Ask the user: "Which team? Provide a Riido URL or I'll look it up (workspace → team)." Also confirm the section name with the user before creating. Backlog sections are organizational containers for grouping backlogs. Each backlog must belong to a section. Args: team_id: The team ID to add the section to (from list_teams) section_name: Name of the new section Returns: Dict with sectionId of the newly created section.
Add a new component to a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: You MUST follow these steps in order and ask the user at each step if the information is not already provided. Do NOT skip steps or assume values. 1. Ask the user: "Do you have a Riido page URL, or should I look up the workspace and team?" - If URL provided: extract workspace_id, team_key from URL pattern /{workspace_id}/teams/{team_key}/... then use list_teams to find the matching team_id - If no URL: proceed to step 2 2. Call list_my_workspaces -> show the list to the user -> ask which workspace to use 3. Call list_teams(workspace_id) -> show the list to the user -> ask which team to use 4. Ask the user for the component type (project, milestone, task, subtask) and title 5. For non-PROJECT types, call list_components to show existing parents and ask the user to select 6. Only then call this tool with all confirmed values Component hierarchy: PROJECT > MILESTONE > TASK > SUBTASK Component creation rules: - PROJECT: Only requires componentType and title - MILESTONE: Requires projectId (from existing project) - TASK: Requires milestoneId (from existing milestone) - SUBTASK: Requires both milestoneId and taskId (from existing task) Args: team_id: The team ID to add the component to (confirmed by user) component_type: Type of component - must be one of: project, milestone, task, subtask title: Title/name of the component (confirmed by user) project_id: Required for milestone, task, and subtask components milestone_id: Required for task and subtask components task_id: Required for subtask components only end_date: Optional end date in ISO format (YYYY-MM-DDTHH:MM:SS) content: Optional HTML content for the component compatible with Tiptap editor. This field should contain the main content description including: - Task summary and detailed description - Action plan or schedule - Key objectives and deliverables - Any other description the user provides - At minimum, create a TL;DR style description of the task - Use the language of the user's request, or the user's preferred language in chat The content should be formatted as HTML with Tiptap-compatible elements like <p>, <h1>, <h2>, <h3>, <ul>, <li>, <strong>, tags, etc. Returns: Dict with componentId, title, keyNumber, and branchName. IMPORTANT: The branchName in the response is a GitHub branch name that should be used for this component. Make sure to inform the user to copy this branch name and create the branch in their Git repository.
Add a comment to a component. Requires: OAuth 'write' scope Thin wrapper over POST /teams/{team_id}/components/{component_id}/comments with body {"body": body, "parentId": parent_id}. It does not format or summarize report content. Args: team_id: The team ID containing the component component_id: The ID of the component body: Comment body accepted by the API parent_id: Optional parent comment ID for a reply Returns: Dict with success status and API response payload when present.
Add a label to an existing component in a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: Identify the target component first. Ask the user: "Which component? Provide a Riido page URL or I'll look it up step by step." Then call list_team_labels to show available labels and ask the user to select. This tool allows you to add labels to components for better organization and categorization. Labels help identify component types, priorities, status, or any custom categorization your team uses (e.g., 'urgent', 'backend', 'customer request', 'bug', 'feature'). The tool automatically retrieves the component details to determine its type and build the correct URL based on ComponentType (project -> /projects/, milestone -> /milestones/, task/subtask -> /tasks/). Use list_components to get existing component IDs. Use list_team_labels to get available label IDs for the team. Note: Only labels with status 'active' can be added to components. Args: team_id: The team ID containing the component (from list_teams) component_id: The ID of the component to add label to (from list_components) label_id: The ID of the label to add (from list_team_labels) Returns: Dict with success status and label addition confirmation. API returns 201 on successful label addition. Includes component URL that varies based on component type.
Add a member to a component using the Riido API's native behavior. Requires: OAuth 'write' scope Guarded thin wrapper over POST /teams/{team_id}/components/{component_id}/members with body {"memberId": member_id}. API behavior by component type: - project: replaces the existing single project owner - task/subtask: appends the member; existing member is idempotently skipped - milestone: rejected by this MCP wrapper because milestones have no assignees This tool performs only transport-level referential guards. AI-driven assignment is restricted to active TeamMembers in the route team. Cross-team assignment, even when Riido API permits it, must be done manually in Riido. Workflow policy remains client-owned. Args: team_id: The team ID containing the component component_id: The ID of the component member_id: The team member ID to add Returns: Dict with success status and API response payload when present.
Add an agenda, note, decision, or action entry to a meeting board.
Attach an explicitly named web link to a meeting. ``name`` is required so the MCP server never needs to fetch arbitrary page HTML to guess a title. Riido may fetch a favicon through its icon provider.
Archive a component. Requires: OAuth 'write' scope Thin wrapper over POST /teams/{team_id}/components/archives with {"archiveType": "archive", "componentId": component_id, "componentType": component_type}. It does not confirm destructive intent. Args: team_id: The team ID containing the component component_id: The ID of the component component_type: Component type accepted by the API Returns: Dict with success status and API response payload when present.
Convert a backlog into a component (project, milestone, or task). Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: This is a significant action. Follow these steps and ask the user at each step: 1. Identify the backlog to convert. Ask the user: "Which backlog do you want to convert? Provide a Riido page URL or I'll look it up step by step." If no URL: list_my_workspaces → list_teams → list_backlog_sections → list_backlogs to find it 2. Ask the user: "What component type should this become? (project, milestone, task)" 3. For non-PROJECT types, call list_components to show existing parents and ask user to select 4. Confirm with the user before converting: "Convert backlog '{title}' to {component_type}?" 5. Only then call this tool Component hierarchy: PROJECT > MILESTONE > TASK. Backlog conversion does not support SUBTASK because the API accepts only one parent_id. The backlog will be marked as "conversed" after conversion. Args: team_id: The team ID containing the backlog (confirmed by user) backlog_id: The ID of the backlog to convert (confirmed by user) component_type: Target component type - must be one of: project, milestone, task parent_id: Optional parent component ID. Required for milestone (projectId), task (milestoneId). Omit for project. Returns: Dict with componentId, title, keyNumber, and branchName of the created component. IMPORTANT: The branchName in the response is a GitHub branch name that should be used for this component. Make sure to inform the user to copy this branch name.
Create a Riido meeting. This may synchronize the meeting to Google Calendar and notify participants according to the user's Riido integration settings.
Create a dated meeting by copying a team meeting template.
Create or replace the repeat schedule for an existing meeting template. Requires OAuth read and write scopes. Read list_meeting_templates to verify the template and its current repeat schedule. Use the user's requested template, start date, timezone and repeat rule. An existing rule is overwritten, not extended. The change can create or remove generated meeting instances as the schedule is reconciled, and synchronize recurring events in connected calendars. ``repeat_type`` is daily, weekly, or monthly. Weekly recurrences require ``days_of_week`` using Riido's numeric day strings (0 through 6).
Convert a meeting-board entry to a Riido project, milestone, or task. Milestones require a project ``parent_id`` and tasks require a milestone ``parent_id``. Subtasks cannot be created from meeting-board entries.
Delete a backlog from a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: Identify the target backlog first. Ask the user: "Which backlog do you want to delete? Provide a Riido page URL or I'll look it up step by step." ALWAYS confirm with the user before deleting: "Are you sure you want to delete backlog '{title}'?" Args: team_id: The team ID containing the backlog (confirmed by user) backlog_id: The ID of the backlog to delete (confirmed by user) Returns: Dict with success status.
Remove a label from an existing backlog. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: Identify the target backlog first. Ask the user: "Which backlog? Provide a Riido page URL or I'll look it up step by step." Show current labels on the backlog (via get_backlog) and ask the user which to remove. Args: team_id: The team ID containing the backlog (confirmed by user) backlog_id: The ID of the backlog to remove label from (confirmed by user) label_id: The ID of the label to remove (confirmed by user) Returns: Dict with success status.
Delete a backlog section from a specific team. Requires: OAuth 'write' scope IMPORTANT - If team_id is not already known: Ask the user: "Which team? Provide a Riido URL or I'll look it up (workspace → team)." WARNING: Deleting a section may affect backlogs within it. Args: team_id: The team ID containing the section (from list_teams) section_id: The section ID to delete (from list_backlog_sections) Returns: Dict with success status.
Soft-delete a component. Requires: OAuth 'write' scope Thin wrapper over DELETE /teams/{team_id}/components/{component_id}. The API performs the delete semantics. This tool does not ask for confirmation; clients must confirm before calling. Args: team_id: The team ID containing the component component_id: The ID of the component to delete Returns: Dict with success status and API response payload when present.
Delete a meeting after the user has explicitly confirmed the target. Riido may also delete the corresponding connected-calendar event.
Delete a meeting-board entry after the user confirms the target.
Get detailed information about a single backlog. Requires: OAuth 'read' scope IMPORTANT - Identifying the backlog: If the user hasn't provided team_id and backlog_id, ask: "Which backlog? You can provide a Riido page URL or I'll look it up step by step (workspace → team → backlog list)." Extract IDs from URL if provided, otherwise follow the step-by-step lookup. This tool retrieves comprehensive information about a backlog, including: - Basic details (title, description, importance, urgency, estimate) - Section information (which section it belongs to) - Dates (expectedStartingDate, createdAt, updatedAt) - Document content (if available) - Assigned team member - Labels and voters - Created by / last updated by info Args: team_id: The team ID containing the backlog (from list_teams) backlog_id: The ID of the backlog to retrieve (from list_backlogs) Returns: Dict with comprehensive backlog information including section, assignee, labels, voters, document.
Get detailed information about a single component. Requires: OAuth 'read' scope IMPORTANT - Identifying the component: If the user hasn't provided team_id and component_id, ask: "Which component? You can provide a Riido page URL or I'll look it up step by step (workspace → team → component list)." Extract IDs from URL if provided, otherwise follow the step-by-step lookup. This tool retrieves the most comprehensive information available about a component, including: - Basic component details (title, description, dates, status) - Component type and hierarchy relationships (project, milestone, task, subtask) - Team members assigned to the component - Labels and their details - Status information with color coding - Document content (if available, in HTML format) - Creation and modification history - Priority scores and component settings - Notification subscription status Use list_components to get existing component IDs. Use list_teams to get valid team IDs. Args: team_id: The team ID containing the component (from list_teams) component_id: The ID of the component to retrieve (from list_components) Returns: Dict with comprehensive component information including all nested data. API returns 200 on successful retrieval. Includes component URL that varies based on component type.
Get priority rows for one component. Requires: OAuth 'read' scope Thin wrapper over GET /teams/{team_id}/components/{component_id}/priorities. The returned component priority row IDs are the IDs accepted by update_component_priority; they are not the same as team priority IDs. Args: team_id: The team ID containing the component component_id: The ID of the component Returns: Dict containing priority row data.
Read a Riido detail page's current collaborative editor body as HTML. Requires OAuth read scope. resource_id is the component/backlog/intake/meeting ID, not the document record ID. Existing REST guards verify document access. Returns content, format, revision and document_id. Read before editing and pass the returned revision to update_document_body. Empty content is a known empty document; unavailable content is an error, never an empty fallback.
Get a meeting with its body, participants, board entries, links, and relations. Read the saved editor HTML from ``document.HTMLContent``. A null value means the provider has no HTML snapshot; an empty string means an empty snapshot.
Get the authenticated user's profile from Riido API. Requires: OAuth 'read' scope Returns: A dictionary containing the user's profile information including: - id: User's unique identifier - username: User's display name - email: User's email address - Additional profile fields
Link an existing Riido work item to a meeting.
Get all backlog sections within a specific team. Requires: OAuth 'read' scope IMPORTANT - If team_id is not already known: Ask the user: "Which team's backlog sections? Provide a Riido URL or I'll look it up (workspace → team)." Backlog sections are organizational containers for backlogs. You MUST use this tool first to get a valid backlogSectionId before creating a backlog. Args: team_id: The team ID to get backlog sections for (confirmed by user) flat: If true, returns a flat list of sections without nested backlogs (default: false) Returns: A dictionary containing: - sections: List of section objects with id, sectionName, sectionOrder, status, backlogsCount - team_id: The team ID queried - count: Number of sections
Get backlogs within a specific team with pagination, filtering, and sorting. Requires: OAuth 'read' scope IMPORTANT - If team_id is not already known: Ask the user: "Which team's backlogs? Provide a Riido URL or I'll look it up (workspace → team)." Args: team_id: The team ID to get backlogs for (from list_teams) section_id: Required section ID to list backlogs from (from list_backlog_sections) order_by: Optional sort field. One of: createdAt, title, importance, urgent, expectedStartingDate, assignee, votes order_by_option: Optional sort direction: ASC or DESC page: Page number for pagination (default: 1) limit: Number of backlogs per page (default: 20) query: Optional search query to filter backlogs by title Returns: A dictionary containing: - backlogs: List of backlog objects with title, importance, urgent, assignee, labels, votes, etc. - meta: Pagination metadata - team_id: The team ID queried
List top-level comments for a component. Requires: OAuth 'read' scope This is a guarded thin read wrapper for component comments. It verifies the component belongs to the route team before reading comments. It returns the comment bodies as stored by Riido and does not transform, summarize, mask, or interpret comment content. Args: team_id: The team ID containing the component component_id: The ID of the component page: Page number for pagination (default: 1) limit: Number of comments per page, 1..100 (default: 20) Returns: Dict containing comments, pagination metadata, and component context. Replies are not included; each top-level comment may include replyCount only.
Get components within a specific team with pagination support. Requires: OAuth 'read' scope This is typically the third step in the workflow: 1. list_my_workspaces -> get workspace IDs 2. list_teams -> get team IDs for a specific workspace 3. list_components -> get components for a specific team Args: team_id: The team ID to get components for (from list_teams) page: Page number for pagination (default: 1) limit: Number of components per page (default: 20) Returns: A dictionary containing: - components: List of component objects with detailed information including: - Basic info: id, createdAt, componentType, keyNumber, title, endDate, etc. - Counts: commentsCount, webLinksCount, filesCount - Relations: sprints, componentMembers, componentLabels, componentPriorities - Status, milestone, project, and parent task information - meta: Pagination metadata with total, currentPage, nextPage, prevPage, lastPage - team_id: The team ID queried
List meeting templates available in a Riido team.
Get all workspaces that the authenticated user has access to. Requires: OAuth 'read' scope This is typically the first step in the workflow: 1. list_my_workspaces -> get workspace IDs 2. list_teams -> get team IDs for a specific workspace 3. list_components -> get components for a specific team Returns: A dictionary containing: - workspaces: List of workspace objects - count: Number of workspaces
Get all team labels within a specific team. Requires: OAuth 'read' scope Team labels are used to provide additional info about components. The label IDs returned from this tool can be used in the add_component_label tool. Args: team_id: The team ID to get labels for (from list_teams) Returns: A dictionary containing: - labels: List of label objects - team_id: The team ID queried - count: Number of labels - usage_note: How to use these labels
Get all members in a specific team. Requires: OAuth 'read' scope This is a thin wrapper over GET /teams/{team_id}/members. It does not choose assignees or apply component-type policy. Args: team_id: The team ID to get members for (from list_teams) Returns: A dictionary containing: - members: List of team member objects - team_id: The team ID queried - count: Number of members - usage_note: These member IDs are route-team candidates for component member tools.
Get all team priorities in a specific team. Requires: OAuth 'read' scope This is a thin wrapper over GET /teams/{team_id}/priorities. It does not select a default priority or map task importance. Args: team_id: The team ID to get priorities for (from list_teams) Returns: A dictionary containing: - priorities: List of team priority objects - team_id: The team ID queried - count: Number of priorities - usage_note: Team priority IDs are not component priority row IDs.
Get all team statuses within a specific team. Requires: OAuth 'read' scope Team statuses correspond to components' status field (ex. done, in progress, etc.). The status IDs returned from this tool can be used in the update_component tool. Args: team_id: The team ID to get statuses for (from list_teams) Returns: A dictionary containing: - statuses: List of status objects - team_id: The team ID queried - count: Number of statuses - usage_note: How to use these statuses
Get all teams within a specific workspace. Requires: OAuth 'read' scope This is typically the second step in the workflow: 1. list_my_workspaces -> get workspace IDs 2. list_teams -> get team IDs for a specific workspace 3. list_components -> get components for a specific team Args: workspace_id: The workspace ID to get teams for (from list_my_workspaces) Returns: A dictionary containing: - teams: List of team objects - workspace_id: The workspace ID queried - count: Number of teams
Remove a label from an existing component. Requires: OAuth 'write' scope Thin wrapper over DELETE /teams/{team_id}/components/{component_id}/labels with body {"labelId": label_id}. It does not choose labels or enforce priority-label policy. Args: team_id: The team ID containing the component component_id: The ID of the component to remove the label from label_id: The ID of the label to remove Returns: Dict with success status and API response payload when present.
Remove one member from a component. Requires: OAuth 'write' scope Guarded thin wrapper over DELETE /teams/{team_id}/components/{component_id}/members with body {"memberId": member_id}. The member must already be assigned to this component. Current TeamMember status/team membership is not used for removal. Args: team_id: The team ID containing the component component_id: The ID of the component member_id: The team member ID to remove Returns: Dict with success status and API response payload when present.
Remove a meeting web link after the user confirms the target.
Search meetings in a Riido team. Requires OAuth ``read`` scope. Results are always scoped to ``team_id``. Use an empty query to list recent non-template meetings.
Unarchive a component. Requires: OAuth 'write' scope Thin wrapper over POST /teams/{team_id}/components/archives with {"archiveType": "unarchive", "componentId": component_id, "componentType": component_type}. Args: team_id: The team ID containing the component component_id: The ID of the component component_type: Component type accepted by the API Returns: Dict with success status and API response payload when present.
Remove a work-item relation from a meeting after confirmation.
Update an existing backlog in a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: Identify the target backlog first. Ask the user: "Which backlog do you want to update? You can provide: - A Riido page URL (e.g., https://app.riido.io/{workspace_id}/teams/{team_key}/backlogs/{backlog_id}) - Or I can look it up by workspace → team → backlog list" If URL provided: extract team_key and backlog_id from the URL, resolve team_id via list_teams. If no URL: follow step-by-step lookup: 1. Call list_my_workspaces -> ask user to select workspace 2. Call list_teams(workspace_id) -> ask user to select team 3. Call list_backlog_sections(team_id), then list_backlogs(team_id, section_id) for the selected section -> ask user to select backlog 4. Only then call this tool Updatable properties: - Title, description - Importance (0-5 scale) - Urgency (low, medium, high, critical) - Estimate (numeric) - Expected starting date - Section (move backlog to a different section — use list_backlog_sections to get valid IDs) - Assignee (team member ID) - Order position within section Args: team_id: The team ID containing the backlog (confirmed by user) backlog_id: The ID of the backlog to update (confirmed by user) title: Optional new title description: Optional description text importance: Optional importance level (0-5) urgent: Optional urgency level: low, medium, high, critical estimate: Optional estimate value expected_starting_date: Optional date in ISO format (YYYY-MM-DDTHH:MM:SS) backlog_section_id: Optional section ID to move the backlog to (from list_backlog_sections) assignee_id: Optional team member ID to assign backlog_order: Optional order position within the section Returns: Dict with success status and updated fields.
Update an existing backlog section. Requires: OAuth 'write' scope IMPORTANT - If team_id is not already known: Ask the user: "Which team? Provide a Riido URL or I'll look it up (workspace → team)." Args: team_id: The team ID containing the section (from list_teams) section_id: The section ID to update (from list_backlog_sections) section_name: Optional new name for the section section_order: Optional new order position for the section Returns: Dict with success status.
Update an existing component in a specific team. Requires: OAuth 'write' scope IMPORTANT - Required workflow before calling this tool: You MUST identify the target component before calling. Ask the user: "Which component do you want to update? You can provide: - A Riido page URL (e.g., https://app.riido.io/{workspace_id}/teams/{team_key}/tasks/{component_id}) - Or I can look it up by workspace → team → component list" If URL provided: extract team_key and component_id from the URL, then resolve team_id via list_teams. If no URL: follow the step-by-step lookup: 1. Call list_my_workspaces -> ask user to select workspace 2. Call list_teams(workspace_id) -> ask user to select team 3. Call list_components(team_id) -> ask user to select component 4. Only then call this tool Updatable properties: - Title: Change the component's name/title - Start Date: Set or update the component's start date - End Date: Set or update the component's end date - Status: Change the component's status (use list_team_statuses for valid IDs) - Estimate: Set or update the component estimate. The API accepts this field; clients should apply their own component-type policy before calling. Args: team_id: The team ID containing the component (confirmed by user) component_id: The ID of the component to update (confirmed by user) title: Optional new title for the component start_date: Optional start date in ISO format (YYYY-MM-DDTHH:MM:SS) end_date: Optional end date in ISO format (YYYY-MM-DDTHH:MM:SS) status_id: Optional status ID to change component status (from list_team_statuses) estimate: Optional numeric estimate value Returns: Dict with success status and updated component information including: - componentId, componentType, title, keyNumber, branchName from API response - Component URL that varies based on component type - API returns 200 on successful update
Update one component priority score. Requires: OAuth 'write' scope Thin wrapper over PATCH /teams/{team_id}/components/{component_id}/priorities/{component_priority_id} with body {"score": score}. component_priority_id must be the row id from get_component_priorities, not a team priority id. Args: team_id: The team ID containing the component component_id: The ID of the component component_priority_id: Component priority row ID from get_component_priorities score: Numeric priority score accepted by the API, normally 0..5 Returns: Dict with success status and API response payload when present.
Replace a Riido detail page's entire rich-text body on the current provider. Requires OAuth read and write scopes. Identify the target and confirm the replacement content with the user; their explicit editing request is authorization. First call get_document_body and use its revision as expected_revision. For a partial edit, preserve the rest of the returned HTML in the replacement. Use HTML to preserve Riido mentions, tables, details and other rich nodes. An empty content string clears the body. This is not the short description. Changes reach live editors. Success confirms the Yjs delta in stored state. History follows existing version coalescing; separate before/after versions are not guaranteed. Inspect previous_content, version_status, warnings and effects_pending for HTML/history/search follow-up failure. Do not resend an already persisted edit. On conflict or an unconfirmed write, re-read before retrying; never automatically overwrite with a newer revision. Meeting-template writes retain existing recurrence and calendar effects.
Riido ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Riido's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Riido alternatives on ChatGPT?
As of 2026-11-02, Riido competes with Asana, Linear, Atlassian Rovo (Legacy), monday.com, ClickUp, Trello, Smartsheet AU, Smartsheet EU and 87 more in ChatGPT Project & Task Management Platforms, ranked by public Discoverability Score.
Where does Riido rank in Project & Task Management Platforms on ChatGPT?
As of 2026-11-02, Riido ranks #84 of 96 in ChatGPT Project & Task Management Platforms with a Discoverability Score of 0/100 (Invisible).
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.