# Motion

Motion is an intelligent calendar and project management tool that automatically plans your day, schedules meetings, and helps teams collaborate efficiently.

- **Category:** productivity
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 27
- **Triggers:** 0
- **Slug:** `MOTION`
- **Version:** 00000000_00

## Tools

### Add Custom Field to Project

**Slug:** `MOTION_ADD_CUSTOM_FIELD_TO_PROJECT`

Tool to add a custom field value to a project in Motion. Use when you need to set or update custom field data on an existing project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `value` | object | Yes | The custom field value object containing the type and actual value to set. |
| `projectId` | string | Yes | The unique identifier of the project to add the custom field to. Typically starts with 'pr_'. |
| `customFieldInstanceId` | string | Yes | The unique identifier of the custom field instance to add. This references the workspace custom field definition. Typically starts with 'cfi_'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Custom Field to Task

**Slug:** `MOTION_ADD_CUSTOM_FIELD_TO_TASK`

Tool to add a custom field value to a task in Motion. Use when you need to set or update custom field data on an existing task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `value` | object | Yes | The custom field value object containing the type and actual value to set. |
| `taskId` | string | Yes | The unique identifier of the task to add the custom field to. Typically starts with 'tk_'. |
| `customFieldInstanceId` | string | Yes | The unique identifier of the custom field instance to add. This references the workspace custom field definition. Typically starts with 'cfi_'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Comment

**Slug:** `MOTION_CREATE_COMMENT`

Tool to create a new comment on a Motion task. Use when you need to add a comment to an existing task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `taskId` | string | Yes | The task to comment on |
| `content` | string | No | Github Flavored Markdown comment |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Field

**Slug:** `MOTION_CREATE_CUSTOM_FIELD`

Tool to create a new custom field in a Motion workspace. Use when you need to add custom fields like text, select options, dates, or other field types to customize your workspace. For select/multiSelect types, provide options in metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the custom field |
| `type` | string ("text" | "url" | "date" | "person" | "multiPerson" | "phone" | "select" | "multiSelect" | "number" | "email" | "checkbox" | "relatedTo") | Yes | Type of the custom field. Must be one of: text, url, date, person, multiPerson, phone, select, multiSelect, number, email, checkbox, or relatedTo |
| `metadata` | object | No | Configuration metadata for advanced custom field types. |
| `workspaceId` | string | Yes | The workspace ID where the custom field will be created |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `MOTION_CREATE_PROJECT`

Tool to create a new project in Motion. Use when you need to create a project within a specific workspace. Projects can have optional due dates, descriptions (HTML supported), labels, and priority levels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the project |
| `labels` | array | No | List of label names the project should have |
| `stages` | array | No | Array of stage objects for the project. Required when projectDefinitionId is provided. |
| `dueDate` | string | No | ISO 8601 due date for the project |
| `priority` | string ("ASAP" | "HIGH" | "MEDIUM" | "LOW") | No | Priority levels for Motion projects. |
| `description` | string | No | The description of the project. HTML input accepted. |
| `workspaceId` | string | Yes | The workspace ID to which the project belongs |
| `projectDefinitionId` | string | No | Template ID for the project. When provided, must include stages array. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Recurring Task

**Slug:** `MOTION_CREATE_RECURRING_TASK`

Tool to create a new recurring task in Motion. Use when you need to set up tasks that repeat on a schedule (daily, weekly, monthly, etc.). Recurring tasks automatically generate task instances based on the specified frequency pattern.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the recurring task |
| `duration` | integer | No | Duration in minutes (must be integer greater than 0). Use this to specify how long the task should take. Do not set this for reminder-only tasks. |
| `priority` | string ("HIGH" | "MEDIUM") | No | Priority levels for recurring tasks. |
| `schedule` | string | No | Adherence schedule for when the task can be scheduled. Defaults to 'Work Hours' if not specified. |
| `frequency` | string | Yes | Frequency pattern for task recurrence. Examples: 'daily_every_day', 'daily_every_week_day', 'weekly_specific_days_[MO,FR]', 'monthly_1', 'monthly_first_monday', 'quarterly_first_day'. See Motion API frequency documentation for all patterns. |
| `idealTime` | string | No | Preferred scheduling time in HH:mm format (24-hour time). Motion will try to schedule the task around this time. |
| `assigneeId` | string | Yes | User ID to assign the task to. Use the list_users action to get valid user IDs. |
| `startingOn` | string | No | ISO 8601 date string for when the recurrence should start. Defaults to today if not specified. |
| `description` | string | No | Task description. HTML input is accepted. |
| `workspaceId` | string | Yes | The workspace ID where the recurring task will be created |
| `deadlineType` | string ("HARD" | "SOFT") | No | Deadline type for recurring tasks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task

**Slug:** `MOTION_CREATE_TASK`

Tool to create a new task in Motion. Use when you need to add a task to a workspace with specified properties like name, priority, due date, and assignee.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the task |
| `labels` | array | No | List of label names to apply to the task. Labels must exist in the workspace. |
| `status` | string | No | Task status name. Must match a valid status in the workspace. Use ListStatuses action to get available statuses. |
| `dueDate` | string | No | ISO 8601 formatted due date for the task (e.g., '2024-12-31T23:59:59Z') |
| `duration` | string | No | Duration in minutes (e.g., '60' for 1 hour) or 'REMINDER' for a reminder-only task |
| `priority` | string ("ASAP" | "HIGH" | "MEDIUM" | "LOW") | No | Priority levels for Motion tasks. |
| `projectId` | string | No | Project ID to associate the task with. The project must exist in the workspace. |
| `assigneeId` | string | No | User ID to assign the task to. The user must be a member of the workspace. |
| `description` | string | No | Task description in GitHub Flavored Markdown (GFM) format |
| `workspaceId` | string | Yes | The workspace ID where the task will be created |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field

**Slug:** `MOTION_DELETE_CUSTOM_FIELD`

Tool to delete a custom field from Motion workspace. Use when you need to remove a custom field that is no longer needed. This operation is permanent and cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The custom field ID to delete |
| `workspaceId` | string | Yes | The workspace ID where the custom field exists |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field From Project

**Slug:** `MOTION_DELETE_CUSTOM_FIELD_FROM_PROJECT`

Tool to delete a custom field value from a project in Motion. Use when you need to remove a custom field value from a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `valueId` | string | Yes | The ID of the custom field value that will be deleted. |
| `projectId` | string | Yes | The project ID from which a custom field value will be deleted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field From Task

**Slug:** `MOTION_DELETE_CUSTOM_FIELD_FROM_TASK`

Tool to delete a custom field value from a task in Motion. Use when you need to remove a custom field value from a specific task by providing the task ID and custom field value ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `taskId` | string | Yes | The unique identifier of the task from which to delete the custom field value. |
| `valueId` | string | Yes | The unique identifier of the custom field value to delete from the task. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Recurring Task

**Slug:** `MOTION_DELETE_RECURRING_TASK`

Tool to delete a recurring task from Motion based on the ID supplied. Use when you need to remove a recurring task permanently from the system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the recurring task to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task

**Slug:** `MOTION_DELETE_TASK`

Tool to delete a task from Motion based on task ID. Use when you need to permanently remove a task from the Motion workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the task to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get My User Information

**Slug:** `MOTION_GET_MY_USER`

Tool to get information on the owner of the API key. Use when you need to retrieve the current user's profile details including their ID, name, and email address.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `MOTION_GET_PROJECT`

Tool to retrieve a single project by its ID. Use when you need to get detailed information about a specific project including its name, description, status, and custom field values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the project to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task by ID

**Slug:** `MOTION_GET_TASK`

Tool to retrieve a task by its ID from Motion. Returns complete task details including title, description, due date, priority, assignees, scheduling information, and custom fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The id of the task to fetch |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List comments on task

**Slug:** `MOTION_LIST_COMMENTS`

Tool to get all comments on a specific task. Use when you need to retrieve comment history for a task. Supports cursor-based pagination for tasks with many comments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Use if a previous request returned a cursor. Will page through results. Pass the nextCursor value from the previous response to get the next page. |
| `taskId` | string | Yes | The ID of the task to get comments for. Required parameter to fetch all comments associated with a specific task. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Custom Fields

**Slug:** `MOTION_LIST_CUSTOM_FIELDS`

Tool to retrieve all custom fields for a given Motion workspace. Use when you need to see what custom fields are available in a workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | Yes | The workspace ID to get custom fields from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `MOTION_LIST_PROJECTS`

Tool to get all projects for a workspace. Use when you need to retrieve all projects accessible to the API key, optionally filtered by workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Use if a previous request returned a cursor. Will page through results. |
| `workspace_id` | string | No | The workspace ID to get projects from. If not provided, returns projects from all workspaces accessible by the API key. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recurring Tasks

**Slug:** `MOTION_LIST_RECURRING_TASKS`

Tool to get all recurring tasks for a workspace. Use when you need to retrieve recurring task information from Motion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Cursor for pagination. Use the nextCursor value from a previous response to get the next page of results. |
| `workspaceId` | string | Yes | The workspace to get recurring tasks from. Required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Schedules

**Slug:** `MOTION_LIST_SCHEDULES`

Tool to get a list of schedules for your user. Use when you need to retrieve the user's scheduling configuration including work hours and timezone settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Statuses

**Slug:** `MOTION_LIST_STATUSES`

Tool to get a list of statuses for a Motion workspace. Use when you need to retrieve available task statuses for a workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspaceId` | string | No | Get statuses for a particular workspace. If not provided, returns statuses for all workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Tasks

**Slug:** `MOTION_LIST_TASKS`

Tool to get all tasks for a given query with optional filtering. Use when you need to retrieve tasks from Motion, optionally filtered by assignee, project, workspace, status, label, or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter tasks containing this string in their name. Performs a case-insensitive substring match on task names. |
| `label` | string | No | Limit tasks returned by label. Filter tasks that have this specific label attached. |
| `cursor` | string | No | Pagination cursor. Use if a previous request returned a nextCursor value in the meta field to fetch the next page of results. |
| `status` | array | No | Limit tasks by status array. Provide a list of status names to filter tasks with those specific statuses. |
| `projectId` | string | No | Limit tasks to a given project. Use the project's ID to filter tasks belonging to that project. |
| `assigneeId` | string | No | Limit tasks returned to a specific assignee. Use the assignee's user ID to filter tasks assigned to that person. |
| `workspaceId` | string | No | The workspace to get tasks from. Use the workspace ID to scope the task list to a specific workspace. |
| `includeAllStatuses` | boolean | No | Include tasks with all statuses. Set to true to include tasks with any status, or false/omit to only include tasks with active statuses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List users

**Slug:** `MOTION_LIST_USERS`

Tool to get a list of users for a given workspace or team. Use when you need to retrieve user information from Motion. Supports pagination via cursor and filtering by workspaceId or teamId.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Use if a previous request returned a cursor. Will page through results. Pass the nextCursor value from the previous response to get the next page. |
| `teamId` | string | No | The ID of the team to filter users by. Filters results to return only users in the specified team. |
| `workspaceId` | string | No | The ID of the workspace to get users from. Filters results to return only users in the specified workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspaces

**Slug:** `MOTION_LIST_WORKSPACES`

Tool to retrieve all workspaces a user has access to. Use when you need to discover available workspaces, filter for specific workspace IDs, or paginate through workspace results. Returns workspace details including type, team, labels, and statuses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | No | Array of workspace IDs to retrieve specific workspaces. If provided, only returns workspaces matching these IDs. If not provided, returns all workspaces the user has access to. |
| `cursor` | string | No | Pagination cursor to retrieve the next page of results. Use the nextCursor value from the previous response's meta object to fetch more workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Task to Workspace

**Slug:** `MOTION_MOVE_TASK`

Tool to move a task to a different workspace in Motion. Use when you need to relocate a task from one workspace to another.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the task to move |
| `assigneeId` | string | No | The user ID to assign the task to in the new workspace |
| `workspaceId` | string | Yes | The workspace ID to move the task to |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unassign Task

**Slug:** `MOTION_UNASSIGN_TASK`

Tool to unassign a task from its current assignee. Use when you need to remove the assignee from a task, leaving the task unassigned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the task to unassign from its current assignee |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `MOTION_UPDATE_TASK`

Tool to update an existing task in Motion. Use when you need to modify task properties like name, priority, due date, status, or assignee. Only provide the fields you want to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The task ID to update |
| `name` | string | No | Task title |
| `labels` | array | No | List of label names to apply to the task |
| `status` | string | No | Task status name. Must match a valid status in the workspace. |
| `dueDate` | string | No | ISO 8601 due date for the task. Required for scheduled tasks. |
| `duration` | string | No | Duration in minutes (>0), 'NONE' for no duration, or 'REMINDER' for reminder tasks |
| `priority` | string ("ASAP" | "HIGH" | "MEDIUM" | "LOW") | No | Priority levels for Motion tasks. |
| `projectId` | string | No | Project ID to associate the task with |
| `assigneeId` | string | No | User ID to assign the task to |
| `description` | string | No | Task description in GitHub Flavored Markdown (GFM) format |
| `autoScheduled` | object | No | Auto-scheduling configuration for a task. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
