### Workfront API - Track Hour Records Source: https://experienceleague.adobe.com/en/docs/workfront/using/timesheets/tips-tricks-troubleshooting-for-timesheets/track-hour-records-with-wfapi This section details how to interact with the Adobe Workfront API to track hour records. It covers the necessary endpoints, parameters, and examples for successful integration. ```APIDOC ## Workfront API - Track Hour Records ### Description This API documentation outlines the methods and endpoints for tracking hour records within Adobe Workfront using its API. You can retrieve, create, update, or delete hour records programmatically. ### Method GET, POST, PUT, DELETE ### Endpoint /attask/api/vversion/hour ### Parameters #### Path Parameters - **vversion** (string) - Required - The API version (e.g., '6.0'). #### Query Parameters - **fields** (string) - Optional - Specifies which fields to return in the response. - **limit** (integer) - Optional - Limits the number of results returned. - **offset** (integer) - Optional - Offsets the results by a specified number. #### Request Body (for POST/PUT) - **user** (object) - Required - The user associated with the hour record. - **ID** (string) - Required - The ID of the user. - **date** (string) - Required - The date of the hour record (YYYY-MM-DD). - **duration** (number) - Required - The duration in hours. - **workitem** (object) - Optional - The work item associated with the hour record. - **ID** (string) - Required - The ID of the work item. - **task** (object) - Optional - The task associated with the hour record. - **ID** (string) - Required - The ID of the task. - **logDate** (string) - Optional - The date the hours were logged (YYYY-MM-DD). ### Request Example (POST) ```json { "hour": { "user": { "ID": "5a2a4b9b8f1e4b0011e83e3e" }, "date": "2023-10-27", "duration": 8, "workitem": { "ID": "5a2a4b9b8f1e4b0011e83e4f" } } } ``` ### Response #### Success Response (200) - **data** (array) - An array of hour record objects matching the query. - **ID** (string) - The ID of the hour record. - **user** (object) - Information about the user. - **date** (string) - The date of the hour record. - **duration** (number) - The duration in hours. #### Response Example (GET) ```json { "data": [ { "ID": "653b0c3f3670d10011a7e4c1", "user": { "ID": "5a2a4b9b8f1e4b0011e83e3e", "name": "John Doe" }, "date": "2023-10-27T00:00:00.000Z", "duration": 8 } ] } ``` ``` -------------------------------- ### GET /attask/api/v5.0/JRNLE/search Source: https://experienceleague.adobe.com/en/docs/workfront/using/timesheets/tips-tricks-troubleshooting-for-timesheets/track-hour-records-with-wfapi Retrieves journal entries for hour records to track changes like additions, edits, and deletions. This endpoint is crucial for synchronizing hour data between Adobe Workfront and other systems. ```APIDOC ## GET /attask/api/v5.0/JRNLE/search ### Description This endpoint retrieves journal entries related to hour records in Adobe Workfront. It allows you to track changes made to hours, including additions, edits, and deletions, by analyzing the `changeType` field. This is essential for maintaining data consistency between Workfront and external systems. ### Method GET ### Endpoint /attask/api/v5.0/JRNLE/search ### Parameters #### Query Parameters - **subObjCode** (string) - Required - Specifies the object code to filter by. Should be 'HOUR' for tracking hour records. - **fields** (string) - Optional - Comma-separated list of fields to include in the response. Example: `changeType,aux2,newNumberVal,oldNumberVal,subObjCode,subObjID` ### Request Example ``` GET /attask/api/v5.0/JRNLE/search?subObjCode=HOUR&fields=changeType,aux2,newNumberVal,oldNumberVal,subObjCode,subObjID ``` ### Response #### Success Response (200) - **data** (array) - An array of journal entry objects. - **ID** (string) - The unique identifier for the journal entry. - **objCode** (string) - The object code of the journal entry (e.g., 'JRNLE'). - **changeType** (string) - The type of change made: 'A' (Add), 'E' (Edit), 'D' (Delete). - **aux2** (string) - The name of the user associated with the hour record. - **newNumberVal** (number or null) - The new value of the hour record. Null if `changeType` is 'D'. - **oldNumberVal** (number or null) - The previous value of the hour record. - **subObjCode** (string) - The object code of the modified record (should be 'HOUR'). - **subObjID** (string) - The ID of the specific Hour record that was modified. #### Response Example ```json { "data": [ { "ID": "5785406d008d93dd35665f14d90d4929", "objCode": "JRNLE", "changeType": "A", "aux2": "Brad Littler", "newNumberVal": 1, "oldNumberVal": null, "subObjCode": "HOUR", "subObjID": "5785406d008d93dce3f7f2e0e8eda4ea" }, { "ID": "57854124008da2b9f372c01f8b9054bf", "objCode": "JRNLE", "changeType": "D", "aux2": "Brad Littler", "newNumberVal": null, "oldNumberVal": 1, "subObjCode": "HOUR", "subObjID": "5785406d008d93dce3f7f2e0e8eda4ea" } ] } ``` ``` -------------------------------- ### Workfront Journal Entry Response Structure (JSON) Source: https://experienceleague.adobe.com/en/docs/workfront/using/timesheets/tips-tricks-troubleshooting-for-timesheets/track-hour-records-with-wfapi Example JSON response from the Workfront API's journal entry search. It details individual hour record modifications, including change type, user, and new/old values. ```json { "data": [ { "ID": "5785406d008d93dd35665f14d90d4929", "objCode": "JRNLE", "changeType": "A", "aux2": "Brad Littler", "newNumberVal": 1, "oldNumberVal": null, "subObjCode": "HOUR", "subObjID": "5785406d008d93dce3f7f2e0e8eda4ea" }, { "ID": "57854124008da2b9f372c01f8b9054bf", "objCode": "JRNLE", "changeType": "D", "aux2": "Brad Littler", "newNumberVal": null, "oldNumberVal": 1, "subObjCode": "HOUR", "subObjID": "5785406d008d93dce3f7f2e0e8eda4ea" }, { "ID": "5785416f008db05ecee934663a968366", "objCode": "JRNLE", "changeType": "A", "aux2": "Brad Littler", "newNumberVal": 1, "oldNumberVal": null, "subObjCode": "HOUR", "subObjID": "5785416f008db05d9d2925c12b10f521" }, { "ID": "57854176008db22fe974b7c67feea6b2", "objCode": "JRNLE", "changeType": "E", "aux2": "Brad Littler", "newNumberVal": 2, "oldNumberVal": 1, "subObjCode": "HOUR", "subObjID": "5785416f008db05d9d2925c12b10f521" } ] } ``` -------------------------------- ### Workfront Proof API Overview Source: https://experienceleague.adobe.com/en/docs/workfront/using/workfront-proof/wf-proof-integrations/wf-proof-api/wp-api This section details the available endpoints for the Workfront Proof API, including information on authentication, request formats, and response structures. ```APIDOC ## Workfront Proof API Endpoints This API allows programmatic access to Workfront Proof functionalities, enabling integrations and automated workflows. ### Authentication Authentication is typically handled via API keys or OAuth tokens. Please refer to the Workfront Proof developer portal for specific authentication mechanisms. ### Base URL The base URL for the Workfront Proof API is: `https://api.proofhq.com/v1` ### Endpoints * **GET /projects** * **Description:** Retrieves a list of projects. * **Method:** GET * **Endpoint:** `/projects` * **Query Parameters:** * `limit` (integer) - Optional - The maximum number of projects to return. * `offset` (integer) - Optional - The number of projects to skip. * **Success Response (200):** * `projects` (array) - A list of project objects. * `id` (string) - The unique identifier for the project. * `name` (string) - The name of the project. * **Response Example:** ```json { "projects": [ { "id": "proj_12345", "name": "Website Redesign" } ] } ``` * **POST /projects** * **Description:** Creates a new project. * **Method:** POST * **Endpoint:** `/projects` * **Request Body:** * `name` (string) - Required - The name of the new project. * **Request Example:** ```json { "name": "New Marketing Campaign" } ``` * **Success Response (201):** * `id` (string) - The unique identifier for the newly created project. * `name` (string) - The name of the newly created project. * **Response Example:** ```json { "id": "proj_67890", "name": "New Marketing Campaign" } ``` * **GET /projects/{projectId}** * **Description:** Retrieves details for a specific project. * **Method:** GET * **Endpoint:** `/projects/{projectId}` * **Path Parameters:** * `projectId` (string) - Required - The ID of the project to retrieve. * **Success Response (200):** * `id` (string) - The unique identifier for the project. * `name` (string) - The name of the project. * `createdAt` (string) - The timestamp when the project was created. * **Response Example:** ```json { "id": "proj_12345", "name": "Website Redesign", "createdAt": "2023-10-27T10:00:00Z" } ``` ### Error Handling Standard HTTP error codes are used. For example, a `404 Not Found` error will be returned if a specified project ID does not exist, and a `400 Bad Request` will be returned for invalid input parameters. ``` -------------------------------- ### List Method and Separator Configuration Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report Define how items within a collection are listed and separated using the `listmethod=` parameter. Supports nested collections and various separators. ```APIDOC ## List Method and Separator Configuration ### Description Specifies how the values of a collection are listed and separated. This includes options for nested collections and custom separators like comma, slash, or dash. ### Method Not applicable (configuration parameter) ### Endpoint Not applicable (configuration parameter) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example `listmethod=nested(collection object name).list` `listmethod=,` `listmethod=/` `listmethod=-` `listmethod=` ### Response Not applicable (configuration parameter) ``` -------------------------------- ### Workfront: Define Nested List Method for Collections Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This configuration defines how a collection is displayed using a nested list method. It requires referencing a 'collection object name' from the API Explorer. The value is typically the plural form of the collection object. Example: `listmethod=nested(tasks).list` ```text listmethod=nested(collection object name).list ``` -------------------------------- ### Track Hour Records with Workfront API Source: https://experienceleague.adobe.com/en/docs/workfront/using/timesheets/tips-tricks-troubleshooting-for-timesheets/track-hour-records-with-wfapi This section details the process of tracking hour records using the Workfront API. It's designed for developers integrating Adobe Workfront with other systems to manage time entry data. ```markdown This document outlines the use of the Workfront API for synchronizing hour records. It assumes familiarity with API concepts and the Workfront data model. Ensure you have the necessary API credentials and permissions before proceeding. ``` -------------------------------- ### Display Project Issues List in Workfront Report Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This code configures a Workfront report to display a list of issues associated with a project. It sets the display name, list delimiter, iteration method, and text mode for the output. Dependencies include the Workfront reporting engine and access to project issue data. ```none displayname=Project Issues Names listdelimiter=
listmethod=nested(issues).lists textmode=true type=iterate ``` -------------------------------- ### Format Project Task Names in HTML Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This configuration snippet specifies how to extract and display the names of project tasks from Adobe Workfront in an HTML format. It utilizes an iteration method to access nested task lists and displays the 'name' field, delimited by paragraph tags. ```plaintext valueformat=HTML textmode=true type=iterate listdelimiter=
displayname=Project Tasks Names listmethod=nested(tasks).lists valuefield=name ``` -------------------------------- ### Filter Projects by Task Name (Workfront Query) Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This query filters Workfront projects to include only those with at least one task containing the word 'Marketing' in its name. It uses a `name=` and `name_Mod=cicontains` operator for case-insensitive containment matching. ```none tasks:name=Marketing tasks:name_Mod=cicontains ``` -------------------------------- ### Workfront: Specify Collection Separator Options Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report These options define the separator used between values in a Workfront collection. Options include no separation (``), comma (`,`), slash (`/`), and dash (`-`). Leaving the line empty defaults to a comma followed by a space. ```text ``` ```text , ``` ```text / ``` ```text - ``` -------------------------------- ### Filter Issues by Name (Workfront Query) Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This query filters Workfront issues to include only those whose names contain the word 'Marketing'. It utilizes a simple `name=` operator for filtering. ```none issues:name=Marketing ``` -------------------------------- ### Using Collection Objects and Modifiers in Workfront API Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This section explains how to construct API calls by replacing placeholders for collection object names, fields, and values, and how to use modifiers for filtering data. ```APIDOC ## General API Usage with Collection Objects and Modifiers ### Description This guide details how to correctly format API requests by replacing generic placeholders with specific values relevant to your Workfront instance and desired data. It covers the usage of collection objects, their fields, and the application of modifiers for advanced filtering. ### Method Not Applicable (This is a conceptual guide for API request construction) ### Endpoint Not Applicable (This is a conceptual guide for API request construction) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example **Conceptual Example of URL Construction:** `/api/YOUR_API_VERSION/metadata/collection_object_name?fields=collection_object_field&filters[collection_object_field]=collection_object_value[modifier]` **Specific Example:** To build a project report that displays only projects with tasks that have “Marketing” in their name: `/api/v4/projects?fields=name&filters[tasks.name]=Marketing` ### Response #### Success Response (200) Response structure will vary based on the specific API endpoint and query parameters used. #### Response Example **Conceptual Response:** ```json { "data": [ { "id": "123", "name": "Example Project" } ] } ``` ``` -------------------------------- ### Column Display Name Configuration Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report Configure the display name for a column using the `displayname=` parameter. Replace 'Column Name' with the desired name for your column. ```APIDOC ## Column Display Name Configuration ### Description Sets a custom display name for a column in the Workfront interface. ### Method Not applicable (configuration parameter) ### Endpoint Not applicable (configuration parameter) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example `displayname=My Custom Column Name` ### Response Not applicable (configuration parameter) ``` -------------------------------- ### Workfront Custom Prompt Condition Syntax Source: https://experienceleague.adobe.com/en/docs/workfront/using/reporting/reports/text-mode/reference-collections-report This snippet demonstrates the syntax for defining conditions in custom Workfront report prompts. It involves specifying the collection object name, the collection object field, and the desired value or modifier for the condition. This syntax is specific to the Workfront reporting engine. ```none collection object name:collection object field_Mod=value of the modifier ```