Rectify
by @umar-lateef
Manage tasks, columns, and documents on the Rectify platform via REST API. Use when the user asks about creating, updating, moving, deleting, or searching ta...
clawhub install rectify-skillπ About This Skill
name: rectify description: | Manage tasks, columns, and documents on the Rectify platform via REST API. Use when the user asks about creating, updating, moving, deleting, or searching tasks on the AgentPulse task board, or creating and managing Rectify Documents. Rectify is an all-in-one SaaS operations platform for bug reporting, session replays, uptime monitoring, code scanning, roadmaps, changelogs, and AI agent management. Triggers on: task board, kanban, create task, move task, assign task, list columns, documents, create document, update document, archive, sub-pages. user-invocable: true metadata: {"openclaw": {"emoji": "π", "requires": {"env": ["RECTIFY_PROJECT_TOKEN"]}, "primaryEnv": "RECTIFY_PROJECT_TOKEN"}}
Rectify AgentPulse β Task Board & Document Management
You have full CRUD access to the Rectify AgentPulse task board and Rectify Documents via REST API.
Rectify (https://www.rectify.so) is an all-in-one SaaS operations platform. AgentPulse is its AI agent management layer built on OpenClaw, providing task boards, agent coordination, and document management.
Authentication
All requests use your RECTIFY_PROJECT_TOKEN β no extra setup needed.
Required headers on every request:
x-api-token: $RECTIFY_PROJECT_TOKENTask Invoke URL: https://api.rectify.so/v1/agent-pulse/ai-tools/invoke
Doc Invoke URL: https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke
Board Context URL: https://api.rectify.so/v1/agent-pulse/ai-tools/board-context
Doc Context URL: https://api.rectify.so/v1/agent-pulse/ai-tools/document-context
Members URL: https://api.rectify.so/v1/agent-pulse/members
Security & Privacy
This skill sends requests to https://api.rectify.so only.
RECTIFY_PROJECT_TOKEN is a user-issued project token from app.rectify.soTask Board
List all columns
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "list_columns", "args": {}}'
List all tasks
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "list_tasks", "args": {}}'
List project members (for task assignment)
curl -s "https://api.rectify.so/v1/agent-pulse/members" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN"
> Returns { data: [{ id, name, email, image, role }] }. Use id as assignedMember when creating or updating tasks.
Create a task
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "create_task", "args": {"title": "TASK_TITLE", "description": "OPTIONAL_DESC", "priority": "low|medium|high", "columnId": "COLUMN_ID", "assignedAgent": "OPTIONAL_AGENT_NAME", "assignedMember": "MEMBER_USER_ID", "workspace": "OPTIONAL_WORKSPACE_PATH", "labels": ["optional"]}}'
> assignedAgent β OpenClaw agent name (e.g. "Atlas"). assignedMember β user ID from the members endpoint. workspace β full workspace path (optional).
Update a task
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "update_task", "args": {"taskId": "TASK_ID", "title": "NEW_TITLE", "description": "NEW_DESC", "priority": "low|medium|high", "assignedMember": "MEMBER_USER_ID", "workspace": "WORKSPACE_PATH"}}'
Move a task to another column
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "move_task", "args": {"taskId": "TASK_ID", "columnId": "TARGET_COLUMN_ID"}}'
Assign a task to an agent or member
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "assign_task", "args": {"taskId": "TASK_ID", "assignedAgent": "AGENT_NAME_OR_NULL", "assignedMember": "MEMBER_USER_ID_OR_NULL"}}'
> Pass null to unassign. Provide either or both fields.
Delete a task
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "delete_task", "args": {"taskId": "TASK_ID"}}'
Search tasks
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "search_tasks", "args": {"query": "SEARCH_TEXT", "priority": "high", "status": "in_progress", "assignedAgent": "AGENT_NAME"}}'
Create a column
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "create_column", "args": {"name": "COLUMN_NAME", "color": "#hex6"}}'
Delete a column (cascade deletes all tasks in it)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "delete_column", "args": {"columnId": "COLUMN_ID"}}'
Get board context (summary of all columns and tasks)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/board-context" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN"
Task Board Workflow
1. Always run list_columns first to get column IDs before creating or moving tasks.
2. If list_columns returns an empty array, create a default column (e.g. "To Do") using create_column before creating tasks.
3. Use column IDs (not names) when moving or creating tasks in a specific column.
4. To assign to a project member, call the members endpoint first to get user IDs.
5. When asked to delete a column, warn the user that all tasks inside will be permanently deleted, then proceed if confirmed.
6. After each action, briefly confirm what was done.
Rectify Documents
Rectify Documents is a separate feature from the task board. You have full CRUD access.
List documents
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "list_documents", "args": {}}'
List sub-pages of a document
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "list_documents", "args": {"parentDocument": "PARENT_DOC_ID"}}'
Get a document (with full content)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "get_document", "args": {"documentId": "DOC_ID"}}'
Search documents by title
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "search_documents", "args": {"query": "SEARCH_TEXT"}}'
Create a document
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "create_document", "args": {"title": "DOC_TITLE", "content": "MARKDOWN_CONTENT", "icon": "OPTIONAL_EMOJI", "isPublished": false, "parentDocument": "OPTIONAL_PARENT_DOC_ID"}}'
> title is required. content is plain markdown β do NOT include a # Title heading (title is a separate field). icon (emoji), isPublished (default false), and parentDocument (for sub-pages) are optional.
Update a document
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "update_document", "args": {"documentId": "DOC_ID", "title": "NEW_TITLE", "content": "MARKDOWN_CONTENT", "icon": "EMOJI", "isPublished": true}}'
> Write content as plain markdown. Do NOT include a # Title heading β the title is a separate field.
Archive a document (soft-delete, recursive)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "archive_document", "args": {"documentId": "DOC_ID"}}'
Restore a document
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "restore_document", "args": {"documentId": "DOC_ID"}}'
Delete a document (permanent)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/doc-invoke" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "delete_document", "args": {"documentId": "DOC_ID"}}'
Get document context (summary of all documents)
curl -s "https://api.rectify.so/v1/agent-pulse/ai-tools/document-context" \
-H "x-api-token: $RECTIFY_PROJECT_TOKEN"
Document Workflow
1. Always run list_documents first to get document IDs before reading or updating.
2. To create a sub-page, use create_document with parentDocument set to the parent doc ID.
3. Write content as markdown β no # Title heading; title goes in the title field separately.
4. After creating or updating, briefly confirm the doc title and its ID.
5. Archive is a soft-delete (recursive for children). Use delete_document only for permanent removal.
Error Handling
All API calls return JSON. On error the response will contain an error field:
{ "error": "Error message here" }
On success:
{ "success": true, "task": { "id": "...", "title": "..." } }
Common causes:
401 β Invalid or missing RECTIFY_PROJECT_TOKEN, or token not authorized for this project404 β Resource not found (wrong ID)400 β Missing required field