# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Adobe Workfront Program API version: 1.0.0 extends: openapi/adobe-suite-program-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 22 - target: $.paths['/program/{id}'].get update: x-apievangelist-phrasing: intent: Look up one Workfront program effect: read questions: - How do I pull up a single program in Workfront by its ID? - Can I choose which fields come back when I fetch one program? instructions: - text: Show me program {id}. slots: id: path.id - text: Get program {id} with only the fields {fields}. slots: id: path.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program/{id}'].put update: x-apievangelist-phrasing: intent: Update one program effect: write questions: - Can I change the details of an existing program by its ID? - What call edits a single program record? instructions: - text: Edit program {id} with my changes. slots: id: path.id - text: Update program {id} and return {fields} afterwards. slots: id: path.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program/{id}'].delete update: x-apievangelist-phrasing: intent: Delete one program effect: destructive questions: - How do I delete a single program? - Is there a force option when removing a program that others depend on? instructions: - text: Delete program {id}. slots: id: path.id - text: Force-delete program {id} with force set to {force}. slots: id: path.id force: query.force method: generated generated: '2026-09-26' - target: $.paths['/program'].get update: x-apievangelist-phrasing: intent: Fetch several programs by their IDs effect: read questions: - Can I load a batch of programs at once if I already know their IDs? - Which request returns multiple specific programs in one go? instructions: - text: Fetch programs {id}. slots: id: query.id - text: Get programs {id} showing just {fields}. slots: id: query.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program'].put update: x-apievangelist-phrasing: intent: Update many programs in one request effect: write questions: - Is there a bulk edit for programs? - Can I push the same changes to a whole set of programs at once? instructions: - text: Bulk edit these programs with my changes. - text: Apply my updates to several programs and return {fields}. slots: fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program'].post update: x-apievangelist-phrasing: intent: Create a program effect: write questions: - How do I set up a new program to group projects? - Can I create a program and get specific fields back in the response? instructions: - text: Create a new program. - text: Create a program and return {fields}. slots: fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program'].delete update: x-apievangelist-phrasing: intent: Delete many programs at once effect: destructive questions: - Can I delete a list of programs in one request? - What happens if I bulk delete programs with the force flag? instructions: - text: Delete programs {id}. slots: id: query.id - text: Bulk delete programs {id} with force {force}. slots: id: query.id force: query.force method: generated generated: '2026-09-26' - target: $.paths['/program/count'].get update: x-apievangelist-phrasing: intent: Count programs matching filters effect: read questions: - How many programs do we have in Workfront? - Can I count only the programs that match a filter? instructions: - text: Count all programs. - text: Count programs matching {filters}. slots: filters: query.filters method: generated generated: '2026-09-26' - target: $.paths['/program/search'].get update: x-apievangelist-phrasing: intent: Search programs by criteria effect: read questions: - Which programs match a given set of filters? - Can I search programs and page through the results? instructions: - text: Search programs where {filters}. slots: filters: query.filters - text: Find programs matching {filters} and return {fields}. slots: filters: query.filters fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/program/report'].get update: x-apievangelist-phrasing: intent: Run a grouped report on programs effect: read questions: - Can I get an aggregated report of programs instead of raw records? - What does a program report grouped by filters look like? instructions: - text: Run a program report filtered by {filters}. slots: filters: query.filters - text: Build a program report with list options {listOptions}. slots: listOptions: query.listOptions method: generated generated: '2026-09-26' - target: $.paths['/program/{id}/share'].put update: x-apievangelist-phrasing: intent: Share a program with a user or team effect: write questions: - How do I give someone access to a specific program? - Can I share a program but forbid certain actions? instructions: - text: Share program {id} with {accessorObjCode} {accessorID} at {coreAction} access. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction - text: Grant {accessorID} {coreAction} on program {id} as a {accessorObjCode}, blocking {forbiddenActions}. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/program/share'].put update: x-apievangelist-phrasing: intent: Share several programs with one accessor effect: write questions: - Can I share a batch of programs with the same person in one call? - What is the bulk way to grant access to many programs? instructions: - text: Share programs {id} with {accessorObjCode} {accessorID} at {coreAction} level. slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction - text: Grant {coreAction} on all of programs {id} to {accessorID} ({accessorObjCode}). slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction method: generated generated: '2026-09-26' - target: $.paths['/program/{id}/unshare'].put update: x-apievangelist-phrasing: intent: Remove someone's access to a program effect: destructive questions: - How do I stop sharing a program with a particular user? - Can I revoke a team's access to one program? instructions: - text: Unshare program {id} from {accessorObjCode} {accessorID}. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID - text: Revoke {accessorID}'s access to program {id}; they are a {accessorObjCode}. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID method: generated generated: '2026-09-26' - target: $.paths['/program/unshare'].put update: x-apievangelist-phrasing: intent: Revoke access to several programs at once effect: destructive questions: - Can I pull one user's access from many programs in a single request? - Is there a bulk unshare for programs? instructions: - text: Unshare programs {id} from {accessorObjCode} {accessorID}. slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID - text: Remove {accessorID} ({accessorObjCode}) from every program in {id}. slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID method: generated generated: '2026-09-26' - target: $.paths['/program/{id}/sharePublic'].put update: x-apievangelist-phrasing: intent: Make a program publicly shared effect: write questions: - Can I share a program publicly with everyone rather than one person? - What access level can I give when publicly sharing a program? instructions: - text: Publicly share program {id} with {coreAction} access. slots: id: path.id coreAction: query.coreAction - text: Share program {id} publicly at {coreAction}, forbidding {forbiddenActions}. slots: id: path.id coreAction: query.coreAction forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/program/sharePublic'].put update: x-apievangelist-phrasing: intent: Publicly share several programs effect: write questions: - Is there a bulk way to make many programs public? - Can I publicly share a list of programs with the same access level? instructions: - text: Publicly share programs {id} with {coreAction} access. slots: id: query.id coreAction: query.coreAction - text: Make programs {id} public at {coreAction} but block {forbiddenActions}. slots: id: query.id coreAction: query.coreAction forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/program/{id}/unsharePublic'].put update: x-apievangelist-phrasing: intent: Remove public sharing from a program effect: destructive questions: - How do I make a public program private again? - Can I turn off public access to one program? instructions: - text: Remove public sharing from program {id}. slots: id: path.id - text: Stop publicly sharing program {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/program/unsharePublic'].put update: x-apievangelist-phrasing: intent: Remove public sharing from several programs effect: destructive questions: - Can I switch off public sharing for a batch of programs together? - What's the bulk call to make public programs private? instructions: - text: Remove public sharing from programs {id}. slots: id: query.id - text: Make programs {id} no longer public. slots: id: query.id method: generated generated: '2026-09-26' - target: $.paths['/program/calculateDataExtension'].put update: x-apievangelist-phrasing: intent: Recalculate a program's custom data effect: write questions: - How do I force Workfront to recalculate calculated custom fields on a program? - Can I refresh the custom form data extension values for a program? instructions: - text: Recalculate the custom data extension for program {ID}. slots: ID: query.ID - text: Refresh calculated custom fields on program {ID}. slots: ID: query.ID method: generated generated: '2026-09-26' - target: $.paths['/program/linkExternalObject'].put update: x-apievangelist-phrasing: intent: Link a program to an external object effect: write questions: - Can I attach an object from an outside integration to a program? - What details do I need to link an external item to a program? instructions: - text: Link external object {linkedObjectID} to program {objID} via {integrationType}. slots: linkedObjectID: query.linkedObjectID objID: query.objID integrationType: query.integrationType - text: Link program {objID} to external item {linkedObjectID} at {URL}. slots: objID: query.objID linkedObjectID: query.linkedObjectID URL: query.URL method: generated generated: '2026-09-26' - target: $.paths['/program/move'].put update: x-apievangelist-phrasing: intent: Move a program to another portfolio effect: write questions: - How do I move a program into a different portfolio? - Can I reassign which portfolio a program belongs to? instructions: - text: Move program {ID} to portfolio {portfolioID}. slots: ID: query.ID portfolioID: query.portfolioID - text: Move program {ID} into portfolio {portfolioID} with options {options}. slots: ID: query.ID portfolioID: query.portfolioID options: query.options method: generated generated: '2026-09-26' - target: $.paths['/program/unlinkExternalObject'].put update: x-apievangelist-phrasing: intent: Unlink an external object from a program effect: destructive questions: - How do I detach a linked external item from a program? - Can I remove an integration link from a program? instructions: - text: Unlink external object {linkedObjectID} from program {objID}. slots: linkedObjectID: query.linkedObjectID objID: query.objID - text: Remove the {integrationType} link {linkedObjectID} from program {objID}. slots: integrationType: query.integrationType linkedObjectID: query.linkedObjectID objID: query.objID method: generated generated: '2026-09-26'