- Brand
- Onplana
- Category
- Productivity
- Primary Subcategory
- Project & Task Management Platforms
Integration details
Description
Onplana connects ChatGPT to your project portfolio. Describe the work in a sentence and it builds the project for you: epics, tasks, estimates, dependencies and scheduled dates, in a single step. Search across projects, tasks, sprints, risks, comments, and wiki with hybrid BM25 + vector search. Read project state, update tasks, log time, surface portfolio-level insights, and generate status reports, all gated by your org's plan and role permissions, with every operation audited. Built for teams migrating from Microsoft Project Online ahead of its September 2026 retirement.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Project & Task Management Platforms
- Secondary Subcategories
- None listed
- Brand
- Onplana
- Access
- Account required
- First tracked
- 2026-06-16
- Tool count
- 315
- 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#74of 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
Linear49
- 3A
Atlassian Rovo (Legacy)43
- 4M
monday.com29
- 74O
Onplana0
Get alerts for Onplana
Get updates when Onplana’s Discoverability Score or category rank changes.
Competing in ChatGPT Project & Task Management Platforms
View Category315 tools agents can invoke
(Un)assign multiple tasks to one person in a single call. Pass assigneeId (a user id, or null to unassign) OR assigneeEmail (resolved against active org members) - mutually exclusive. Returns { updated, skipped, errors } so partial success is observable: skipped lists tasks already at that assignee; errors lists per-task failures (NOT_FOUND / PROJECT_ACCESS_DENIED). Up to 200 task ids per call. Use the single-task assign_task when you need optimistic-concurrency (expectedAssigneeRevision). Caller must have task.assign on each task's project; the target must be an active member of the organization.
bulk_assign
Read a project's closeout record: its state (DRAFT, IN_REVIEW or SIGNED_OFF), the final baseline and the EVM summary captured when it started (cost figures are null for a caller who may not read the project's cost), the closeout report document, the sign-offs and the quorum, the lessons learned, and what this caller may do next. closeout is null when none was started. Any caller who can read the project, or a reviewer named on its closeout.
get_closeout_status
Read one project's live readiness to be completed (or archived): every criterion that applies, the result of each auto check (pass, fail or unknown), the stored state and owner of each manual or ai item, active waivers, the required gaps, whether the project is ready, the organization's enforcement mode (OFF, WARN or BLOCK) and the last recorded check. Changes nothing and records nothing. Any caller who can read the project.
get_readiness_status
Add a project to a portfolio (BUSINESS+ feature). Requires org.portfolio.manage (default Manager+). Idempotent-safe: if the project is already in the portfolio, returns an error so the caller can detect duplicates.
add_project_to_portfolio
Add a user to the org-level Change Control Board. Requires org.governance.manage (Admin+ by default). Idempotent. User must be an active org member. Feature: changeControl (ENTERPRISE+).
add_ccb_member
Add a user to the designated timesheet approver list. Requires OWNER or ADMIN. Idempotent. User must be an active org member. Feature: timeTracking (PRO+).
add_timesheet_approver
Add a cost line to a project's budget list: what the money is for, the amount in the PROJECT currency, and whether it is EXPECTED, COMMITTED or SPENT. There is no currency argument: convert the amount first. A SPENT line counts in the project's earned value actual cost. Access: the project budget's write rule (project.edit and budget.read on the project).
create_cost_line
Add or remove collaborators on one task: people who work on it besides its single assignee. A collaborator sees the task in their My Work, is notified about it and may update it, but cannot reassign it or change who collaborates. Name people in `add` and `remove` by user id, full or first name, or email; a reference that matches no single org member is reported in `warnings` and left out. Each person must be an active member of the task's project and is never the assignee; anyone the server does not add or remove is listed in `skipped` with a reason (NOT_ORG_MEMBER, NOT_PROJECT_MEMBER, IS_ASSIGNEE, ALREADY_COLLABORATOR, NOT_COLLABORATOR, CAP_REACHED). Requires task.assign plus task.edit.any or holding the task, except that anyone may remove themselves. Returns the task's collaborators after the change.
update_task_collaborators
Add an EXISTING active org member to a project. Pass userId (look up with list_org_members first) and role (MANAGER/MEMBER/CONTRIBUTOR/VIEWER). Caller must have project.members.manage on the project. For inviting a brand-new email outside the org, use the invitation UI - this tool intentionally does not send emails.
add_project_member
Atomically create one or more subtasks under an existing parent task. All children inherit the parent's project. Returns the created ids. Up to 25 subtasks per call. Use this instead of calling create_task repeatedly when decomposing a claimed task — single transaction, single tool-call budget slot, atomic rollback on any failure.
add_subtasks
Aggregate risks across the caller's visible projects by category. Returns acceptedCount, dismissedCount, affectedProjects, and a verdict (recurring | frequently_dismissed | mixed) per category. Drives the "Pattern (X/Y projects)" badge on the Critical Risk Register widget. Optional windowDays (1..365, default 90) bounds the detection lookback.
compute_risk_patterns
Run AI risk analysis on one project - detected risks persist to the project risks table (visible via list_risks). Use this when the user asks "what could go wrong on Project X" or before a sprint planning meeting. Caller must have visibility into the project.
analyze_project_risks
Append a row to a workspace table. `cells` is a map of columnId to value (string|number|boolean|null). Unknown column ids return 400. Optional `order` (default = max(order)+1).
create_workspace_row
Append a streaming progress log line to the current agent conversation. Required: conversationId (the AiConversation this agent session belongs to), lineNum (monotonic integer the agent maintains), level (INFO/WARN/ERROR/DEBUG or any string <=8 chars), text (the log line up to 4000 chars). Optional taskId attaches the line to a specific task and triggers a real-time UI broadcast so humans see it land. No undo — log lines are append-only.
append_log
Append many rows to a workspace list (table) in one call, where create_workspace_row appends a single row per call. `rows` is an array, each entry a map of columnId to value (string|number|boolean|null); a row may omit any column. Unknown column ids are refused. Limits per call: 200 rows and 3000 cells in total, whichever is reached first, so a wide list takes fewer rows per call than a narrow one. Rows are appended in the order given, and the whole batch lands or none of it does.
bulk_create_workspace_rows
Approve a submitted expense claim, which makes it a real cost against the project. Requires being one of the workspace's designated approvers, the same panel that approves timesheets. Nobody can approve a claim they filed themselves, however senior. Approved is final: correcting one afterwards is an accounting adjustment rather than a status change.
approve_expense
Approve a single SUBMITTED timesheet entry. Caller must be an eligible approver (OWNER/ADMIN/MANAGER in managers mode, or a designated approver in approvers mode). Feature: timeTracking (PRO+).
approve_timesheet_entry
Decide a PENDING workflow approval (APPROVED or REJECTED) with an optional note. Caller must be the assigned approver. Duplicate decisions return CONFLICT. The workflow engine picks the decision up on its next tick. Plan gate: automations (PRO+).
decide_workflow_approval
Archive a completed or cancelled project: it becomes read-only (every write to it or anything inside it is refused with PROJECT_ARCHIVED) and is hidden from project lists unless they ask for archived projects. Nothing is deleted, and unarchive_project reverses it. The organization's archive readiness criteria are checked under its enforcement mode: in BLOCK a required gap refuses with READINESS_GAPS, in WARN the archive goes through and the verdict is returned. Needs the project Owner or Manager role, or org.compliance.manage.
archive_project
Ask the human PAT holder a question and wait for their answer via the get_user_input poll. Required: question (1-2000 chars). Optional: options (string[] of up to 10 choices; when set, the human must pick one), taskId (binds the prompt to a task so it appears on that task's detail panel), timeoutMinutes (1-120, default 30; after this the prompt flips to TIMED_OUT inline on the next get_user_input poll). Returns { requestId, status: "PENDING" }; poll get_user_input(requestId) until status changes. Fires an in-app + email notification at the PAT holder so they know to answer.
request_user_input
Assign a tag to a task or project. Provide either taskId or projectId, not both. The caller must have access to the target entity. Assigning a tag that is already on the target succeeds as a no-op (alreadyAssigned: true in the result).
assign_tag
Assign or unassign one task. Pass assigneeId=null to unassign. Alternatively pass assigneeEmail to resolve by org-member email (useful when the agent only knows the user's email and would otherwise need a separate list to find their id). Mutually exclusive with assigneeId. Optional expectedAssigneeRevision (integer): if supplied, the call fails with a CONFLICT error when another caller has assigned the task since you last read it. Returns the assignee's id and name (assigneeName), and the new claimRevision so you can chain consecutive assigns under optimistic concurrency. Caller must have task.assign on the project. Target must be an active member of the organization. On plans with resource management the result also carries `load`: the assignee's capacity for the week the task lands in, the hours already committed to their other open work, this task's share, whether that projection exceeds capacity (`over`, `overBy`), and the competing work that week (`otherWork`). Null when the task has no dates.
assign_task
Attach a SharePoint document to an Onplana project workspace as a LINK reference (externalProvider=SHAREPOINT). The file stays in SharePoint; Onplana stores only the URL + metadata. No file is downloaded or copied in V1 (security stance). Caller must have read access to the SharePoint site.
attach_sharepoint_document
Attach a file to a task by URL. The SERVER downloads the file (public http(s) URL only; internal/private addresses are blocked) and stores it as a real attachment, so the bytes never pass through the model (no truncation risk). Use this when the file already lives at a URL (cloud storage, a public link). Max 50 MB. fileName is optional (derived from the URL otherwise). For a file that exists only in your sandbox, use upload_task_attachment instead. Any project contributor or above can attach (VIEWERs cannot).
attach_file_from_url
Attach an external URL as a WorkspaceDocument inside a library. Zero bytes, just a metadata row. provider must be one of MIRO, FIGMA, NOTION, CONFLUENCE, GOOGLE_DOCS, EXCALIDRAW, OTHER_LINK. url must be http(s). Requires project.content.create on the parent library's project (Viewers are read-only).
attach_link
Computed variance of a project against one of its baselines: project finish slip (calendar days), an on-track / at-risk / behind rating, counts of delayed / on-time / ahead / added / removed tasks, and the worst slippers with their start, finish, planned-duration and started-late variance. Duration variance uses the stored planned duration, not the date span. Also returns `summary`: the comparison in plain English (paragraphs on the finish and the chain of tasks driving it, scope, cost where the caller may read it, tasks added and removed, and a list of the five largest start or finish moves), built without AI, the same text the Baselines tab shows. Use get_baseline for the raw snapshot. Available on every plan.
compare_baseline
Bulk-approve all SUBMITTED timesheet entries for a specific user in a given week. Caller must be an eligible approver. Feature: timeTracking (PRO+).
approve_timesheet_week
Add a list of up to 50 tasks to an existing Onplana project in one call, at the project root or under a sprint / epic. Fits "add these tasks to my launch project" or a checklist pasted into the chat. Single transaction (all-or-nothing), in place of calling create_task N times; add_subtasks covers new tasks that are children of an existing task. THIS TOOL DOES NOT SCHEDULE. Tasks land with NO dates unless startDate and dueDate are set on each one, and there is no way to express durations or predecessors here at all. A schedule (phase durations, effort estimates, "task 5 depends on task 3", a critical path) sent through this tool arrives as a flat dateless list, and the Gantt, timeline and critical path are all empty. Use instantiate_plan instead, which takes estimatedDays per task and computes real start and due dates from them. It accepts a projectId, so it works on a project that already exists. Neither tool accepts predecessors: create the tasks first, then add each dependency with link_dependency. The result includes `url` for the project (and one per task). ALWAYS show the project link in your reply so the user can open what you just created.
bulk_create_tasks
Bulk-reject all SUBMITTED timesheet entries for a specific user in a given week. Optionally provide a rejection reason. Feature: timeTracking (PRO+).
reject_timesheet_week
Apply the same partial update to many tasks at once. Pass taskIds (max 50) and any combination of: status (TODO/IN_PROGRESS/REVIEW/DONE/BLOCKED), priority (LOW/MEDIUM/HIGH/CRITICAL, a ranking label that does not put a task on the critical path), shiftDueDateDays (positive or negative integer to add to each task's dueDate). Per-task failures are reported in `errors` but do not abort the whole call. Permission: task.edit.any on each task's project. PREFER bulk_update_status when the ONLY change is status (cheaper, atomic, single parent-rollup pass).
bulk_update_tasks
Full working-calendar detail with every exception (holidays, special working days). workDays is a 0..6 day-of-week array (0=Sun).
get_working_calendar
Caller's workflow-approval inbox (WorkflowApproval rows). Default status=PENDING (your queue: approvals whose run is still waiting on that step). Pass approverId to inspect another user's queue (admins). PREFER decide_workflow_approval to act on a PENDING row. Plan gate: automations (PRO+).
list_workflow_approvals
Cancel an in-progress workflow run. Caller must be able to manage the workflow. Feature: automations (PRO+).
cancel_workflow_run
Capture a point-in-time baseline snapshot of a project (tasks, dates, progress, EVM). Caller must be a project Owner or Manager. Available on every plan.
capture_baseline
Capture an IDEA: an uncommitted, possibly half-formed thought. Use this instead of create_task when the thing is not agreed work yet. An idea has no assignee and no due date and never appears in anyone's task list, so capturing one costs the user nothing. It is PRIVATE to the capturing user until they share it or open it to the org (visibility is controlled in the web app). projectId is OPTIONAL: omit it for a "General" idea that is not tied to a project yet, which is the normal case when someone is just thinking out loud. Promote it later with promote_idea. Returns the new idea's id, `idea` (id, title, status) and url (its link in the Onplana web app).
create_idea
Change a cost line: its label, amount (in the project currency), status (EXPECTED, COMMITTED, SPENT, in any direction, e.g. back to EXPECTED when an order is cancelled), category, date, task or note. Pass only the fields to change; null clears category, date, taskId or note. Every change is kept in the line's history (get_cost_line_history). Access: the project budget's write rule.
update_cost_line
Change an existing task dependency's type or lag in place; the link keeps its id. Address it by its row id (dependencyId, from list_dependencies or from the error link_dependency returns when the pair is already linked), or by the two task ids it joins (predecessorId + successorId) when exactly one link joins them. Pass type (FINISH_TO_START, START_TO_START, FINISH_TO_FINISH, START_TO_FINISH), lag, or both; a field left out keeps its value. Lag is in lagUnit, days by default, or hours or minutes for a finer lag; negative values are lead time. Requires the project-level dependency.manage permission on the successor's project, as linking does. A type the pair already holds is refused, since one pair holds each type at most once. When the values sent are already the link's the call succeeds with changed: false and writes nothing. Otherwise the successor and the tasks after it are rescheduled, and rescheduled counts them; in a project with automatic scheduling off it is 0 and the response carries autoScheduleOff: true. previous holds the type and lag the edit replaced. No plan gate.
update_dependency
Clone a workflow with fresh step IDs. PRO+ feature (automations). The copy starts inactive (isActive=false) and is named "<original> (Copy)". Returns the new workflow's id + name. Use this to template-then-tweak an existing workflow without disturbing the original. MUTATION: writes a new Workflow row. Permission: automation.manage on the workflow's project (or org MANAGER+ for org-wide workflows).
duplicate_workflow
Close a deal as WON and create its delivery project in one step. The project carries the commercial terms across: the deal value becomes the project budget, the currency and the client name come with it, the billing model and its terms (fixed fee, retainer, milestone schedule) are copied so the margin report reads the project the way the deal was priced, and the project is marked billable. WON is a terminal stage and a deal converts exactly once, so this is not reversible through the pipeline: a deal won by mistake leaves a real project behind that someone has to delete. The deal must already have reached PROPOSAL or NEGOTIATION.
win_deal
Compose a draft meeting in the authorized user's own Outlook calendar. Draft only, nobody is invited: the event is created without attendees (Microsoft sends an invitation for any event created with attendees), and the proposed attendees are listed in its body. The user opens it from the returned webLink, adds the attendees and sends it from Outlook. Onplana has no step that sends a meeting invitation. Returns the event id, webLink, attendeesInvited (always 0) and proposedAttendees. Per-invite external attendee cap: 10. Uses existing Calendars.ReadWrite scope.
compose_meeting_invite
Generate a structured meeting agenda for a project and deliver it to the Agent inbox for review. Reads the live project facts: progress and task counts, tasks completed in the last 7 days, overdue tasks, the overdue and the next milestones with their due dates (up to 5 of each), the top 5 open risks and the top 5 open issues by severity, and the project overview with its 15 most recently updated tasks. Writes a ready-to-share agenda (goals, status, risks, milestones, decisions needed). Returns the artifact id and conversation id once the agenda is drafted. Plan gate: aiCore (every plan). Access: any project member.
compose_meeting_brief
Generate a concise weekly status report for a project and deliver it to the Agent inbox for review. Assembles the project context bundle and writes a structured status report (health, accomplishments, risks, next steps) into the Agent Deliverables library. Returns the artifact id and conversation id once the digest is drafted. Plan gate: aiCore (every plan). Access: any project member; the CPI and SPI line appears only when the caller may read the project cost.
compose_status_digest
Generate a plain-language EVM narrative for a project and deliver it to the Agent inbox for review. Fetches BAC/EV/PV/AC/CPI/SPI/EAC and writes a PMO-quality prose document into the Agent Deliverables library. Returns the artifact id and conversation id once the narrative is drafted. Plan gate: aiCore (every plan). Access: callers who may read the project cost: org OWNER/ADMIN, or budget.read at their project role (by default project OWNER and MANAGER). The Onplana agent saves the draft, so it needs Contributor access or above on the project.
compose_evm_narrative
Generate structured release notes for a project from the tasks marked done in the last 30 days (up to 30, newest first; a task with no completion date counts by its last update), grouped by epic or theme, and deliver the draft to the Agent inbox for review. Known issues come from the open issues and overdue tasks, next planned work from the next milestones. Output includes a summary, changes by area, known issues, and next planned work; when no task was done in the window, the notes state that. Returns the artifact id and conversation id once the notes are drafted. Plan gate: aiCore (every plan). Access: any project member.
compose_release_notes
EVM time-series for one project: each point carries the date, PV and AC (the S-curve). CPI and the estimates are in `calculate_evm`, which returns them null when no actual cost is recorded. Powers the S-Curve and trajectory analyses. Same access + plan gate as `calculate_evm`. `points` is empty when `dataSource` is "none" (no imported costs, rate card or default rate to price hours with), the same rule `calculate_evm` applies.
calculate_evm_history
Compute the critical path for a project with the schedule engine and return a prose summary. The critical path is the chain of linked tasks with no float, worked out from dependencies, durations, constraints and the project calendar; no field on a task puts it on the path, and task priority is unrelated to it. Returns the ordered critical-task IDs, the bottleneck task, projectEnd (the engine's computed finish), the project's total duration in days, the critical chain's own length in working days (chainDurationDays, the figure the prose quotes), a 2-3 sentence explanation of the chain, autoSchedule, and facts: computedAt, statusDate, criticalTasks (title, computed and stored start and finish, float), computedFinish next to storedLatestDue (the latest due date stored on a task) and projectEndField, finishesAgree, finishGapCalendarDays, finishesLaterThanStored (the tasks the engine finishes after their stored due date, with a reason code) and finishNote, one paragraph stating both finishes and why they differ. The calculation is deterministic (no LLM); the prose falls back to a template when the AI provider is unavailable. No plan gate. Use when the user asks what is on the critical path, which tasks are critical, why a task is or is not critical, asks for tasks to be made critical, or asks when the project or its critical path finishes.
critical_path_narrative
Earned Value Management report for one project as of a given date (default: now). Returns BAC, EV, PV, AC, CPI, SPI, EAC, ETC, plus EV/PV/AC in revenue currency when the org has billable rates. With no actual cost recorded, CPI, CV, EAC, ETC and VAC are null and actualCostRecorded is false: report them as N/A, not on budget. PREFER `calculate_evm_history` for time-series. Access: callers who may read the project cost: org OWNER/ADMIN, or budget.read at their project role (by default project OWNER and MANAGER). Plan gate: aiAdvanced.
calculate_evm
Make a copy of an existing project as a new project, to run the same work again: "copy last quarter's launch project", "duplicate this project for the new office", "start again from the Q3 plan". The copy carries the project's settings and description, tasks at every level with their order, priorities, estimates, durations, constraints and recurrence, the dependencies between its own tasks, epics, sprints, milestones, tags and org-wide custom field values. With `people` (default true) it also carries the project members, assignees and task collaborators; the source's owner joins as a manager. It resets every task to To do with no progress, actuals or completion, every milestone and sprint to not done and the project to Planning, and the caller becomes the owner. With `startDate` every date moves by the same whole days; without it the dates stay as they were. It leaves behind comments, attachments and documents, risks, issues, baselines, time, expenses and revenue, portfolio links, deals, readiness and closeout records, workspace lists and pages, sharing grants, links to tasks in other projects, fields scoped to the source project and every sync the source has. The source project is not changed. Unlike save_project_as_template, which keeps two levels of tasks as date offsets for reuse across many projects and needs the templates feature, this keeps the whole schedule and makes one new project now. A project above 5000 tasks or one that holds a Maker app is refused. The new project counts toward the plan's project limit. Undo deletes the copy. The result includes `url`, a direct link to the new project in Onplana, which the user has no other way to find from another app.
duplicate_project
Correct an expense claim that is still a draft, or one an approver returned (status REJECTED, with the reason in rejectionReason): its description, amount, currency, date, category or whether it is rebillable. Only the person who filed it can edit it, and a submitted or approved claim cannot be edited. Changing the currency captures that currency's rate at this moment. The claim keeps its status; a corrected returned claim goes back for approval with submit_expense, which clears the old reason.
update_expense
Create a DRAFT change request on a project (scope, schedule, budget, resource or other change). Requires project membership. Feature: changeControl (ENTERPRISE+).
create_change_request
Onplana ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Onplana'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 Onplana alternatives on ChatGPT?
As of 2026-11-03, Onplana 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 Onplana rank in Project & Task Management Platforms on ChatGPT?
As of 2026-11-03, Onplana ranks #74 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.


