FlowyTeam Cloud Connector

Connect your FlowyTeam workspace to Claude (Desktop, web, and mobile) and to ChatGPT, where FlowyTeam is an approved plugin. Authorize once with OAuth, then manage tasks, projects, employees, attendance, and OKRs in natural language. No API token to copy or paste.

Which integration should I use?

FlowyTeam offers two ways to connect an AI assistant. They use different endpoints and sign-in methods. Pick the one that matches your assistant.

You are here

Cloud Connector

Claude Desktop, Claude web & mobile — and ChatGPT, where it is the FlowyTeam plugin
  • Sign in with OAuth, one-click authorize
  • No API token to manage
  • 53 tools: tasks, projects, employees, attendance, OKRs
  • Added from the assistant's Connectors settings
OAuth 2.0 · PKCE

Claude Code (CLI)

Claude Code command-line tool only
  • Sign in with a Bearer API token
  • For developers working in the terminal
  • Wider tool set including CRM, finance, tickets
  • Not compatible with Claude Desktop or the ChatGPT plugin
How to connect

You need a FlowyTeam account (free personal tier or any paid plan). Tools respect your existing role and permissions. The same endpoint serves both apps under the name each one uses: Claude calls it a connector, ChatGPT calls it a plugin. You authorize once in each app, and no API token is copied.

Connect from Claude

Claude Desktop, web, and mobile
  1. Open Settings, then Connectors.
  2. Find FlowyTeam and click Connect.

    You are sent to the FlowyTeam sign-in page.

  3. Log in and click Authorize.

    The consent screen shows what the connector can access. Nothing is shared until you approve.

  4. Ask in natural language.

    "List my tasks", "Show this quarter's objectives".

Connect from ChatGPT

ChatGPT (OpenAI) — approved plugin
  1. Find the FlowyTeam plugin.

    Search the plugin directory in ChatGPT, or open the listing directly.

  2. Click Connect.

    Available on ChatGPT plans that support plugins.

  3. Log in and click Authorize.

    The same OAuth consent screen as Claude. Nothing is shared until you approve.

  4. Ask in natural language.

    The same 53 tools are available.

Endpoint & authentication
Endpoint
https://flowyteam.com/api/mcp/cloud/rpc
Authentication
OAuth 2.0 public client with PKCE (S256). No secret to exchange.
Transport
Streamable HTTP, JSON-RPC 2.0

Every tool call is scoped to your workspace and permissions. Read tools fetch data; write tools change it. Tools that overwrite or delete existing records are labelled destructive, so the assistant can ask you to confirm first.

Tools (53)

Each tool is a single operation. Parameters below come straight from the live connector.

Tasks

List Tasks list_tasks Read

List tasks in your workspace. Filter by status, priority, project, assignee, due date, or search by title. Returns 50 tasks per page by default, most recent first. archived=true lists archived tasks instead, with archived_at and archived_by.

ParameterTypeRequiredDescription
status string Optional Filter tasks by completion status.
priority string Optional Filter tasks by priority level.
project_id string Optional Filter tasks belonging to a specific project (project ID).
assigned_to string Optional Filter tasks assigned to a specific user. Accepts user ID or partial name/email. Admin only for filtering by others.
due_date string Optional Filter tasks due on this date (Y-m-d format).
search string Optional Search tasks by title/heading (partial match).
archived boolean Optional true lists archived tasks instead: every task for admins and those with the delete tasks permission, else your own and those you created. restore_task brings one back.
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Task get_task Read

Get full details of a single task by ID, title, or heading. Returns subtasks, comments, files, and assigned user.

ParameterTypeRequiredDescription
id string Optional The numeric ID of the task.
heading string Optional The task heading/title (partial match), used when the id is unknown. If more than one task matches, the tool returns an error listing them and does nothing — use id to target exactly one.
title string Optional Alias for heading.
Create Task create_task Write

Create a new task. Requires a heading/title and, as on the web form, the person to assign it to (assigned_to); members who can only create tasks for themselves get their own task. Optionally link to a project or a key result, set priority and due date.

ParameterTypeRequiredDescription
heading string Required The task title/heading (required).
description string Optional Detailed description of the task.
priority string Optional Task priority. Defaults to medium.
project_id string Optional ID of the project to link this task to.
assigned_to string Optional User to assign the task to: a user ID, or a name or email (partial match). Required, as on the web form, except for members who can only create tasks for themselves, whose tasks are their own.
key_result_id integer Optional ID of the key result this task works toward (list_key_results). Pass 0 to unlink. A key result can have several tasks.
due_date string Optional Due date in Y-m-d format. Defaults to 7 days from today.
start_date string Optional Start date in Y-m-d format. Defaults to today.
task_category_id string Optional ID of the task category.
Update Task update_task Write Destructive

Update an existing task. Look up by ID or heading/title. Updatable fields: heading, description, status, priority, due_date, start_date, project_id, task_category_id, assigned_to.

ParameterTypeRequiredDescription
id string Optional Task ID to look up and update.
heading string Optional Current task heading used to locate the task by name (partial match). If more than one task matches, the tool returns an error listing them and does nothing — use id to target exactly one.
title string Optional Alias for heading (used to locate the task).
new_heading string Optional New title to replace the existing task heading.
description string Optional New task description. Pass null to clear.
status string Optional New status for the task.
priority string Optional New priority level.
due_date string Optional New due date (Y-m-d). Pass null to clear.
start_date string Optional New start date (Y-m-d). Pass null to clear.
project_id string Optional Link or re-link the task to a project by ID. Pass null to unlink.
task_category_id string Optional Task category ID. Pass null to clear.
assigned_to string Optional Re-assign the task to a user (ID or name/email). Admin or users with add_tasks permission only.
key_result_id integer Optional ID of the key result this task works toward (list_key_results). Pass 0 to unlink. A key result can have several tasks.
Delete Task delete_task Write Destructive

Archive a task by ID or heading, where restore_task can bring it back with its sub-tasks, comments, files and time logs. dry_run=true shows what would happen and changes nothing. permanent=true removes an already archived task for good, with its time logs (admins only; needs the id). Admins, users with the delete tasks permission and, where members manage their own tasks, the task's creator can archive it.

ParameterTypeRequiredDescription
id string Optional The numeric ID of the task.
heading string Optional The task heading (partial match) to locate it. If more than one task matches, the tool returns an error listing them and does nothing — use id to target exactly one.
title string Optional Alias for heading.
dry_run boolean Optional Optional. True shows what would be archived, unlinked or removed, and how progress would change, and changes nothing.
permanent boolean Optional Optional. True removes an item that is already archived, for good, with what was archived with it. Admins only; archive it first.
Restore Task restore_task Write

Bring back an archived task by ID, under the key result it was linked to unless that key result is archived. Admins, users with the delete tasks permission and, where members manage their own tasks, the task's creator can restore it.

ParameterTypeRequiredDescription
id integer Required The archived task ID.

Projects

List Projects list_projects Read

List projects in your workspace. Filter by status, client name, or search by project name. Members see only their assigned projects unless they have view_projects permission. Returns 50 projects per page by default.

ParameterTypeRequiredDescription
search string Optional Search projects by name (partial match).
status string Optional Filter projects by status.
client_name string Optional Filter projects by client company name or contact name (partial match).
category_name string Optional Filter projects by category name (partial match).
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Project get_project Read

Get full details of a single project by name, including members count, client, category, budget, and timeline.

ParameterTypeRequiredDescription
id string Optional Project ID to retrieve.
project_name string Optional The name (partial match) of the project to retrieve. If more than one project matches, the tool returns an error listing them and does nothing — use id to target exactly one.
Create Project create_project Write

Create a new project. Requires project_name and start_date. Optionally set deadline, status, client, category, and budget.

ParameterTypeRequiredDescription
project_name string Required Name of the new project.
start_date string Required Project start date in Y-m-d format (e.g. 2025-06-01).
deadline string Optional Project deadline in Y-m-d format. Leave blank if without_deadline is true.
without_deadline boolean Optional Set to true if the project has no fixed deadline.
status string Optional Initial project status. Defaults to "not started".
project_summary string Optional Short summary or description of the project.
notes string Optional Additional internal notes for the project.
client_name string Optional Client company name or contact name to associate with this project (partial match).
category_name string Optional Project category name to assign (partial match).
project_budget number Optional Budget allocated for this project.
hours_allocated number Optional Total hours allocated for this project.
client_view_task string Optional Whether clients can view tasks in this project.
manual_timelog string Optional Whether manual time logging is allowed on this project.
Update Project update_project Write Destructive

Update an existing project. Look up by project_name. Update name, status, dates, budget, client, category, or settings.

ParameterTypeRequiredDescription
id string Optional Project ID to look up and update.
project_name string Optional Name (partial match) of the project to look up and update. If more than one project matches, the tool returns an error listing them and does nothing — use id to target exactly one.
new_project_name string Optional Rename the project to this new name.
status string Optional New project status.
start_date string Optional Updated start date in Y-m-d format.
deadline string Optional Updated deadline in Y-m-d format.
without_deadline boolean Optional Set to true to mark the project as having no fixed deadline.
project_summary string Optional Updated project summary or description.
notes string Optional Updated internal notes.
feedback string Optional Feedback or review notes for the project.
client_name string Optional Client company name or contact name to associate (partial match). Replaces existing client.
category_name string Optional Category name to assign (partial match). Replaces existing category.
project_budget number Optional Updated project budget.
hours_allocated number Optional Updated hours allocated.
completion_percent integer Optional Overall completion percentage (0–100).
client_view_task string Optional Whether clients can view tasks in this project.
manual_timelog string Optional Whether manual time logging is allowed.
Delete Project delete_project Write Destructive

Archive (soft-delete) a project by name. Admin only. The project can be restored from the Projects Archive page.

ParameterTypeRequiredDescription
id string Optional Project ID to archive.
project_name string Optional Name (partial match) of the project to archive. If more than one project matches, the tool returns an error listing them and does nothing — use id to target exactly one.

Employees

Get Current User get_current_user Read

Get the signed-in user and workspace this connector acts as: name, work email, roles, company, and which OKR objective types they may create. Call it to confirm the account before creating or changing records.

No parameters.

List Employees list_employees Read

List employees in your workspace. Filter by status, department name, designation name, or search by name/email. Returns 50 employees per page by default, ordered by name.

ParameterTypeRequiredDescription
search string Optional Search employees by name or email (partial match).
status string Optional Filter employees by status.
department_name string Optional Filter employees by department name (partial match).
designation_name string Optional Filter employees by designation name (partial match).
role string Optional Filter by role name (partial match, e.g. "admin" or "employee").
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Employee get_employee Read

Get the workspace record of a single employee by name or email: department, designation, job title, work location and employment dates. Members look up their own record, or anyone's with the view employees permission. Pay, identity documents and home address are never returned.

ParameterTypeRequiredDescription
id string Optional Look up employee by user ID.
name string Optional Look up employee by name (partial match). If more than one employee matches, the tool returns an error listing them and does nothing — use email to target exactly one.
email string Optional Look up employee by exact email address (recommended — the unambiguous identifier).
Create Employee create_employee Write

Create a new employee account from a name and a work email. Assigns the 'employee' role automatically and emails the new employee their sign-in details. Available to admins, and to members with the add employees permission, who set only name, email, employee ID, department and designation. Personal data such as pay, identity documents and home address is not handled here; set those in FlowyTeam.

ParameterTypeRequiredDescription
new_name string Required Full name of the new employee.
new_email string Required Work email address for the new employee account. The sign-in invitation is sent here.
timezone string Optional Timezone identifier (e.g. Asia/Kuala_Lumpur).
login string Optional Whether the employee can log in. Defaults to enable.
department_name string Optional Department name to assign (partial match).
designation_name string Optional Designation/job title name to assign (partial match).
employee_type_name string Optional Employment type name (partial match).
joining_date string Optional Date the employee joined (Y-m-d format). Defaults to today.
employee_id string Optional Internal employee ID / badge number.
preferred_name string Optional Preferred display name. Defaults to full name if not provided.
location string Optional Work location.
employment_type string Optional Employment type (e.g. full-time, part-time, contract).
Update Employee update_employee Write Destructive

Update an employee's name, work email, account status, department, designation, work location or employment dates. Look up by name or email. Members can change their own name, timezone and work location; with the edit employees permission also another non-admin employee's name, email, department and designation. Status, login and employment dates need an admin. Pay, identity documents and home address are not editable here; change those in FlowyTeam.

ParameterTypeRequiredDescription
email string Optional Identify the employee by their exact work email address (recommended — unambiguous). Provide either email or name; if both are given, email wins.
name string Optional Identify the employee by name (partial match). If the name matches more than one employee the tool returns an error listing them and changes nothing — use email to target exactly one.
new_name string Optional New full name for the employee.
new_email string Optional New work email address for the employee.
status string Optional Set employee status.
timezone string Optional Timezone identifier (e.g. Asia/Kuala_Lumpur).
login string Optional Whether the employee can log in.
department_name string Optional Department name to assign (partial match).
designation_name string Optional Designation/job title name to assign (partial match).
joining_date string Optional Date the employee joined (Y-m-d format).
last_date string Optional Last working date / offboarding date (Y-m-d format).
location string Optional Work location.
employment_type string Optional Employment type (e.g. full-time, part-time, contract).

Attendance

List Attendance list_attendance Read

List attendance records. Filter by employee name, date, month, or year. Members see only their own records. Returns 50 records per page by default, most recent clock-in first.

ParameterTypeRequiredDescription
employee_name string Optional Filter by employee name (partial match). Admin only.
employee_id string Optional Filter by employee ID. Admin only.
date string Optional Filter records for a specific date in Y-m-d format.
month string Optional Filter records by month number (1–12).
year string Optional Filter records by year (e.g. 2026).
today boolean Optional If true, return only today's attendance records.
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Attendance Record get_attendance Read

Get a single attendance record by its ID. Members can only access their own records. Returns clock-in/out times, late status, and working location.

ParameterTypeRequiredDescription
id integer Required The attendance record ID.
Clock In clock_in Write

Record a clock-in for the current user (or any employee if admin). Automatically detects late and half-day status based on attendance settings.

ParameterTypeRequiredDescription
working_from string Optional Location where the employee is working from. Defaults to office.
employee_name string Optional Clock in on behalf of an employee by name (partial match). Admin only. If more than one employee matches, the tool returns an error listing them and does nothing — use employee_id to target exactly one.
employee_id string Optional Clock in on behalf of an employee by ID (recommended — the unambiguous identifier). Admin only.
clock_in_datetime string Optional Explicit clock-in datetime in Y-m-d H:i:s or H:i format. Admin only.
Clock Out clock_out Write

Record a clock-out for the current user (or any employee if admin). Finds the most recent open clock-in from today.

ParameterTypeRequiredDescription
employee_name string Optional Clock out on behalf of an employee by name (partial match). Admin only. If more than one employee matches, the tool returns an error listing them and does nothing — use employee_id to target exactly one.
employee_id string Optional Clock out on behalf of an employee by ID (recommended — the unambiguous identifier). Admin only.
attendance_id string Optional Target a specific attendance record by ID. Admin only.
clock_out_datetime string Optional Explicit clock-out datetime in Y-m-d H:i:s or H:i format. Admin only.

Performance Cycles

List Performance Cycles list_performance_cycles Read

List OKR performance cycles in your workspace, most recent start date first. Optionally filter by type or search by name. Marks the cycle the workspace is in today as current. Returns 50 cycles per page by default.

ParameterTypeRequiredDescription
search string Optional Search cycles by name (partial match).
cycle_type string Optional Filter by cycle type: annually, semiannually, quarterly, monthly, biweekly, weekly.
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Performance Cycle get_performance_cycle Read

Get a single performance cycle by ID or name. Returns cycle details including type, status, start date, and end date. scorecard=true adds the end-of-cycle scorecard: each objective and key result with its baseline, target, final value, live progress, final and suggested score, note and retro notes, and averages per objective type and per team (no figure per person). history=true adds who changed the cycle's status, name or dates.

ParameterTypeRequiredDescription
id integer Optional Performance cycle ID.
name string Optional Performance cycle name (partial match). Used if id is not provided. If more than one cycle matches, the tool returns an error listing them and does nothing — use id to target exactly one.
scorecard boolean Optional Add the scorecard: company and team objectives, and personal ones with include_personal, 50 per page.
include_personal boolean Optional With scorecard: also list personal objectives.
page integer Optional With scorecard: page of objectives, from 1.
history boolean Optional Add the cycle's change history.
Create Performance Cycle create_performance_cycle Write

Create a new OKR performance cycle. Requires a name, start date and end date. Optionally set the cycle type (default quarterly). Admin only.

ParameterTypeRequiredDescription
name string Required Name of the performance cycle, e.g. "Q3 2026".
cycle_type string Optional Cycle type: annually, semiannually, quarterly, monthly, biweekly, weekly. Default quarterly.
started_at string Required Cycle start date in Y-m-d format (required, e.g. "2026-07-01").
finished_at string Required Cycle end date in Y-m-d format (required, e.g. "2026-09-30").
checkin_cadence string Optional How often key results in the cycle are checked in: weekly (the default), biweekly (fortnights from the week the cycle starts) or monthly. Missing check-ins and reminders follow it.
Update Performance Cycle update_performance_cycle Write Destructive

Update an existing performance cycle by ID. Only provided fields are updated. Admin only. status moves the cycle through planning, active, scoring and closed, in a call of its own: scoring opens final scores on its key results; closed freezes the objective scores and locks its objectives, key results and check-ins everywhere. Closing needs every key result scored and checked in within two weeks; dry_run=true lists what is missing, and fill_missing=true gives unscored key results their suggested score. Setting scoring reopens a closed cycle.

ParameterTypeRequiredDescription
id integer Required Performance cycle ID to update.
name string Optional New name for the cycle.
cycle_type string Optional New cycle type: annually, semiannually, quarterly, monthly, biweekly, weekly.
started_at string Optional New start date in Y-m-d format.
finished_at string Optional New end date in Y-m-d format.
checkin_cadence string Optional How often key results in the cycle are checked in: weekly (the default), biweekly (fortnights from the week the cycle starts) or monthly. Missing check-ins and reminders follow it.
status string Optional Cycle status, set by admins: planning, active, scoring or closed (unset reads as active). scoring opens final scores on its key results. closed freezes the objective scores and locks its objectives, key results and check-ins everywhere, the web included; it needs every key result scored and checked in within the last two weeks, unless fill_missing=true stores the suggested score for the unscored ones. dry_run=true with closed lists what is missing. A closed cycle reopens by setting scoring.
dry_run boolean Optional With status: report what the change would do (with closed, what is missing) and change nothing.
fill_missing boolean Optional With status closed: give every unscored key result its suggested score (live progress rounded to 0.1), marked automatic, and close.

OKR Objectives

List Objectives list_objectives Read

List OKR objectives in your workspace. Filter by type (personal, company, team), performance cycle, leader, or search by title. Members see every company and team objective, their own personal objectives and those of their direct reports. Returns 50 objectives per page by default; the result says the total and the next page. archived=true lists the archived objectives instead.

ParameterTypeRequiredDescription
objective_type string Optional Filter by objective type. Omit to list every type the caller may read.
performance_cycle_id integer Optional Filter objectives belonging to a specific performance cycle.
search string Optional Search objectives by title (partial match).
leader_id integer Optional Only records led by this user ID, as returned by list_employees or get_current_user. Pass 0 to list the ones with no leader.
archived boolean Optional true lists archived objectives instead, newest first, with archived_at and archived_by. restore_objective brings one back.
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Objective get_objective Read

Get a single OKR objective by ID, including its key results, progress score, final score and retro notes. history=true adds every change to it with who made it, when and how. Members can read company and team objectives, their own personal objectives and those of their direct reports.

ParameterTypeRequiredDescription
id integer Required The objective ID.
history boolean Optional Add its change history: title, weight, owner, leader, alignment, cycle and score changes, archive and restore, newest first.
Create Objective create_objective Write

Create a new OKR objective. Requires a title and objective type (personal, company, or team). Optionally link to a performance cycle and set start/end dates. Members create personal objectives; team and company objectives follow the workspace's OKR settings, as in the member portal.

ParameterTypeRequiredDescription
title string Required The objective title.
objective_type string Required Scope of the objective. "personal" = the caller's own objective. "company" = org-wide. "team" = department/team. Team and company need the matching permission in the workspace's OKR settings.
team_id integer Optional Team (department) ID for a team objective. Defaults to the caller's own department.
description string Optional Detailed description of the objective.
performance_cycle_id integer Optional ID of the performance cycle this objective belongs to.
started_at string Optional Start date in Y-m-d format.
finished_at string Optional End date in Y-m-d format.
weight number Optional Weight of this objective (1–100). Default 1. Used for weighted scoring. A value outside 1–100 is refused.
status string Optional draft creates it as a draft: seen only by its owner, its leader and admins until it is approved (update_objective status).
leader_id integer Optional User ID of the leader (owner), as returned by list_employees or get_current_user. Pass 0 to remove the leader. Admins can set it on any objective; members only on their own personal objectives.
collaborator_ids array Optional User IDs of the collaborators (contributors), as returned by list_employees. Replaces the current list; pass an empty array to remove all. Admins can set it on any objective; members only on their own personal objectives.
parent_objective_id integer Optional ID of the parent objective this objective aligns to. Team objectives align to company or parent-team objectives; personal objectives to company, own-department or other-department objectives. Pass 0 to remove the alignment. Company objectives cannot have a parent.
parent_key_result_id integer Optional ID of the parent key result this objective contributes to, instead of a parent objective. Same rules as parent_objective_id. Pass 0 to remove the alignment. The key result then takes its progress from the objectives aligned to it instead of its own value, so a new objective with no progress yet can take it to 0%; the result warns with the before and after. Its own value comes back when no objective is aligned to it.
Update Objective update_objective Write Destructive

Update an existing OKR objective by ID, including its leader (owner) and collaborators. Only provided fields are updated. retro writes the objective's retro notes once its cycle is being scored. dry_run=true returns the objective as the update would leave it, with the progress an alignment change would move, and saves nothing. Members can update their own personal objectives and objectives they lead or collaborate on, as in the web app.

ParameterTypeRequiredDescription
id integer Required The objective ID to update.
title string Optional New title for the objective.
description string Optional New description.
performance_cycle_id integer Optional New performance cycle ID.
started_at string Optional New start date in Y-m-d format.
finished_at string Optional New end date in Y-m-d format.
weight number Optional New weight (1–100). A value outside 1–100 is refused.
leader_id integer Optional User ID of the leader (owner), as returned by list_employees or get_current_user. Pass 0 to remove the leader. Admins can set it on any objective; members only on their own personal objectives.
collaborator_ids array Optional User IDs of the collaborators (contributors), as returned by list_employees. Replaces the current list; pass an empty array to remove all. Admins can set it on any objective; members only on their own personal objectives.
parent_objective_id integer Optional ID of the parent objective this objective aligns to. Team objectives align to company or parent-team objectives; personal objectives to company, own-department or other-department objectives. Pass 0 to remove the alignment. Company objectives cannot have a parent.
parent_key_result_id integer Optional ID of the parent key result this objective contributes to, instead of a parent objective. Same rules as parent_objective_id. Pass 0 to remove the alignment. The key result then takes its progress from the objectives aligned to it instead of its own value, so a new objective with no progress yet can take it to 0%; the result warns with the before and after. Its own value comes back when no objective is aligned to it.
dry_run boolean Optional true shows the objective as the update would leave it and the progress it would move, and changes nothing.
status string Optional Objective status: draft (seen only by its owner, its leader and admins, and left out of reminders, alignment, the health check and scorecards), approved or committed (unset reads as committed). Leaving draft is an approval, by an admin or the owner or leader of the objective it is aligned to.
retro object Optional Retro notes: an object with any of went_well, didnt_go_well, learned and carry_over, each text ("" clears it). Written while the cycle is in scoring or closed; returned in the scorecard.
Delete Objective delete_objective Write Destructive

Archive an OKR objective by ID, where restore_objective can bring it back. An objective with key results, or tasks linked to them, needs cascade=true: its key results are archived with it, and the tasks stay in their projects, unlinked. Objectives aligned to it or its key results are unlinked, and the progress it fed is recalculated. dry_run=true shows all of that first and changes nothing. permanent=true removes an already archived objective for good (admins only). Admins and the objective's owner or leader can archive it.

ParameterTypeRequiredDescription
id integer Required The objective ID.
cascade boolean Optional Optional. True archives the objective's key results with it. Required when it has key results or tasks linked to them; those tasks stay in their projects, unlinked.
dry_run boolean Optional Optional. True shows what would be archived, unlinked or removed, and how progress would change, and changes nothing.
permanent boolean Optional Optional. True removes an item that is already archived, for good, with what was archived with it. Admins only; archive it first.
Restore Objective restore_objective Write

Bring back an archived objective by ID, with the key results archived with it, its collaborators, check-ins and comments. Tasks and aligned objectives it unlinked are linked back unless they have been linked elsewhere since, and progress is recalculated. Admins and the objective's owner or leader can restore it.

ParameterTypeRequiredDescription
id integer Required The archived objective ID.
Bulk Update OKRs bulk_update_okrs Write Destructive

Update up to 50 objectives and key results in one call, all saved or none: for example the weights or leaders of every key result under an objective. Every item is checked first, and one bad item refuses the whole batch and says which. Objectives take title, description, weight and leader_id; key results also take initial_value, target_value and unit_value. Values and confidence are not taken: record those with create_checkin. The result shows each objective's progress and weight total before and after; dry_run=true shows that first and changes nothing.

ParameterTypeRequiredDescription
objectives array Optional Objectives to update.
key_results array Optional Key results to update.
dry_run boolean Optional true shows what would change and the new progress and weight totals, and saves nothing.
Copy Objective to Another Cycle copy_objective Write

Carry an objective over into another performance cycle, with all its key results or the ones in key_result_ids. The copy takes the owner, leader, collaborators, weight and description, and each key result's leader, contributors, weight, unit and target. Progress starts again from the old starting value, or with baseline_from_current from where each key result ended. Check-ins, comments, tasks and alignment stay with the original; the result says what to re-align. The copy links back to the original, and a second copy into the same cycle is refused. dry_run=true previews it.

ParameterTypeRequiredDescription
id integer Required The objective to copy.
target_cycle_id integer Required The performance cycle to copy it into (list_performance_cycles).
key_result_ids array Optional Only these key results. Default: all of them.
baseline_from_current boolean Optional Start each copied key result from the value it ended at, instead of its old starting value.
carry_over_note string Optional Why it carries over, put at the top of the copy's description.
dry_run boolean Optional Show what would be created and change nothing.

Key Results

List Key Results list_key_results Read

List key results for an objective, a performance cycle, or every key result a person leads. Give an objective_id, a cycle_id or a leader_id, in any combination. Finds key results at risk with confidence_max, status and stale_weeks, and archived ones with archived=true. Returns current progress, target value and completion percentage, 50 per page by default.

ParameterTypeRequiredDescription
objective_id integer Optional The objective ID to list key results for.
cycle_id integer Optional Only key results of objectives in this performance cycle (list_performance_cycles), across every objective you can read.
leader_id integer Optional Only records led by this user ID, as returned by list_employees or get_current_user. Pass 0 to list the ones with no leader. Without objective_id, lists them across every objective you can read.
confidence_max integer Optional GET: only key results whose confidence is at most this (1-10). The web calls 1 not started and 2-3 at risk, so 3 lists both; key results with no confidence yet (0) are left out.
status string Optional GET: only key results whose latest check-in has this status.
stale_weeks integer Optional GET: only key results with no check-in for at least this many weeks (1-52), including ones never checked in.
archived boolean Optional true lists archived key results instead, with archived_at and archived_by, including those archived with their objective. restore_key_result brings one back.
page integer Optional Page of a list, starting at 1. Default 1. A list result gives next_page while more rows remain.
per_page integer Optional Rows per page of a list, 1-100. Default 50.
Get Key Result get_key_result Read

Get a single key result by ID, including current progress, accomplish rate, final score, contributors and the parent objective summary. history=true adds every change to it with who made it, when and how.

ParameterTypeRequiredDescription
id integer Required The key result ID.
history boolean Optional Add its change history: target, weight, leader, objective and score changes, archive and restore, newest first.
Create Key Result create_key_result Write

Add a new key result to an existing objective. Requires objective_id and title. Set initial, target, and unit values to enable automatic progress tracking.

ParameterTypeRequiredDescription
objective_id integer Required The objective this key result belongs to.
title string Required The key result title/description.
description string Optional Additional details about the key result.
initial_value number Optional Starting value (default 0). Up to 4 decimal places.
target_value number Optional Target value to achieve (default 100). Up to 4 decimal places.
current_value number Optional Current value. Defaults to initial_value. Up to 4 decimal places.
unit_value string Optional Unit label, e.g. "%" or "deals" or "$". Defaults to "%".
weight number Optional Weight of this KR within the objective (1–100). Default 100. A value outside 1–100 is refused.
confidence integer Optional Confidence score 0–10 indicating likelihood of achieving the target. A value outside 0–10 is refused.
leader_id integer Optional User ID of the leader (owner), as returned by list_employees or get_current_user. Pass 0 to remove the leader. Admins can set it on any objective; members only on their own personal objectives.
indicator_ids array Optional IDs of the KPIs (indicators) to associate with the key result, as the web form's KPI picker does. Replaces the current list; an empty list removes them all. Members can link the KPIs they own or have access to. Linking does not change the key result's value.
contributor_ids array Optional User IDs of the people who help with this key result (list_employees). Informational: it gives no rights, which come from the objective's collaborators. Replaces the list; an empty list removes them all.
measurement_type string Optional How progress is measured: omit (or "") for start to target, whichever way it runs; "maintain" keeps the value within threshold_min..threshold_max, 100% inside the range and 0% outside it. A milestone is a key result from 0 to 1, set to 1 when done.
threshold_min number Optional With measurement_type maintain: the lowest acceptable value.
threshold_max number Optional With measurement_type maintain: the highest acceptable value.
Update Key Result update_key_result Write Destructive

Update a key result by ID: title, target, weight, confidence and leader (owner), or record progress by updating current_value. An update that sets current_value, confidence, remarks, status, blockers or source saves today's check-in; a title, target, weight or leader change alone does not. create_checkin records one with only the check-in fields. current_value is refused on a key result whose progress comes from aligned objectives. In a cycle being scored, final_score and score_note record the end-of-cycle score; contributor_ids names who helps (no rights). move_to_objective_id, sent on its own, moves the key result to another objective in its cycle with its check-ins, comments and tasks. dry_run=true shows the result and the progress it would move without saving. Members can update KRs on objectives they own, lead or collaborate on, and KRs they lead, as in the web app.

ParameterTypeRequiredDescription
id integer Required The key result ID to update.
title string Optional New title.
description string Optional New description.
current_value number Optional Updated current value, the primary way to record progress. Up to 4 decimal places. Refused while the value comes from a KPI.
initial_value number Optional Updated starting value. Up to 4 decimal places.
target_value number Optional Updated target value. Up to 4 decimal places.
measurement_type string Optional How progress is measured: omit (or "") for start to target, whichever way it runs; "maintain" keeps the value within threshold_min..threshold_max, 100% inside the range and 0% outside it. A milestone is a key result from 0 to 1, set to 1 when done.
threshold_min number | null Optional With measurement_type maintain: the lowest acceptable value.
threshold_max number | null Optional With measurement_type maintain: the highest acceptable value.
progress_source string Optional PUT: "indicator" makes the key result take its value from one KPI (indicator_id): the KPI's own total (sum, average, max, min or count, as it is set up) of its records dated within the cycle. Each new or changed record updates the value and today's check-in, noted with the KPI. "own" ends it. Refused while objectives are aligned to the key result.
indicator_id integer Optional PUT with progress_source=indicator: the KPI (indicators) the value comes from. It is linked to the key result too.
unit_value string Optional Updated unit label.
weight number Optional Updated weight (1–100). A value outside 1–100 is refused.
confidence integer Optional Updated confidence score (0–10). A value outside 0–10 is refused.
remarks string Optional Check-in note for this update, saved on today's check-in.
status string Optional The owner's status on today's check-in, separate from confidence.
blockers string Optional What is blocking progress, saved on today's check-in.
source string Optional Where the current value came from (a report, a system), saved on today's check-in.
leader_id integer Optional User ID of the leader (owner), as returned by list_employees or get_current_user. Pass 0 to remove the leader. Admins can set it on any objective; members only on their own personal objectives.
indicator_ids array Optional IDs of the KPIs (indicators) to associate with the key result, as the web form's KPI picker does. Replaces the current list; an empty list removes them all. Members can link the KPIs they own or have access to. Linking does not change the key result's value.
final_score number | null Optional Final score from 0.0 to 1.0 in steps of 0.1, kept apart from live progress. Set while the cycle is in scoring, by the key result's leader, the objective's owner or leader, or an admin. null clears it.
score_note string Optional Why the key result got its final score. Same rules as final_score.
contributor_ids array Optional User IDs of the people who help with this key result (list_employees). Informational: it gives no rights, which come from the objective's collaborators. Replaces the list; an empty list removes them all.
move_to_objective_id integer Optional ID of the objective to move the key result to, in the same cycle. Its check-ins, comments, tasks and the objectives aligned to it go with it, and both objectives are recalculated. Needs edit rights on both objectives. Send it on its own, with dry_run=true to preview the progress change.
dry_run boolean Optional true returns the key result as the update or move would leave it, with the progress it would move in the message, and saves nothing.
Delete Key Result delete_key_result Write Destructive

Archive a key result by ID, where restore_key_result can bring it back with its check-ins and comments. Tasks linked to it stay in their projects, unlinked, and objectives aligned to it are unlinked. Its objective's progress, key result count and weight total are recalculated. dry_run=true shows all of that first and changes nothing. permanent=true removes an already archived key result for good (admins only). Admins and the objective's owner or leader can archive it.

ParameterTypeRequiredDescription
id integer Required The key result ID.
dry_run boolean Optional Optional. True shows what would be archived, unlinked or removed, and how progress would change, and changes nothing.
permanent boolean Optional Optional. True removes an item that is already archived, for good, with what was archived with it. Admins only; archive it first.
Restore Key Result restore_key_result Write

Bring back an archived key result by ID, with its check-ins and comments. Tasks and aligned objectives it unlinked are linked back unless they have been linked elsewhere since, and its objective's progress is recalculated. A key result archived with its objective comes back with restore_objective instead. Admins and the objective's owner or leader can restore it.

ParameterTypeRequiredDescription
id integer Required The archived key result ID.
Convert Key Result to Task convert_key_result_to_task Write Destructive

Turn a key result that is really an initiative into a task working toward another key result in the same cycle, so it stops counting toward its objective's key results and weight total. The task takes the key result's title and description, goes to its leader unless assigned_to names someone else, is due at the end of the cycle, and is created completed when the key result was at 100%. The key result's own tasks move to the target, and the key result is archived with its check-ins and comments; restore_key_result brings it back (the task stays). Refused while objectives are aligned to it. dry_run=true shows all of that first and changes nothing. Admins and the objective's owner or leader can convert.

ParameterTypeRequiredDescription
id integer Required The key result to convert.
target_key_result_id integer Required The key result the new task works toward, in the same cycle and one you can edit.
assigned_to string Optional Who the task is assigned to: a user ID, name or email. Defaults to the key result's leader; required when it has none.
due_date string Optional Due date (Y-m-d). Defaults to the end of the cycle.
project_id integer Optional Project to put the task in. Optional.
dry_run boolean Optional true shows the task that would be created and what would move or be archived, and changes nothing.
Troubleshooting

Common issues and how to resolve them.

FlowyTeam does not appear in my assistant's connector list
In ChatGPT the FlowyTeam plugin is approved, so search the plugin directory or open the listing directly. Elsewhere you can add it by hand: in your assistant's Connectors settings, choose to add a custom connector and enter the endpoint https://flowyteam.com/api/mcp/cloud/rpc. The same endpoint serves Claude Desktop, Claude web and mobile, and ChatGPT.
The sign-in page does not load or the authorization fails
Make sure you are signing in on the correct FlowyTeam workspace. If your organization uses a subdomain, log in there first, then retry the authorization. Clear the connector and add it again if the page was left open for a long time, since the sign-in request expires.
The assistant says it is not connected or asks me to authorize again
Your session token was revoked or expired. Remove the connector and reconnect, then authorize on the consent screen. Disconnecting always revokes access immediately.
A tool returns "permission denied" or an empty result
Tools follow your existing role and permissions. A member account only sees its own data; some actions require an admin role. If a list is empty, confirm the record exists in your workspace and that any filters you asked for match.
I use Claude Code in the terminal, not Claude Desktop
Then this connector is not the one for you. Use the Bearer-token integration instead. See the Claude Code (CLI) documentation.
Which data can the connector reach?
Tasks, projects, employees, attendance, OKR objectives, key results, and performance cycles, scoped to your workspace. It cannot access payroll, payment details, passwords, or another company's data. See the privacy policy for details.

Connect FlowyTeam to your AI assistant

Manage your whole workspace in natural language. Free personal tier available.

Create a free account Using the terminal? Claude Code (CLI) docs