Skip to main content
A custom component is a record type you define, such as a service contract, whose objects belong to accounts and carry their own attributes, notes, activity log and workflow. This area has 39 endpoints covering component definitions, their instances (called objects on the /components/{component_uuid}/objects routes) and everything attached to an instance, and all seven SDKs call every one.
Replacing an object’s linked accounts or orders unlinks every record you leave out, and changing its workflow status runs the transition and its actions at once.

At a glance

Before you call

Register your API credentials once when your app starts, as shown in Authentication. Every SDK sample on these pages then gets its client in one line. With cURL, send the access token in an Authorization header: Authorization: Bearer $ACCESS_TOKEN.

Things to know

  • component_uuid takes two kinds of value. Three instance calls take the component’s dashed uuid: POST /component/{component_uuid}, and PATCH and DELETE on /component/{component_uuid}/{component_object_id}. Every other call, including reading, updating and deleting a definition on /component/{component_uuid}, takes the definition’s cmp_ id.
  • Instances have two sets of routes. /component/{component_uuid}/... takes the dashed uuid and sends and returns the instance under the component’s name, such as service_contract. /components/{component_uuid}/objects/... takes the cmp_ id and uses custom_component_object, where parents names the record that owns the instance.
  • Notes are sent as multipart forms, not JSON. Put the text in the note field and any files beside it; a file’s uuid in attachments is the file_id for the file calls.
  • A custom object instance is created on the custom object’s own path. The create has no instances segment and sends custom_object_instances; the read, update and delete use instances/{instance_id}, and the update sends custom_object_instance.
  • Listings page by cursor. Records sit under data; pass pagination.next_cursor as cursor to read the next page, and stop when pagination.has_more is false.