{
  "info": {
    "name": "OnRamp API",
    "description": "Generated from /openapi.json by scripts/generate_postman_collection.py \u2014 do not hand-edit.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.onramp.us"
    },
    {
      "key": "apiKey",
      "value": "YOUR_API_KEY"
    }
  ],
  "item": [
    {
      "name": "activity",
      "item": [
        {
          "name": "Get Organization Activity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "activity"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "1-based page number; below 1 is treated as 1. Defaults to 1."
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Results per page. Values outside 1-200 are clamped to 200. Defaults to 50."
                },
                {
                  "key": "action",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events with this action \u2014 the part of event_type after the dot (e.g. 'created', 'updated', 'completed'). Unk"
                },
                {
                  "key": "object_type",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events about this object type, matching each entry's object.type value (e.g. 'Task', 'Project', 'Data Field'"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events at or after this time (ISO-8601). Values without a timezone offset are treated as UTC."
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events strictly before this time (ISO-8601), so start_date/end_date bound a half-open interval \u2014 to include "
                },
                {
                  "key": "customer_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events for this customer (customer UUID), including events inside that customer's projects. Must be a valid "
                },
                {
                  "key": "user_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events performed by this user (user UUID). Must be a valid UUID when present \u2014 an empty value is rejected ra"
                }
              ],
              "variable": []
            },
            "description": "List activity across your whole organization (newest first), paginated with page/limit/total.\n\nEntries have the same shape as the project activity feed, plus `project` and\n`customer` context so each event can be attributed without a call per project.\nFilter by customer, acting user, action, object type, or a time window."
          }
        }
      ]
    },
    {
      "name": "comments",
      "item": [
        {
          "name": "Get Comment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/comments/{comment_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "comments",
                "{comment_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "comment_uuid",
                  "value": "",
                  "description": "Comment UUID (UUID only; the backend does not accept integer IDs for comments via the public API)"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Comment",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/comments/{comment_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "comments",
                "{comment_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "comment_uuid",
                  "value": "",
                  "description": "Comment UUID (UUID only; the backend does not accept integer IDs for comments via the public API)"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message_plain\": \"\",\n  \"message_rtf\": \"\"\n}"
            }
          }
        },
        {
          "name": "Delete Comment",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/comments/{comment_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "comments",
                "{comment_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "comment_uuid",
                  "value": "",
                  "description": "Comment UUID (UUID only; the backend does not accept integer IDs for comments via the public API)"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "List Task Comments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "comments"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Max results per page (1-500); backend defaults to 100 when omitted"
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": "Results to skip; when omitted the backend defaults to 0"
                }
              ],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Add Comment To Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "comments"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message_plain\": \"Pinging the customer on this. Will follow up Friday.\",\n  \"message_rtf\": \"<p>Pinging the customer on this. Will follow up <b>Friday</b>.</p>\",\n  \"replied_to_comment_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "customers",
      "item": [
        {
          "name": "Get all customers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "primary_email",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": "Use this route to get a list of all active customers for your organization.  This route requires a valid API key."
          }
        },
        {
          "name": "Create A New Customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"ACME Inc\",\n  \"primary_email\": \"acme.inc@test.com\",\n  \"physical_address\": \"123 Main St, Big City, USA\"\n}"
            }
          }
        },
        {
          "name": "Get Customer By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Customer By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "primary_email",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "physical_address",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Update a customer account."
          }
        },
        {
          "name": "Archive A Customer Account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Archive a customer account."
          }
        },
        {
          "name": "Set a data field value on a customer",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": "Data field UUID"
                }
              ]
            },
            "description": "Creates the value if it does not exist yet, otherwise updates it. `value` is required; pass `null` (or an empty string) to clear the value. The change is recorded in activity history and fires data field automation, including CRM field-sync.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\"\n}"
            }
          }
        },
        {
          "name": "List a customer's external (CRM) links",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/external-links",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "external-links"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Returns all external links (links to CRM/integration records) attached to the specified customer account."
          }
        },
        {
          "name": "Link a CRM record to a customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/external-links",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "external-links"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Attaches a link to an external CRM/integration record to the specified customer account.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"external_id\": \"0061t00000abcAAA\",\n  \"external_type\": \"Opportunity\",\n  \"external_label\": \"Acme - New Business\",\n  \"external_link\": \"https://na1.salesforce.com/0061t00000abcAAA\",\n  \"additional_data\": {}\n}"
            }
          }
        },
        {
          "name": "Update a customer's external link",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/external-links/{link_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "external-links",
                "{link_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "link_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Updates the label, deep link, or metadata of an external link. The linked record identity is immutable. This is a partial update: omitted fields are left unchanged, and fields cannot be cleared to null.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_label\": \"Acme - Renamed\",\n  \"external_link\": \"https://na1.salesforce.com/0061t00000abcAAA\",\n  \"additional_data\": {}\n}"
            }
          }
        },
        {
          "name": "Remove an external link from a customer",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/external-links/{link_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "external-links",
                "{link_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "link_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Detaches (archives) the external link from the customer account."
          }
        },
        {
          "name": "List all notes for a customer",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "notes"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Returns a paginated list of all notes associated with the specified customer. Notes are ordered by creation date (newest first)."
          }
        },
        {
          "name": "Create a new note for a customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "notes"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Creates a new note associated with the specified customer. The content field accepts both plain text and HTML.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"<p>This is a note with <strong>rich text</strong> formatting.</p>\",\n  \"title\": \"Meeting Notes\",\n  \"tag_uuids\": [\n    \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n    \"a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6\"\n  ]\n}"
            }
          }
        },
        {
          "name": "Get a specific note",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/notes/{note_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "notes",
                "{note_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "note_id",
                  "value": "",
                  "description": "Note ID (integer) or Note UUID"
                }
              ]
            },
            "description": "Returns a single note by its ID. The note must belong to the specified customer."
          }
        },
        {
          "name": "Update a customer note",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/notes/{note_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "notes",
                "{note_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "note_id",
                  "value": "",
                  "description": "Note ID (integer) or Note UUID"
                }
              ]
            },
            "description": "Updates an existing note. Only the creator of the note can update it.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"<p>Updated note content.</p>\",\n  \"title\": \"Updated Meeting Notes\"\n}"
            }
          }
        },
        {
          "name": "Delete a customer note",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/notes/{note_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "notes",
                "{note_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "note_id",
                  "value": "",
                  "description": "Note ID (integer) or Note UUID"
                }
              ]
            },
            "description": "Soft deletes a note. Only the creator of the note can delete it. Returns 204 No Content on success."
          }
        },
        {
          "name": "List Customer Resources",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/resources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "resources"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "List the customer account's URL link attachments.\nRecords linked from a connected CRM or integration are a separate surface \u2014\nsee the customer's `/external_links` endpoints."
          }
        },
        {
          "name": "Create Customer Resource",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/resources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "resources"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Attach an external URL link (document, video, etc.) to the customer account.\n`/resources` manages URL link attachments; to link a record from a connected\nCRM or integration, use the customer's `/external_links` endpoints instead.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Onboarding Docs\",\n  \"url\": \"https://example.com/docs\",\n  \"description\": \"Getting-started guide\",\n  \"show_to_customer\": true,\n  \"is_key\": false\n}"
            }
          }
        },
        {
          "name": "Update Customer Resource",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/resources/{resource_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "resources",
                "{resource_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "resource_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Update a URL link attached to the customer account (partial update).\nApplies to `/resources` link attachments only; links to CRM/integration\nrecords are managed via the customer's `/external_links` endpoints.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Renamed Docs\",\n  \"url\": \"https://example.com/new\",\n  \"description\": \"Updated guide\",\n  \"show_to_customer\": false,\n  \"is_key\": true\n}"
            }
          }
        },
        {
          "name": "Delete Customer Resource",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/resources/{resource_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "resources",
                "{resource_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "resource_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Detach a URL link from the customer account.\nApplies to `/resources` link attachments only; links to CRM/integration\nrecords are managed via the customer's `/external_links` endpoints."
          }
        },
        {
          "name": "Add Tag To Customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Remove Tag From Customer",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Restore An Archived Customer Account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Restore an archived customer account. Symmetric counterpart to /archive."
          }
        },
        {
          "name": "List a customer's portal contacts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "users"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Returns a page of the customer's portal contacts (customer users) with their membership state. Detached contacts are included with active=false so directory-sync callers can see membership history, which is why the list is paged \u2014 use page and limit. Each entry also carries enabled, the contact's own state: a contact can hold an active membership while being disabled, and write operations addressing a disabled contact return 404."
          }
        },
        {
          "name": "Create a portal contact under a customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "users"
              ],
              "query": [],
              "variable": [
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Creates a new portal contact (customer user) and links it to the customer. No invitation email is sent by default; pass send_invite=true to email the contact a portal invitation. Without it, the portal invitation is delivered when the contact is added to a project. When an invite is requested, the response's invite_sent reports whether it was actually delivered and invite_status carries the reason when it was not \u2014 the contact is created either way.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Jordan\",\n  \"last_name\": \"Rivera\",\n  \"email_address\": \"jordan.rivera@acme.com\",\n  \"phone_number\": \"(123) 456-7890\",\n  \"job_title\": \"Procurement Lead\",\n  \"send_invite\": false\n}"
            }
          }
        },
        {
          "name": "Move an existing portal contact to this customer",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/customers/{customer_id}/users/{user_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                "{customer_id}",
                "users",
                "{user_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "customer_id",
                  "value": "",
                  "description": "Customer ID (integer) or Customer UUID"
                }
              ]
            },
            "description": "Moves an existing portal contact to this customer. A portal contact belongs to exactly one customer, so this deactivates its previous customer link and revokes that customer's project access in the same operation. Reassigning a contact to the customer it is already on is a no-op success. Idempotent."
          }
        }
      ]
    },
    {
      "name": "datafield-values",
      "item": [
        {
          "name": "Bulk Update Datafield Values",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafield-values",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafield-values"
              ],
              "query": [],
              "variable": []
            },
            "description": "Bulk update DataField values\n\nUpdate multiple DataField values in a single request with best-effort processing.\nSuccessful updates persist even if other updates fail.\n\n**Side effects:** each write fires an activity-history entry and data field automation\n(including CRM field-sync), the same as a UI edit. The one exception: a value on an\nobject type mwa's forward does not yet support (org-vendor fields, and user / customer-\nuser / playbook fields) still writes directly and skips those side effect",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"updates\": {\n    \"a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d\": \"New text value\",\n    \"b2c3d4e5-f6a1-4a5b-8c9d-0e1f2a3b4c5d\": [\n      \"Option A\",\n      \"Option B\"\n    ],\n    \"f6e5d4c3-b2a1-4a5b-8c9d-0e1f2a3b4c5d\": \"2025-12-31\"\n  },\n  \"create_option_if_missing\": false,\n  \"dry_run\": false\n}"
            }
          }
        },
        {
          "name": "Get Datafield Value By Uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafield-values/{datafield_value_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafield-values",
                "{datafield_value_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_value_uuid",
                  "value": "",
                  "description": "UUID of the datafield value to retrieve"
                }
              ]
            },
            "description": "Get a datafield value by UUID"
          }
        },
        {
          "name": "Update Datafield Value",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafield-values/{datafield_value_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafield-values",
                "{datafield_value_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_value_uuid",
                  "value": "",
                  "description": "UUID of the datafield value to update"
                }
              ]
            },
            "description": "Update a datafield value by UUID\n\n**Side effects:** this write fires an activity-history entry and data field automation\n(including CRM field-sync), the same as a UI edit \u2014 the write is forwarded through\nmain-web-application's `upsert_from_api` for that. The one exception: a value on an\nobject type mwa's forward does not yet support (org-vendor fields, and user / customer-\nuser / playbook fields) still writes directly here and skips those side effects, exactly\nas this endpoint always has for eve",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\",\n  \"create_option_if_missing\": false\n}"
            }
          }
        },
        {
          "name": "Delete Datafield Value",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafield-values/{datafield_value_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafield-values",
                "{datafield_value_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_value_uuid",
                  "value": "",
                  "description": "UUID of the datafield value to delete"
                }
              ]
            },
            "description": "Delete a datafield value by UUID.\n\nRemoves the value from its object. Returns 404 if no value with that UUID exists."
          }
        }
      ]
    },
    {
      "name": "datafields",
      "item": [
        {
          "name": "Get All Data Fields",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_required",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "object_type_code",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "type",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "apply_on_creation",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create A Data Field",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create a data field.\n\n`permissions` sets the field's edit-permission list; omit or leave empty\nfor editable-by-all.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"object_type_code\": \"\",\n  \"type\": \"\",\n  \"description\": \"\",\n  \"is_required\": false,\n  \"apply_on_creation\": false,\n  \"default_value\": \"\",\n  \"currency\": \"\",\n  \"config\": {},\n  \"permissions\": [\n    \"\"\n  ]\n}"
            }
          }
        },
        {
          "name": "Get Data Field By Uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Data Field",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": "UUID of the datafield to update"
                }
              ]
            },
            "description": "Update a data field's attributes.\n\nArchiving and unarchiving are not supported here \u2014 use\nPOST /v1/datafields/{datafield_uuid}/archive and /unarchive, which also\nupdate saved views referencing the field.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"default_value\": \"\",\n  \"is_required\": false,\n  \"apply_on_creation\": false,\n  \"currency\": \"\"\n}"
            }
          }
        },
        {
          "name": "Archive A Data Field",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Archive a data field."
          }
        },
        {
          "name": "List Data Field Options",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/options",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "options"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "List a dropdown/multi_select data field's options.\n\nRead-only, served from the same Postgres (no main-web-app round trip). 404 for an\nunknown field; 400 for a field type that has no options."
          }
        },
        {
          "name": "Create A Data Field Option",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/options",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "options"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Create an option on a dropdown/multi_select data field.\n\nForwards to main-web-app (the option write + its side-effects are single-homed there);\nthe created option in the upstream response becomes the payload.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\",\n  \"color\": \"\"\n}"
            }
          }
        },
        {
          "name": "Update A Data Field Option",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/options/{option_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "options",
                "{option_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "option_id",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Rename and/or recolor an option. A rename preserves existing assignments (rewritten upstream).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\",\n  \"color\": \"\"\n}"
            }
          }
        },
        {
          "name": "Remove A Data Field Option",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/options/{option_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "options",
                "{option_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "option_id",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Remove an option. Existing assignments keep their stored label; returns the remaining options.\n\nThe client's delete() yields only a status code, so the remaining options are read back from\nthe same Postgres after the upstream commit."
          }
        },
        {
          "name": "Restore An Archived Data Field",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Restore an archived data field. Symmetric counterpart to /archive."
          }
        },
        {
          "name": "List Datafield Values For A Specific Datafield",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/datafields/{datafield_uuid}/values",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "datafields",
                "{datafield_uuid}",
                "values"
              ],
              "query": [],
              "variable": [
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "events",
      "item": [
        {
          "name": "Get All Events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "library modules",
      "item": [
        {
          "name": "List Library Modules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": "List your library modules \u2014 reusable module definitions that can be\nadded to playbooks. Filter by name or archived state."
          }
        },
        {
          "name": "Create A Library Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create an empty library module.\n\nThe module is created with no tasks. Set additional attributes (portal\nname, work order) with PUT /v1/library/modules/{uuid}, and add tasks with\nPOST /v1/library/modules/{uuid}/tasks.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Onboarding\"\n}"
            }
          }
        },
        {
          "name": "Get A Library Module By Uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Fetch a single library module, including its tasks, tags, and data\nfield values."
          }
        },
        {
          "name": "Update A Library Module",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Update a library module's editable fields (name, customer portal\nname, work order). Partial update \u2014 only fields present are applied.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Onboarding\",\n  \"customer_portal_name\": \"Welcome\",\n  \"work_order\": \"any_order\"\n}"
            }
          }
        },
        {
          "name": "Archive A Library Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Archive a library module.\n\nSoft archive only \u2014 the module is hidden from the library, never\nhard-deleted. A module still linked into one or more playbooks is\nrejected with 409; unlink it in the app first."
          }
        },
        {
          "name": "Add A Task To A Library Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}",
                "tasks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": "UUID of the library module to add the task to"
                }
              ]
            },
            "description": "Add a task to a library module.\n\nSend `name` + `type` to create a new task, or `library_task_uuid` to copy a\ntask (and its subtasks) from your task library \u2014 always an independent copy.\nChanges to a library module apply to every playbook that links it. Archived\nlibrary modules cannot be edited.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Kickoff call\",\n  \"description\": \"\",\n  \"type\": \"customer\",\n  \"roles\": [\n    \"\"\n  ],\n  \"duration\": 0,\n  \"subtasks_must_be_completed_in_order\": false,\n  \"is_description_shown\": false,\n  \"library_task_uuid\": \"\"\n}"
            }
          }
        },
        {
          "name": "Update A Library Module Task",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": "UUID of the library module the task belongs to"
                },
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": "UUID of the task to update"
                }
              ]
            },
            "description": "Update a task within a library module.\n\nPartial update \u2014 only the fields you send are changed: `name`, `description`\n(explicit null clears), `type`, `roles` (full replace-set), `duration`\n(explicit null clears), `subtasks_must_be_completed_in_order`,\n`is_description_shown`, `display_order` (position within the module).\nChanges apply to every playbook that links this library module. Archived\nlibrary modules cannot be edited.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"type\": \"\",\n  \"roles\": [\n    \"\"\n  ],\n  \"duration\": 0,\n  \"subtasks_must_be_completed_in_order\": false,\n  \"is_description_shown\": false,\n  \"display_order\": 0\n}"
            }
          }
        },
        {
          "name": "Delete A Library Module Task",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": "UUID of the library module the task belongs to"
                },
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": "UUID of the task to delete"
                }
              ]
            },
            "description": "Delete a task from a library module.\n\nThe task's subtasks, dependencies, data field values, and tags are deleted\nwith it. The removal applies to every playbook that links this library\nmodule. Archived library modules cannot be edited."
          }
        },
        {
          "name": "Restore An Archived Library Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/modules/{library_module_uuid}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "modules",
                "{library_module_uuid}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "library_module_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Restore an archived library module. Symmetric counterpart to /archive;\nnon-destructive. Already-active is a no-op."
          }
        }
      ]
    },
    {
      "name": "library-tasks",
      "item": [
        {
          "name": "List Library Tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by name (case-insensitive substring)"
                },
                {
                  "key": "tags",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by tag name; repeat for multiple (matches ANY)"
                },
                {
                  "key": "include_archived",
                  "value": "",
                  "disabled": true,
                  "description": "Include archived library tasks"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Max items to return (default 100, max 200)"
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": "Number of items to skip (pagination)"
                }
              ],
              "variable": []
            },
            "description": "List the caller's library tasks, filterable by name and tags. Paged\nvia `limit` (default 100, max 200) and `offset`."
          }
        },
        {
          "name": "Create A Library Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create a library task. `name` is required; `duration` defaults to 1 day.\n\nNot idempotent: `name` is not unique, so repeating this call creates a\nduplicate. If a request times out, re-read (list/get) before retrying \u2014\nthe task may already have been created.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Kickoff call\",\n  \"description\": \"Schedule and run the kickoff call\",\n  \"duration\": 3,\n  \"roles\": [\n    0\n  ]\n}"
            }
          }
        },
        {
          "name": "Get Library Task By Uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Fetch a single library task by UUID."
          }
        },
        {
          "name": "Update A Library Task",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Update mutable fields (name, description, duration, roles) of a\nlibrary task. Only fields present in the body are changed; an empty body\nis rejected upstream with a 400.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"duration\": 0,\n  \"roles\": [\n    0\n  ]\n}"
            }
          }
        },
        {
          "name": "Archive A Library Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks/{task_uuid}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks",
                "{task_uuid}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Archive a library task (the library archives; there is no hard delete)."
          }
        },
        {
          "name": "Restore An Archived Library Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/library/tasks/{task_uuid}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "library",
                "tasks",
                "{task_uuid}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Restore an archived library task. Symmetric counterpart to /archive."
          }
        }
      ]
    },
    {
      "name": "modules",
      "item": [
        {
          "name": "Get All Modules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "min_completed_percentage",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "max_completed_percentage",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create A New Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create a new module on a project.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"project_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"name\": \"Onboarding\",\n  \"display_order\": 3,\n  \"customer_portal_name\": \"Welcome\"\n}"
            }
          }
        },
        {
          "name": "Get Module By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Module By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Module 1\",\n  \"customer_portal_name\": \"Welcome Module\",\n  \"work_order\": \"any_order\",\n  \"display_order\": 3\n}"
            }
          }
        },
        {
          "name": "Delete A Module",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                }
              ]
            },
            "description": "Delete a project module.\n\nThe module must be empty (no tasks). If tasks remain, a 400 is\nreturned with the task count \u2014 delete the tasks first, then retry."
          }
        },
        {
          "name": "Set a data field value on a module",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                },
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": "Data field UUID"
                }
              ]
            },
            "description": "Creates the value if it does not exist yet, otherwise updates it. `value` is required; pass `null` (or an empty string) to clear the value. The change is recorded in activity history and fires data field automation, including CRM field-sync.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\"\n}"
            }
          }
        },
        {
          "name": "Save Module To Library",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}/save_to_library",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}",
                "save_to_library"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                }
              ]
            },
            "description": "Save a project module to your library.\n\nThe source module is left untouched. A new library module is created\nwith the source module's tasks, subtasks, dependencies, tags, and\ndata field values copied across. Send `name` in the body to set the\nlibrary module's name; defaults to the source module's name.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Onboarding Template\"\n}"
            }
          }
        },
        {
          "name": "Add Tag To Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Remove Tag From Module",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/modules/{module_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "modules",
                "{module_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "module_id",
                  "value": "",
                  "description": "Module ID (integer) or Module UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "project_notes",
      "item": [
        {
          "name": "Get Project Note",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/notes/{note_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "notes",
                "{note_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "note_uuid",
                  "value": "",
                  "description": "Project-note UUID (UUID only; legacy project notes use UUIDs on the public API)"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Project Note",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/notes/{note_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "notes",
                "{note_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "note_uuid",
                  "value": "",
                  "description": "Project-note UUID (UUID only; legacy project notes use UUIDs on the public API)"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"note_detail\": \"\"\n}"
            }
          }
        },
        {
          "name": "Delete Project Note",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/notes/{note_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "notes",
                "{note_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "note_uuid",
                  "value": "",
                  "description": "Project-note UUID (UUID only; legacy project notes use UUIDs on the public API)"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "List Project Notes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "notes"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Max results per page (1-500); backend defaults to 100 when omitted"
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": "Results to skip; when omitted the backend defaults to 0"
                }
              ],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Add Note To Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "notes"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"note_detail\": \"Customer mentioned wanting to expand to a second region next quarter.\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "playbooks",
      "item": [
        {
          "name": "Get All Playbooks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": "Gets all active playbooks."
          }
        },
        {
          "name": "Create A Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create a playbook.\n\n`description` becomes the playbook's welcome message. `tags` is a list of tag\nnames \u2014 names that don't exist yet are created. `datafields` sets playbook data\nfield values by UUID.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Customer Onboarding Playbook\",\n  \"description\": \"\",\n  \"tags\": [\n    \"Enterprise\",\n    \"Onboarding\"\n  ],\n  \"datafields\": [\n    {\n      \"datafield_uuid\": \"f9bc450b-52ee-4d88-b8be-aea2c2858f19\",\n      \"value\": null\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "Get Playbook By Uuid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update A Playbook",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook to update"
                }
              ]
            },
            "description": "Update a playbook's metadata, tags, or data field values.\n\nPartial update \u2014 only the fields you send are changed. `description` is the\nwelcome message. `tags`, when sent, replaces the playbook's entire tag set.\nEditing a superseded playbook version is rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"tags\": [\n    \"\"\n  ],\n  \"datafields\": [\n    {\n      \"datafield_uuid\": \"f9bc450b-52ee-4d88-b8be-aea2c2858f19\",\n      \"value\": null\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "Archive A Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Archive a playbook."
          }
        },
        {
          "name": "Get Playbook Data Fields",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/datafields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "datafields"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Lists the PLAYBOOK-type data field definitions (type, config, defaults) for the vendor\nthat owns the playbook. 404s when the playbook does not exist for the vendor."
          }
        },
        {
          "name": "Duplicate A Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/duplicate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "duplicate"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Duplicate a playbook.\n\nCreates a complete, independent copy of the playbook \u2014 modules, tasks, task\nsteps, merge-field usage, data fields, tags, and resources included. Pass\n`name` to choose the copy's name; otherwise it is named\n\"Copy of <original name>\". If your organization uses playbook drafts, the\nduplicate is created as a draft you can review and publish; otherwise it is\navailable immediately. Archived playbooks can be duplicated; the copy itself\nstarts unarchived.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Enterprise Onboarding \\u2014 EMEA\"\n}"
            }
          }
        },
        {
          "name": "Get Playbook Merge Fields",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/merge-fields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "merge-fields"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Lists the merge tokens this playbook DECLARES \u2014 the catalog for `POST /v1/projects`\n`merge_fields`. Names must match exactly on create, so this is how a caller learns them\nrather than guessing and eating a 400. Covers tokens declared on the playbook itself and\non the library modules it links. Declarations, not usage: a token declared but not\nreferenced in the playbook's content is still listed."
          }
        },
        {
          "name": "Get Playbook Modules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "modules"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Lists a playbook's modules with their position, tags, and data field values."
          }
        },
        {
          "name": "Add A Module To A Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/modules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "modules"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook to add the module to"
                }
              ]
            },
            "description": "Add a module to a playbook.\n\nSend `name` to create a new module from scratch, or `library_module_uuid` with\n`linked` to instantiate a module from your library: `linked: true` keeps it\nconnected to the library (edits to the library module apply to every playbook\nlinking it), `linked: false` makes an independent copy of the module and its\ntasks. `display_order` inserts at a 1-based position; omitted appends last.\nSuperseded playbook versions are rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Kickoff\",\n  \"customer_portal_name\": \"Welcome\",\n  \"library_module_uuid\": \"\",\n  \"linked\": false,\n  \"display_order\": 0\n}"
            }
          }
        },
        {
          "name": "Update A Playbook Module",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/modules/{module_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "modules",
                "{module_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook the module belongs to"
                },
                {
                  "key": "module_uuid",
                  "value": "",
                  "description": "UUID of the module to update"
                }
              ]
            },
            "description": "Update a module within a playbook.\n\nPartial update \u2014 only the fields you send are changed: `name`,\n`customer_portal_name`, `work_order`, `display_order` (1-based position; other\nmodules shift accordingly). Editing a linked library module updates the shared\nmodule, so the change applies to every playbook linking it. Superseded playbook\nversions are rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"customer_portal_name\": \"\",\n  \"work_order\": \"\",\n  \"display_order\": 0\n}"
            }
          }
        },
        {
          "name": "Remove A Module From A Playbook",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/modules/{module_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "modules",
                "{module_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook the module belongs to"
                },
                {
                  "key": "module_uuid",
                  "value": "",
                  "description": "UUID of the module to remove"
                }
              ]
            },
            "description": "Remove a module from a playbook.\n\nA linked library module is only detached \u2014 the library module itself (and any\nother playbooks linking it) are untouched. A module owned by the playbook is\ndeleted along with its tasks. Superseded playbook versions are rejected."
          }
        },
        {
          "name": "Add A Task To A Playbook Module",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/modules/{module_uuid}/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "modules",
                "{module_uuid}",
                "tasks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook"
                },
                {
                  "key": "module_uuid",
                  "value": "",
                  "description": "UUID of the module to add the task to"
                }
              ]
            },
            "description": "Add a task to a playbook module.\n\nSend `name` + `type` to create a new task, or `library_task_uuid` to copy a\ntask (and its subtasks) from your task library \u2014 always an independent copy.\nTasks cannot be added to a linked library module through this endpoint;\nmanage linked module content in the library. Superseded playbook versions\nare rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Kickoff call\",\n  \"description\": \"\",\n  \"type\": \"customer\",\n  \"roles\": [\n    \"\"\n  ],\n  \"duration\": 0,\n  \"subtasks_must_be_completed_in_order\": false,\n  \"is_description_shown\": false,\n  \"library_task_uuid\": \"\"\n}"
            }
          }
        },
        {
          "name": "Publish A Draft Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/publish",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "publish"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Publish a draft playbook, making it the live version of its series.\n\nOnly a draft can be published; publishing an already-published or archived\nplaybook is rejected."
          }
        },
        {
          "name": "Get Playbook Task Roles",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/roles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "roles"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Lists the distinct task roles defined across a playbook's tasks \u2014 the roles a caller\nmaps in the task_roles argument of POST /v1/projects."
          }
        },
        {
          "name": "Get Playbook Tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "tasks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Lists a playbook's tasks with their names, types, and default role assignments,\nin module then task display order."
          }
        },
        {
          "name": "Update A Playbook Task",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook the task belongs to"
                },
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": "UUID of the task to update"
                }
              ]
            },
            "description": "Update a task within a playbook.\n\nPartial update \u2014 only the fields you send are changed: `name`, `description`\n(explicit null clears), `type`, `roles` (full replace-set; switching the task\nto internal clears them), `duration`, `subtasks_must_be_completed_in_order`,\n`is_description_shown`, `display_order` (position within the task's module).\nTasks in linked library modules are managed in the library. Superseded\nplaybook versions are rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"type\": \"\",\n  \"roles\": [\n    \"\"\n  ],\n  \"duration\": 0,\n  \"subtasks_must_be_completed_in_order\": false,\n  \"is_description_shown\": false,\n  \"display_order\": 0\n}"
            }
          }
        },
        {
          "name": "Delete A Playbook Task",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/tasks/{task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "tasks",
                "{task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": "UUID of the playbook the task belongs to"
                },
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": "UUID of the task to delete"
                }
              ]
            },
            "description": "Delete a task from a playbook.\n\nThe task's subtasks, dependencies, data field values, and tags are deleted\nwith it. Tasks in linked library modules are managed in the library.\nSuperseded playbook versions are rejected."
          }
        },
        {
          "name": "Restore An Archived Playbook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/playbooks/{playbook_uuid}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "playbooks",
                "{playbook_uuid}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Restore an archived playbook. Symmetric counterpart to /archive."
          }
        }
      ]
    },
    {
      "name": "projects",
      "item": [
        {
          "name": "Get All Projects",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "owner_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "owner_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "owner_email",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "customer_account_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "customer_account_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "status_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "status_code",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "external_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "has_data_field_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "data_field_value",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "due_date_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "due_date_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "start_date_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "start_date_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects"
              ],
              "query": [],
              "variable": []
            },
            "description": "Create a new project",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Customer Onboarding Project\",\n  \"playbook_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"account\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"start_date\": \"01/15/2024\",\n  \"due_date\": \"06/01/2024\",\n  \"description\": \"Onboarding project for ACME Inc.\",\n  \"portal_display_start_date\": true,\n  \"customer_emails_enabled\": true,\n  \"internal_emails_enabled\": true,\n  \"comments_enabled\": true,\n  \"project_value\": 50000,\n  \"portal_welcome_message\": \"Welcome to your onboarding project!\",\n  \"hide_internal_task_details\": true,\n  \"internal_users\": [\n    \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n    \"user@example.com\"\n  ],\n  \"customer_users\": [\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"customer@example.com\"\n  ],\n  \"task_roles\": {\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\": [\n      \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n      \"user@example.com\"\n    ]\n  },\n  \"merge_fields\": {\n    \"customer_industry\": \"Healthcare\",\n    \"kickoff_owner\": \"Dana Scully\"\n  },\n  \"project_owner\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"send_invite_email\": true,\n  \"send_invite_email_customers\": true,\n  \"modules\": [\n    {\n      \"days_offset\": 0,\n      \"insertion_position\": \"last\",\n      \"library_module_uuid\": \"f9bc450b-52ee-4d88-b8be-aea2c2858f19\"\n    }\n  ],\n  \"datafields\": {\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\": \"Enterprise\"\n  },\n  \"salesforce_opportunity_id\": \"0065f00000AbCdEfGHI\",\n  \"hubspot_deal_id\": \"1234567890\",\n  \"external_links\": [\n    {\n      \"external_id\": \"0061t00000abcAAA\",\n      \"external_type\": \"Opportunity\",\n      \"external_label\": \"Acme - New Business\",\n      \"integration_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n      \"external_link\": \"https://na1.salesforce.com/0061t00000abcAAA\",\n      \"additional_data\": null\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "Get Project By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Project By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"ACME Inc. Onboarding\",\n  \"description\": \"Onboarding project for ACME Inc.\",\n  \"start_date\": \"2025-01-15\",\n  \"due_date\": \"2025-06-01\",\n  \"owner\": \"owner@example.com\",\n  \"portal_display_start_date\": true,\n  \"customer_emails_enabled\": true,\n  \"comments_enabled\": true,\n  \"hide_internal_task_details\": true,\n  \"internal_emails_enabled\": true,\n  \"project_value\": 50000,\n  \"portal_welcome_message\": \"Welcome to your onboarding project!\"\n}"
            }
          }
        },
        {
          "name": "List a project's affiliated customer accounts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/affiliated-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "affiliated-accounts"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Returns the customer accounts affiliated with the project, beyond its primary customer. Archived (disabled) accounts are omitted from this list even if still affiliated; such an affiliation can still be removed via the DELETE endpoint."
          }
        },
        {
          "name": "Affiliate a customer account with a project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/affiliated-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "affiliated-accounts"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Associates an additional customer account with the project. The account must not already be affiliated and must not be the project's primary customer.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"account_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\"\n}"
            }
          }
        },
        {
          "name": "Remove an affiliated customer account from a project",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/affiliated-accounts/{account_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "affiliated-accounts",
                "{account_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "account_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Removes the affiliation between the customer account and the project. Fails if users belonging to that account are still active members of the project."
          }
        },
        {
          "name": "Archive A Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "archive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Archive a project."
          }
        },
        {
          "name": "Mark A Project Complete",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/complete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "complete"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Mark a project complete."
          }
        },
        {
          "name": "Set a data field value on a project",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                },
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": "Data field UUID"
                }
              ]
            },
            "description": "Creates the value if it does not exist yet, otherwise updates it. `value` is required; pass `null` (or an empty string) to clear the value. The change is recorded in activity history and fires data field automation, including CRM field-sync.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\"\n}"
            }
          }
        },
        {
          "name": "List a project's external (CRM) links",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/external-links",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "external-links"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Returns all external links (links to CRM/integration records) attached to the specified project."
          }
        },
        {
          "name": "Link a CRM record to a project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/external-links",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "external-links"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Attaches a link to an external CRM/integration record to the specified project.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"external_id\": \"0061t00000abcAAA\",\n  \"external_type\": \"Opportunity\",\n  \"external_label\": \"Acme - New Business\",\n  \"external_link\": \"https://na1.salesforce.com/0061t00000abcAAA\",\n  \"additional_data\": {}\n}"
            }
          }
        },
        {
          "name": "Update a project's external link",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/external-links/{link_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "external-links",
                "{link_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "link_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Updates the label, deep link, or metadata of an external link. The linked record identity is immutable. This is a partial update: omitted fields are left unchanged, and fields cannot be cleared to null.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_label\": \"Acme - Renamed\",\n  \"external_link\": \"https://na1.salesforce.com/0061t00000abcAAA\",\n  \"additional_data\": {}\n}"
            }
          }
        },
        {
          "name": "Remove an external link from a project",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/external-links/{link_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "external-links",
                "{link_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "link_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Detaches (archives) the external link from the project."
          }
        },
        {
          "name": "List Project Resources",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/resources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "resources"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "List the project's URL link attachments.\nRecords linked from a connected CRM or integration are a separate surface \u2014\nsee the project's `/external_links` endpoints."
          }
        },
        {
          "name": "Create Project Resource",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/resources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "resources"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Attach an external URL link (document, video, etc.) to the project.\n`/resources` manages URL link attachments; to link a record from a connected\nCRM or integration, use the project's `/external_links` endpoints instead.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Onboarding Docs\",\n  \"url\": \"https://example.com/docs\",\n  \"description\": \"Getting-started guide\",\n  \"show_to_customer\": true,\n  \"is_key\": false\n}"
            }
          }
        },
        {
          "name": "Update Project Resource",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/resources/{resource_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "resources",
                "{resource_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "resource_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Update a URL link attached to the project (partial update).\nApplies to `/resources` link attachments only; links to CRM/integration\nrecords are managed via the project's `/external_links` endpoints.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Renamed Docs\",\n  \"url\": \"https://example.com/new\",\n  \"description\": \"Updated guide\",\n  \"show_to_customer\": false,\n  \"is_key\": true\n}"
            }
          }
        },
        {
          "name": "Delete Project Resource",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/resources/{resource_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "resources",
                "{resource_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "resource_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Detach a URL link from the project.\nApplies to `/resources` link attachments only; links to CRM/integration\nrecords are managed via the project's `/external_links` endpoints."
          }
        },
        {
          "name": "Add Tag To Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Remove Tag From Project",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Restore An Archived Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "unarchive"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Restore an archived project."
          }
        },
        {
          "name": "Reopen A Completed Project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_id}/uncomplete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_id}",
                "uncomplete"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_id",
                  "value": "",
                  "description": "Project ID (integer) or Project UUID"
                }
              ]
            },
            "description": "Reopen a previously completed project. Symmetric counterpart to /complete."
          }
        },
        {
          "name": "Get Project Activity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "activity"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "1-based page number; below 1 is treated as 1. Defaults to 1."
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Results per page. Values outside 1-200 are clamped to 200. Defaults to 50."
                },
                {
                  "key": "action",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events with this action \u2014 the part of event_type after the dot (e.g. 'created', 'updated', 'completed'). Unk"
                },
                {
                  "key": "object_type",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events about this object type, matching each entry's object.type value (e.g. 'Task', 'Project', 'Data Field'"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events at or after this time (ISO-8601). Values without a timezone offset are treated as UTC."
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "Only return events strictly before this time (ISO-8601), so start_date/end_date bound a half-open interval \u2014 to include "
                }
              ],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "List a project's activity feed (newest first), paginated with page/limit/total.\n\nOptionally filter by action, object type, or a time window \u2014 the same\nfilters as the organization-wide /v1/activity feed."
          }
        },
        {
          "name": "Get Project Task Dependencies",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/dependencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "dependencies"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "List every blocked-by relationship between the project's tasks \u2014 the\nproject-wide view of the dependency graph."
          }
        },
        {
          "name": "List Project Members",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/members",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "members"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Get active project members by project UUID."
          }
        },
        {
          "name": "Add Project Member",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/members",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "members"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Add a member to a project.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"user_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"email_address\": \"user@example.com\",\n  \"send_invite\": false\n}"
            }
          }
        },
        {
          "name": "Remove Project Member",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/members/{user_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "members",
                "{user_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "user_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Remove a member from a project.\n\nReturns 409 if the target is the project owner or still has open assigned\ntasks."
          }
        },
        {
          "name": "Add library modules to a running project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/modules/from-library",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "modules",
                "from-library"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Instantiates one or more library modules (as independent copies) onto an existing project. Append-only and not idempotent: a repeat call adds another copy of each module, and no idempotency key is accepted -- after a timeout or ambiguous 500, read the project's modules before retrying. A part-way batch failure returns `errors.modules_added` naming what committed. Use `POST /v1/modules` (with `project_uuid` in the body) to create an empty module on a project instead.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"library_module_uuid\": \"9a7e1a52-3f3c-4c37-97ff-53b58f9c9a01\",\n  \"days_offset\": 0,\n  \"position\": 1,\n  \"role_assignments\": {\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\": [\n      \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n      \"user@example.com\"\n    ]\n  },\n  \"merge_fields\": {\n    \"Company\": \"Acme Corp\"\n  }\n}"
            }
          }
        },
        {
          "name": "Append a published playbook to a running project",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/playbooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "playbooks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Append action, not a collection: adds a published playbook's modules and tasks to an existing project, preserving the project's own name, settings, and data fields. No playbook is attached to the project and there is nothing to read back here -- the response lists the modules that were added. Not idempotent: a repeat call appends a second complete copy of the playbook, and no idempotency key is accepted, so after a timeout or ambiguous 500 read the project's modules before retrying. A part-way f",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"playbook_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"role_assignments\": {\n    \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\": [\n      \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n      \"user@example.com\"\n    ]\n  },\n  \"merge_fields\": {\n    \"Company\": \"Acme Corp\"\n  },\n  \"send_invite_email\": false,\n  \"send_invite_email_customers\": false\n}"
            }
          }
        },
        {
          "name": "Get Project Roles",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/roles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "roles"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "List the task roles in use on a project with the member(s) currently\nassigned to each. A role appears when a project member holds it or when\nany of the project's tasks routes by it, archived ones included; roles\nnobody holds come back with an empty members list. Deleted tasks do not\ncount. That is the same population the role-reassignment endpoint accepts,\nso every role listed here can be reassigned. Role identity matches\nGET /v1/playbooks/{uuid}/roles."
          }
        },
        {
          "name": "Assign Project Role",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/roles/{role_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "roles",
                "{role_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "role_id",
                  "value": "",
                  "description": "Role UUID, or the role's exact name (case-insensitive; URL-encode spaces). A name that matches more than one active role"
                }
              ]
            },
            "description": "Assign a task role on a project to a user.\n\nThe user becomes the role's sole holder: any open tasks routed by the\nrole move to them, and they are added as a project member automatically\nwhen not already one. Internal roles accept internal users; customer\nroles accept customer users affiliated with the project's customer\naccount(s). Works for a currently unassigned role too.\n\nThe role may be given as its UUID or its exact name (case-insensitive) --\nan integration reacting to a change in the custo",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"user_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"email_address\": \"user@example.com\",\n  \"send_invite\": false\n}"
            }
          }
        },
        {
          "name": "Get Project Time Summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/projects/{project_uuid}/time-summary",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "projects",
                "{project_uuid}",
                "time-summary"
              ],
              "query": [
                {
                  "key": "start",
                  "value": "",
                  "disabled": true,
                  "description": "First day to include (YYYY-MM-DD)"
                },
                {
                  "key": "end",
                  "value": "",
                  "disabled": true,
                  "description": "Last day to include (YYYY-MM-DD). Must not be before start; start to end spans at most 366 days."
                }
              ],
              "variable": [
                {
                  "key": "project_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Allotted and worked minutes for a project, with a per-task breakdown."
          }
        }
      ]
    },
    {
      "name": "statuses",
      "item": [
        {
          "name": "Get All Statuses",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/statuses",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "statuses"
              ],
              "query": [],
              "variable": []
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "subtasks",
      "item": [
        {
          "name": "List subtasks for several tasks in one call",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks"
              ],
              "query": [
                {
                  "key": "task_ids",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": "Returns the subtasks of every task named by `task_ids`, in `display_order` within each task. Each subtask carries `parent_task_uuid`, so one call replaces one GET /v1/tasks/{task_id}/subtasks per task when exporting or polling a task list."
          }
        },
        {
          "name": "Get Subtask By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Subtask (Metadata Or Answer)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Collect W-2 forms\"\n}"
            }
          }
        },
        {
          "name": "Delete Subtask",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "Delete a subtask.\n\nRemoving a subtask fires the `subtask_deleted` webhook and records the\nchange in the project activity feed, matching in-app delete behavior.\n\nDeleting a **branching** subtask also deletes the child subtasks it\nowns; `deleted_count` in the response is the total number removed.\n\nDeletable while the subtask's parent task has not started, in a project\nthat is neither archived nor completed. On a template task (playbook or\nlibrary module) the gate is design-time instead: the task i"
          }
        },
        {
          "name": "Start A File Upload To A File Request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}/file-uploads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}",
                "file-uploads"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "Start uploading one file of up to 100 MB to a form subtask's file request.\n\nUse this instead of `POST /v1/subtasks/{subtask_id}/files` for a file over 4.5 MB. Send the file's `filename` and\n`size_bytes`, plus `element` when the form has several file requests. The response carries an `upload_url`: send\nthe file to it with an HTTP `PUT` within `expires_in_seconds`, as the whole request body with a `Content-Length` of\nexactly `size_bytes`. Then call `POST /v1/subtasks/{subtask_id}/file-uploads/{upl",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"filename\": \"certificate-of-insurance.pdf\",\n  \"size_bytes\": 18874368,\n  \"element\": \"\"\n}"
            }
          }
        },
        {
          "name": "Complete A File Upload To A File Request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}/file-uploads/{upload_id}/complete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}",
                "file-uploads",
                "{upload_id}",
                "complete"
              ],
              "query": [],
              "variable": [
                {
                  "key": "upload_id",
                  "value": "",
                  "description": "The `upload_id` from the start call"
                },
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "Finish a file upload started with `POST /v1/subtasks/{subtask_id}/file-uploads`.\n\nCall this after the file has been sent to the `upload_url`. The file is saved as the file request's answer, after\nany files it already holds, and the subtask is **not** submitted: send `PUT /v1/subtasks/{subtask_id}` to submit it.\nThe response is the same as `POST /v1/subtasks/{subtask_id}/files`, including the review of the file when the file\nrequest asks for one.\n\nA new file is scanned for malware before it can b"
          }
        },
        {
          "name": "Upload Files To A File Request",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}/files",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}",
                "files"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "Upload files to a form subtask's file request.\n\nSend `multipart/form-data` with each file in a part named `files`, plus an `element` field naming the\nfile request unless the form has only one. The subtask must be a form on an open project, in a task that\nis neither blocked nor completed, and must not be answered yet. If the file request limits file types,\nonly those extensions are accepted. A whole request may be at most 6 MB (about 4.5 MB of file data once encoded by the\nhosting platform); a la",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "files",
                  "type": "file",
                  "description": "Each file in its own part named `files`, up to 5. Added after files already held.",
                  "src": []
                },
                {
                  "key": "element",
                  "type": "text",
                  "description": "The file request's element id or `key`; optional when the form has one.",
                  "value": ""
                }
              ]
            }
          }
        },
        {
          "name": "Reorder Subtask",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/subtasks/{subtask_id}/move",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "subtasks",
                "{subtask_id}",
                "move"
              ],
              "query": [],
              "variable": [
                {
                  "key": "subtask_id",
                  "value": "",
                  "description": "Subtask ID (integer) or Subtask UUID"
                }
              ]
            },
            "description": "Reorder a subtask within its parent task. Idempotent on identical input.\n\nReordering applies to flat subtasks (the shape authored through this API).\nA subtask whose parent task contains branching subtasks is reordered from\nthe in-app builder instead.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"display_order\": 2\n}"
            }
          }
        }
      ]
    },
    {
      "name": "tags",
      "item": [
        {
          "name": "Get All Tags",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "color",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create A New Tag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High Priority\",\n  \"color\": \"#FF0000\",\n  \"description\": \"High priority\"\n}"
            }
          }
        },
        {
          "name": "Get Tag By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Tag By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High Priority\",\n  \"color\": \"#FF0000\",\n  \"description\": \"High priority\"\n}"
            }
          }
        },
        {
          "name": "Delete A Tag",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "task-feedback",
      "item": [
        {
          "name": "List Task Feedback",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/task-feedback",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "task-feedback"
              ],
              "query": [
                {
                  "key": "left_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "left_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": "List task feedback across your organization, newest first.\n\nOptionally bound the results by when the feedback was left\n(`left_after` / `left_before`, both inclusive) \u2014 useful for\nincremental syncs into your own reporting tools."
          }
        }
      ]
    },
    {
      "name": "tasks",
      "item": [
        {
          "name": "Get All Tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_overdue",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "assigned_user_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "assigned_user_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "assigned_user_email",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "status_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "status_code",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "project_external_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "has_data_field_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "data_field_value",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "due_date_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "due_date_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "start_date_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "start_date_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "completed_after",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "completed_before",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "modified_since",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "module_uuid",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "unassigned",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "include_archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "sort",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"module_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"name\": \"Complete project documentation\",\n  \"description\": \"Complete all project documentation and submit for review\",\n  \"start_date\": \"\",\n  \"due_date\": \"\",\n  \"type\": \"internal\",\n  \"assignee\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"assignee_restrictions\": [\n    \"\"\n  ],\n  \"subtasks_must_be_completed_in_order\": true,\n  \"is_description_shown\": true,\n  \"collect_feedback\": true,\n  \"require_all_subtasks_answered\": true\n}"
            }
          }
        },
        {
          "name": "Get Task By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Task By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Update onboarding checklist\",\n  \"description\": \"\",\n  \"start_date\": \"\",\n  \"due_date\": \"\",\n  \"type\": \"internal\",\n  \"assignee\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"assignee_restrictions\": [\n    \"\"\n  ],\n  \"subtasks_must_be_completed_in_order\": true,\n  \"is_description_shown\": true,\n  \"collect_feedback\": true,\n  \"require_all_subtasks_answered\": true\n}"
            }
          }
        },
        {
          "name": "Delete A Task",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Hard-delete a task. Matches in-app delete behavior (link-aware delete,\ntask.deleted webhook, dependent-task unblock, activity feed entry)."
          }
        },
        {
          "name": "Mark A Task Complete",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/complete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "complete"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Complete a task, optionally persisting subtask answers first.\n\nForwards to main-web-app's PUT /tasks/{uuid}/complete_from_api. When\n`subtask_answers` are supplied, they are persisted before the task\ntransitions so the task.completed webhook ships populated\nsubtasks_answers. A plain completion (no body) forwards an empty body.\n\nCompletion guards (frozen/archived project, blocked task, already\nfinished, unknown subtask, duplicate subtask) are owned by main-web-app\nand propagated here with their up",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"subtask_answers\": [\n    {\n      \"uuid\": null,\n      \"answer\": null\n    }\n  ]\n}"
            }
          }
        },
        {
          "name": "Set a data field value on a task",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/datafields/{datafield_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "datafields",
                "{datafield_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                },
                {
                  "key": "datafield_uuid",
                  "value": "",
                  "description": "Data field UUID"
                }
              ]
            },
            "description": "Creates the value if it does not exist yet, otherwise updates it. `value` is required; pass `null` (or an empty string) to clear the value. The change is recorded in activity history and fires data field automation, including CRM field-sync.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"\"\n}"
            }
          }
        },
        {
          "name": "Get Task Dependencies",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/dependencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "dependencies"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "List a task's dependency relationships: the tasks that must be completed\nbefore it can be worked (blocked_by), and the tasks waiting on it (blocks)."
          }
        },
        {
          "name": "Add Task Dependency",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/dependencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "dependencies"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Add a blocked-by dependency: the task cannot be worked until the task\ngiven by `blocked_by_task_uuid` is completed. If the blocking task is\nnot yet complete, the dependent task moves to the Blocked status.\nDuplicate and circular dependencies are rejected.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"blocked_by_task_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\"\n}"
            }
          }
        },
        {
          "name": "Remove Task Dependency",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/dependencies/{blocked_by_task_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "dependencies",
                "{blocked_by_task_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "blocked_by_task_uuid",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Remove the blocked-by dependency between the task and the task given by\n`blocked_by_task_uuid`. If that was the task's last unmet dependency,\nthe task moves out of the Blocked status."
          }
        },
        {
          "name": "List Feedback Left On A Task",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/feedback",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "feedback"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "List the feedback customer users have left on a task, newest first."
          }
        },
        {
          "name": "Move Or Reorder Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/move",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "move"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Re-parent and/or reorder a project task. Idempotent on identical input.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"module_uuid\": \"f29b2878-a1a4-4d93-a0fb-1e1e48930aac\",\n  \"display_order\": 3\n}"
            }
          }
        },
        {
          "name": "Reset A Task Back To Not Started",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/reset",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "reset"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Reset a task back to NOT_STARTED, clearing step answers, document /\nagreement state, started_date, and completed_* fields. Distinct from\n/uncomplete which preserves step answers."
          }
        },
        {
          "name": "Mark A Task In Progress",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/start",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "start"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Mark a task as in progress. Records the task's started date the first\ntime it starts (subsequent calls keep the original started date).\n\nStart guards (end-state project, already-completed task, blocked task,\nsoft-deleted task, library task) are owned by main-web-app and\npropagated here with their upstream status: an archived or completed\nproject, an already-completed task, or a blocked task returns 400; a\ncompleted task must be reopened via /uncomplete rather than started."
          }
        },
        {
          "name": "List Subtasks For A Task",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/subtasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "subtasks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create A Subtask",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/subtasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "subtasks"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Create a FORM-type subtask under a task.\n\nThe parent task can belong to a project (must be not started, in a\nnon-archived, non-completed project), a playbook, or the task library \u2014\nplaybook and library tasks are templates, so no status gate applies.\nUnknown element types or invalid element parameters are rejected with a 422.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Collect tax forms\",\n  \"description\": \"\",\n  \"margin\": 0,\n  \"spacing\": 0,\n  \"elements\": []\n}"
            }
          }
        },
        {
          "name": "Add Tag To Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Remove Tag From Task",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Reopen A Completed Task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_id}/uncomplete",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_id}",
                "uncomplete"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_id",
                  "value": "",
                  "description": "Task ID (integer) or Task UUID"
                }
              ]
            },
            "description": "Reopen a previously completed task. Symmetric counterpart to /complete."
          }
        },
        {
          "name": "Get Task Time",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_uuid}/time",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_uuid}",
                "time"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Allotted and worked minutes for one project or playbook task.\n\nList the task's entries with `GET /v1/time-entries?task_uuid=...`."
          }
        },
        {
          "name": "Set or clear a task's allotted time",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tasks/{task_uuid}/time-allotted",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tasks",
                "{task_uuid}",
                "time-allotted"
              ],
              "query": [],
              "variable": [
                {
                  "key": "task_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "`minutes` is required: whole minutes from 1 to 59940, or `null` to clear the allotted time. Works on project and playbook tasks.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"minutes\": 120\n}"
            }
          }
        }
      ]
    },
    {
      "name": "time-tracking",
      "item": [
        {
          "name": "List Time Entries",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-entries",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-entries"
              ],
              "query": [
                {
                  "key": "start",
                  "value": "",
                  "disabled": true,
                  "description": "First day to include (YYYY-MM-DD)"
                },
                {
                  "key": "end",
                  "value": "",
                  "disabled": true,
                  "description": "Last day to include (YYYY-MM-DD). Must not be before start; start to end spans at most 366 days."
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "1-based page number"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Entries per page (1-200)"
                },
                {
                  "key": "project_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only entries logged against this project"
                },
                {
                  "key": "task_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only entries logged against this task"
                },
                {
                  "key": "user_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only entries belonging to this user"
                },
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only entries on projects created from this playbook"
                }
              ],
              "variable": []
            },
            "description": "List time entries across the organization, newest day first.\n\nDefaults to the last 90 days when no window is given. Filter by project,\ntask, user or playbook."
          }
        },
        {
          "name": "Create Time Entry",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-entries",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-entries"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"user_uuid\": \"3f0c2d6e-7a51-4b8e-9d0f-1a2b3c4d5e6f\",\n  \"project_uuid\": \"8b1e4f2a-5c3d-4e6f-a7b8-9c0d1e2f3a4b\",\n  \"task_uuid\": \"c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f\",\n  \"entry_date\": \"2026-09-21\",\n  \"minutes\": 90,\n  \"note\": \"Kickoff call\"\n}"
            }
          }
        },
        {
          "name": "Get Time Entry",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-entries/{entry_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-entries",
                "{entry_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "entry_uuid",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update Time Entry",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-entries/{entry_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-entries",
                "{entry_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "entry_uuid",
                  "value": "",
                  "description": "Time entry UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"project_uuid\": \"8b1e4f2a-5c3d-4e6f-a7b8-9c0d1e2f3a4b\",\n  \"task_uuid\": \"c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f\",\n  \"entry_date\": \"2026-09-21\",\n  \"minutes\": 45,\n  \"note\": \"Kickoff call\"\n}"
            }
          }
        },
        {
          "name": "Delete Time Entry",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-entries/{entry_uuid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-entries",
                "{entry_uuid}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "entry_uuid",
                  "value": "",
                  "description": "Time entry UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Get Allotted Vs Worked Report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/time-tracking/reports/allotted-vs-worked",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "time-tracking",
                "reports",
                "allotted-vs-worked"
              ],
              "query": [
                {
                  "key": "start",
                  "value": "",
                  "disabled": true,
                  "description": "First day to include (YYYY-MM-DD)"
                },
                {
                  "key": "end",
                  "value": "",
                  "disabled": true,
                  "description": "Last day to include (YYYY-MM-DD). Must not be before start; start to end spans at most 366 days."
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "1-based page number"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Projects per page (1-100)"
                },
                {
                  "key": "project_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only these projects. Repeat the parameter to pass several."
                },
                {
                  "key": "account_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only projects for these accounts. Repeat the parameter to pass several."
                },
                {
                  "key": "playbook_uuid",
                  "value": "",
                  "disabled": true,
                  "description": "Only projects created from these playbooks. Repeat the parameter to pass several."
                }
              ],
              "variable": []
            },
            "description": "Allotted versus worked minutes per project, broken down by module and task."
          }
        }
      ]
    },
    {
      "name": "usage",
      "item": [
        {
          "name": "Get Api Usage",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "usage"
              ],
              "query": [],
              "variable": []
            },
            "description": "Retrieve your organization's API usage for the current monthly period.\n\nReturns the number of API calls made so far this period, your monthly\ncall limit, how many calls remain, and when the period resets. A\n``monthly_limit`` of ``0`` means no quota has been granted \u2014 contact\nsupport to have one configured. Calls to this endpoint are excluded from\nthe quota count, so checking your usage never consumes it, and the\nendpoint stays available after the limit is reached."
          }
        }
      ]
    },
    {
      "name": "user-roles",
      "item": [
        {
          "name": "Get All User Roles",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/user-roles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "user-roles"
              ],
              "query": [],
              "variable": []
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "users",
      "item": [
        {
          "name": "Get All Users",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users"
              ],
              "query": [
                {
                  "key": "first_name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "last_name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "email_address",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_customer_user",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "is_active",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create A New User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"email_address\": \"john.doe@test.com\",\n  \"phone_number\": \"(123) 456-7890\",\n  \"job_title\": \"Software Engineer\",\n  \"job_description\": \"Chasing bugs and refactoring code\",\n  \"user_role\": \"CREATOR\"\n}"
            }
          }
        },
        {
          "name": "Get User By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users",
                "{user_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_id",
                  "value": "",
                  "description": "User ID (integer) or User UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update User By Id",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users",
                "{user_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_id",
                  "value": "",
                  "description": "User ID (integer) or User UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"email_address\": \"john.doe@test.com\",\n  \"phone_number\": \"(123) 456-7890\",\n  \"job_title\": \"Software Engineer\",\n  \"job_description\": \"Chasing bugs and refactoring code\",\n  \"is_active\": true,\n  \"user_role\": \"CREATOR\"\n}"
            }
          }
        },
        {
          "name": "Resend User Invite",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users/{user_id}/resend-invite",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users",
                "{user_id}",
                "resend-invite"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_id",
                  "value": "",
                  "description": "User ID (integer) or User UUID"
                }
              ]
            },
            "description": "Re-send an org user's invitation email.\n\nForwards to main-web-application's internal resend endpoint, which reuses the same\nVendorWelcomeEmail delivery path as the UI's \"Send reminder\" action (template, invite\ntoken, email tracking). A direct write here would skip those side effects."
          }
        },
        {
          "name": "Add Tag To User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users/{user_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users",
                "{user_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_id",
                  "value": "",
                  "description": "User ID (integer) or User UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Remove Tag From User",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/users/{user_id}/tag/{tag_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "users",
                "{user_id}",
                "tag",
                "{tag_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "user_id",
                  "value": "",
                  "description": "User ID (integer) or User UUID"
                },
                {
                  "key": "tag_id",
                  "value": "",
                  "description": "Tag ID (integer) or Tag UUID"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "webhooks",
      "item": [
        {
          "name": "Get All Webhooks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ],
              "query": [
                {
                  "key": "url",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "name",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ],
              "variable": []
            },
            "description": ""
          }
        },
        {
          "name": "Create A New Webhook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ],
              "query": [],
              "variable": []
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_code\": \"task_completed\",\n  \"hook_url\": \"https://mydomain.com\"\n}"
            }
          }
        },
        {
          "name": "Get Webhook By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/{webhook_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "{webhook_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "webhook_id",
                  "value": "",
                  "description": "Webhook ID (integer) or Webhook UUID"
                }
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Update A Webhook",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/{webhook_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "{webhook_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "webhook_id",
                  "value": "",
                  "description": "Webhook ID (integer) or Webhook UUID"
                }
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"hook_url\": \"https://mydomain.com\",\n  \"name\": \"Send task updates\",\n  \"is_active\": true\n}"
            }
          }
        },
        {
          "name": "Delete A Webhook",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/{webhook_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "{webhook_id}"
              ],
              "query": [],
              "variable": [
                {
                  "key": "webhook_id",
                  "value": "",
                  "description": "Webhook ID (integer) or Webhook UUID"
                }
              ]
            },
            "description": ""
          }
        }
      ]
    }
  ]
}
