> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Adobe Workfront

> **This Connector is in Beta**
>
> Merge has validated Adobe Workfront against the provider's documented API and not yet verified it against the live one, so its behavior can differ from the documentation. It carries the same tool surface it will have at general availability. [Connectors overview](/merge-agent-handler/connectors/overview) covers the tier and how to turn Beta Connectors off.

**Authentication:** OAuth, server-to-server credentials, or API key. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* List every task on the Q3 Website Relaunch project that is past due and who owns it.
* Create a document approval for the new pricing deck and send reminders to anyone who hasn't decided yet.
* Report logged hours by user on the Brand Refresh project for last month.

## Available Tools

#### list_approval_templates

List the approval templates the user can see, for create_approval_from_template. The API has no server-side filter or...

#### get_approval_template

Get one approval template with its stages and default participants. Use list_approval_templates to find template IDs....

#### create_approval_template

Create a reusable document approval template with named stages and default approvers. Use search_users for user IDs a...

#### update_approval_template

Update an approval template's name and stages. The API requires the full name and stage list, so call get_approval_te...

#### delete_approval_template

Permanently delete an approval template. Approvals already created from it are kept. Use list_approval_templates to f...

#### get_document_approval

Get the approval on a document version: status, stages, and participants with their decisions. Returns approval_id nu...

#### create_document_approval

Start an approval on a document version with one or more stages of approvers/reviewers. Use search_users for user IDs...

#### create_approval_from_template

Apply an approval template to a document version: reads the template, then adds its stages (creating the approval if ...

#### replace_approval_stages

Replace the stages of a document version's approval: add, remove, or reorder stages or paths. Unstarted stages left o...

#### update_approval_stage

Update one approval stage's name, deadline, participants, or rules. Send the full participant list. Use get_document\_...

#### delete_approval_stage

Delete one stage that has not started yet (e.g. a later stage waiting on another) from a document version's approval....

#### delete_document_approval

Delete the whole approval (every stage, participant, and decision) from a document version. Use get_document_approval...

#### add_approval_participants

Add approvers or reviewers to an existing approval. Set stage_id (from get_document_approval) on each for multi-stage...

#### remove_approval_participant

Remove a user or team from a document version's approval. Removing the last participant deletes the approval (deleted...

#### remind_approval_participant

Send a reminder to one approval participant. Pass stage_id to remind them about a specific stage (uses the stage-scop...

#### remind_undecided_participants

Send reminders to every participant who has not decided yet on a document version's approval, or only on one stage wh...

#### list_comments

List the comments on a project, task, issue, or document (obj_code + object_id), or search comments across objects wi...

#### count_comments

Count the comments on a project, task, issue, or document, or across objects with filters, without fetching them.

#### get_comment

Get one comment by ID, with its text, author, and thread. Use list_comments to find IDs.

#### create_comment

Post a comment on a project, task, issue, or document (obj_code + object_id from the matching list tool), or reply to...

#### update_comment

Replace a comment's text. Use list_comments to find the ID; only the author can edit.

#### delete_comment

Permanently delete a comment. Use list_comments to find the ID.

#### like_comment

Like a comment as the signed-in user. Use list_comments to find the ID; undo with unlike_comment.

#### unlike_comment

Remove the signed-in user's like from a comment. Use list_comments to find the ID.

#### list_object_types

List every Workfront object type with its code (PROJ, TASK, OPTASK, PORT, PRGM, TMPL, DOCV, HOURT, ...). Use the code...

#### get_object_metadata

Get an object type's schema: field names and types, references and collections (for 'owner:name' style field paths), ...

#### search_objects

Search any Workfront object type (portfolios, programs, templates, document versions, hour types, teams, groups, ...)...

#### count_objects

Count Workfront objects of any type that match filters, without fetching them , e.g. how many current projects or ove...

#### report_objects

Group and aggregate Workfront objects server-side , e.g. hours summed per project, or project counts per status. Use ...

#### get_object

Get one Workfront object of any type by ID, with chosen fields (e.g. 'name,owner:name,DE:Region'). Use search_objects...

#### create_object

Create a Workfront object of any type (portfolio, program, company, assignment, ...). Call get_object_metadata first ...

#### update_object

Update fields on a Workfront object of any type. Call get_object_metadata for field names; use search_objects for IDs...

#### delete_object

Permanently delete a Workfront object of any type by ID. Use search_objects to find IDs; set force=true to remove dep...

#### run_object_action

Run a Workfront action on any object: move a task (projectID), convert an issue to a project or task, assign, mark do...

#### list_custom_forms

List custom forms, optionally only those for one object type (e.g. 'PROJ'). Call get_custom_form next for field names...

#### get_custom_form

Get a custom form's fields: names (use as custom_fields keys), labels, types, required flags, and dropdown options. U...

#### list_documents

List documents, optionally only those attached to one project, task, or issue (attached_to_obj_code + attached_to_id)...

#### get_document

Get one document by ID, including its current version (ID, number, file name, type, size). Use list_documents to find...

#### delete_document

Permanently delete a document and all its versions. Use list_documents to find the ID.

#### list_hours

List logged hours with server-side filters (project, task, issue, user, entry date range) plus any Workfront filter, ...

#### get_hour

Get one hour entry by ID with chosen fields. Use list_hours to find IDs.

#### create_hour

Log hours against exactly one task (list_tasks), issue (list_issues), or project (list_projects). Use search_objects ...

#### update_hour

Change an hour entry's hours, date, hour type, or note. Use list_hours for the ID and search_objects obj_code 'HOURT'...

#### delete_hour

Permanently delete an hour entry. Use list_hours to find the ID.

#### list_issues

List issues and requests with server-side filters (project, status, priority, type, assignee, name) plus any Workfron...

#### get_issue

Get one issue or request by ID with chosen fields. Use list_issues to find IDs.

#### create_issue

Log an issue or request on a project (project_id from list_projects). Use search_users for assignee IDs. Returns the ...

#### update_issue

Update an issue's name, status, priority, severity, type, assignee, due date, or custom fields. Use list_issues for t...

#### delete_issue

Permanently delete an issue. Use list_issues for the ID; force=true also deletes logged hours.

#### list_my_work

List the signed-in user's open work , the tasks and issues in their My Work list. Use list_tasks or list_issues with ...

#### list_fields

List the fields of a Workfront Planning record type (cursor pagination). Returns the field IDs that record data, sear...

#### get_field

Get one Workfront Planning field, including its type, select options, and type settings. Use list_fields to find the ...

#### create_field

Add a field to a Workfront Planning record type (list_record_types for the ID). Date, number, percentage, currency, a...

#### update_field

Change a Workfront Planning field's name, description, select options, or type settings; unset inputs are kept. Use l...

#### delete_field

Delete a Workfront Planning field and its values on every record. Use list_fields to find the ID. Needs the Adobe sig...

#### search_records

Search or browse records of a Workfront Planning record type, with filter, sort, grouping, field selection, and page/...

#### get_record

Get one Workfront Planning record with its field values keyed by field ID. Use search_records to find the ID and list...

#### create_record

Create one Workfront Planning record. Call list_fields first to get the field IDs for data keys; use list_record_type...

#### update_record

Change field values on a Workfront Planning record; fields not given are kept. Use search_records for the record ID a...

#### delete_record

Delete one Workfront Planning record. Use search_records to find the ID; for many records use bulk_record_actions wit...

#### bulk_record_actions

Create, update (replace data), patch (change given fields), or delete up to 100 Workfront Planning records of one rec...

#### move_records

Reorder Workfront Planning records by placing them before or after another record. Use list_record_types for the reco...

#### get_record_history

List the field change history of a Workfront Planning record (cursor pagination). Use search_records to find the reco...

#### list_record_types

List the record types in a Workfront Planning workspace (cursor pagination). Returns the record type IDs that search\_...

#### get_record_type

Get one Workfront Planning record type. Use list_record_types to find the ID; its fields come from list_fields. Needs...

#### create_record_type

Create a record type (e.g. 'Campaign') in a Workfront Planning workspace. Use list_workspaces for the workspace ID; a...

#### update_record_type

Change a Workfront Planning record type's name, description, icon, color, or primary field; unset fields are kept. Us...

#### delete_record_type

Permanently delete a Workfront Planning record type and all of its records. Use list_record_types to find the ID. To ...

#### list_addable_global_record_types

List global record types a Workfront Planning workspace can use (cursor pagination). Adding one is done in the Workfr...

#### detach_global_record_type

Remove a global record type from one Workfront Planning workspace without deleting it. Use list_workspaces and list_r...

#### get_planning_sharing

List who has access to a Workfront Planning workspace, record type, record, view, or field, with each member's role. ...

#### update_planning_sharing

Grant, change, or revoke access to a Workfront Planning workspace, record type, record, view, or field; for records a...

#### list_views

List the saved views (table, timeline, calendar, list, gallery) of a Workfront Planning record type (cursor paginatio...

#### get_view

Get one Workfront Planning view with its filter, sorting, grouping, and layout settings. Use list_views to find the I...

#### create_view

Create a saved view of a Workfront Planning record type. Use list_record_types for the record type ID and list_fields...

#### update_view

Change a Workfront Planning view's name, filter, sorting, grouping, layout, or visibility; unset inputs are kept. Use...

#### delete_view

Delete a Workfront Planning view; the records it showed are kept. Use list_views to find the ID. Needs the Adobe sign...

#### list_workspaces

List Workfront Planning workspaces with cursor pagination. Returns the workspace IDs that list_record_types and creat...

#### get_workspace

Get one Workfront Planning workspace, including its record type sections. Use list_workspaces to find the ID. Needs t...

#### create_workspace

Create a Workfront Planning workspace. Returns its ID for create_record_type. Needs the Adobe sign-in or server-to-se...

#### update_workspace

Change a Workfront Planning workspace's name, description, color, icon, or record type sections; unset fields are kep...

#### delete_workspace

Permanently delete a Workfront Planning workspace and everything in it. Use list_workspaces to find the ID. Needs the...

#### list_projects

List projects with server-side filters (status, owner, portfolio, program, group, name) plus any Workfront filter, so...

#### get_project

Get one project by ID with chosen fields (e.g. 'name,status,owner:name,DE:Budget'). Use list_projects to find IDs.

#### create_project

Create a project, optionally from a template (template_id via search_objects obj_code 'TMPL'). Use search_users for o...

#### update_project

Update a project's name, status, dates, owner, portfolio/program, or custom fields. Use list_projects for the ID and ...

#### delete_project

Permanently delete a project. Use list_projects for the ID; force=true also deletes its tasks, issues, and hours. Con...

#### list_tasks

List tasks with server-side filters (project, status, assignee, parent, name) plus any Workfront filter, sorting, and...

#### get_task

Get one task by ID with chosen fields (e.g. 'name,status,assignments:assignedTo:name'). Use list_tasks to find IDs.

#### create_task

Create a task in a project (project_id from list_projects). Use search_users for assignee IDs and list_tasks for pare...

#### update_task

Update a task's name, status, percent complete, dates, assignee, priority, or custom fields. Use list_tasks for the I...

#### delete_task

Permanently delete a task. Use list_tasks for the ID; force=true also deletes subtasks and logged hours.

#### search_users

Search Workfront users by name, email, active status, or home group, plus any Workfront filter. Returns user IDs for ...

#### get_user

Get one user by ID with chosen fields. Use search_users to find IDs.

#### get_current_user

Get the Workfront user the connection acts as , their ID, name, email, and access level. Use the ID wherever a tool a...