Send events from your own integrations to Assembly. This is a great way to track and update your accounts.
type
, name
, and domain
. The domain for a Company Account should be a domain i.e. company.com
while the domain for a Customer Account should be an email i.e. name@company.com
.
There are various optional attributes that you can add to define the account. The possible attributes are shown in the example below. You can also add source specific IDs that will then act as another id for you to reference the account with in lieu of using our Assembly ID for the account.
Note there are attributes specific to Company versus Customer Accounts:
company_type
and number_of_seats
role
{"id":"01945162-52fc-739b-98de-e2ac9f2eec49"}
accounts
. This call is paginated, so please include the limit and offset in your URL otherwise the default limit=100
and offset=0
will be used.
The return type is {"accounts": {"data": [...], "has_next_page": ..., "next_cursor": ...}}
.
Note: the accounts are sorted by type so all Company Accounts will show up before Customer Accounts. Within each account type section, the accounts are sorted alphabetically by account name.
{"account":{...}}
. Note that the source specific ID format is a bit different since it needs to be passed in as a query parameter.
CREATE
endpoint except there are additional parameters for tags and source specific IDs.
The general tags
will be tags that are being added and then there’s an additional removed_tags
to indicate removing a tag. Similarily, the source_specific_ids
will be added while the ‘removed_source_specific_ids’ will be removed.
The Assembly ID of the updated account is returned in the format {"id":"01945162-52fc-739b-98de-e2ac9f2eec49"}
.
{"id":"01945162-52fc-739b-98de-e2ac9f2eec49"}
.
We recommend always inputting the required attributes for create (type
, name
, and domain
) so that the endpoint won’t fail when the account needs to be created.
{}
.
name
,domain
(email i.e. name@company.com
), and some sort of company identifier. For the company identifier, you need to include the Assembly ID of the company in company_id
, the domain of the company in company_domain
, or the source specific ID of the company in company_source_specific_id
.
There are various optional attributes that you can add to define the contact, all the options are shown below. You can also add source specific IDs that will then act as another id for you to reference the contact with in lieu of using our Assembly ID for the contact.
The Assembly ID of the created contact is returned in the format {"id":"01966e6b-3219-78be-a0fe-260e590565f5"}
contacts
. This call is paginated, so please include the limit and offset in your URL otherwise the default limit=100
and offset=0
will be used.
The return type is {"contacts": {"data": [...], "has_next_page": ..., "next_cursor": ...}}
.
{"contacts":{...}}
. Note that the format for passing in the source specific ID is a bit different, it needs to be passed in as a query parameter.
{"contact":{...}}
CREATE
endpoint except there are additional parameters for tags and source specific IDs.
The general tags
will be tags that are being added and then there’s an additional removed_tags
to indicate removing a tag. Similarily, the source_specific_ids
will be added while the ‘removed_source_specific_ids’ will be removed.
The Assembly ID of the updated contact is returned in the format {"id":"01966e6b-3219-78be-a0fe-260e590565f"}
.
{"id":"01966e6b-3219-78be-a0fe-260e590565f"}
.
We recommend always inputting the required attributes for create (name
, domain
, and one of the company identifiers so company_id
, company_domain
or company_source_specific_id
) so that the endpoint won’t fail when the contact needs to be created.
{}
.
add_props/:item/:id
accounts
or contacts
) and either the item’s Assembly ID, source specific id, or domain to the url.
Then include a map of the properties you want to add to the value of each property. If the property already exists on that item’s additional properties, an “already exists” error will be returned. Otherwise, the Assembly ID of the account/contact that the property was created for is returned in the format {"id":"01945162-52fc-739b-98de-e2ac9f2eec49"}
.
accounts
or contacts
) and either the Assembly ID, domain, or source specific ID of the item to get the additional properties.
The return includes the ID of the account and the account’s additional properties in this format {"id": "01945162-52fc-739b-98de-e2ac9f2eec49", "additional_properties": [...]}
accounts
or contacts
) and either the item’s Assembly ID, domain, or source specific ID. Include any of the fields that we want to update with a mapping to their new values.
If the specified field does not already exist in the item’s additional properties, we will directly add it. The ID of the account/contact whose additional properties were updated is returned in the format {"id": "01945162-52fc-739b-98de-e2ac9f2eec49"}
accounts
or contacts
) and its Assembly ID, domain, or source specific ID and then specify which properties to delete by the property names. The return is empty {}
.
Tier
, Stage
, CompanyType
, or AccountTag
(Tags).
type
, name
, and color
of the label. Optionally, include a description. The ID of the created label will be returned in this format {"id": "0195a666-3405-7664-aaf1-ad65b6091e96"}
.
/account/labels
.
To grab a specific type of account labels, add the label type so /account/labels/{type}
. And then to grab a specific label, add the label ID so /account/labels/{label_id}
.
The labels are returned in this format {"labels": [...]}
.
/account/labels/{label_id}
. Use the get account labels endpoints to grab the label id if needed.
Include the fields that you are changing for the label in the json object. The possible arguments are type
, name
, color
, and description
. The ID of the updated label is returned as {"id": "0195a666-3405-7664-aaf1-ad65b6091e96"}
/account/labels/{label_id}
with a delete operation. The return is empty {}
.
timestamp
: when the event happenedtype
: the type of log, the options are “Action”, “Metric”, or “CumulativeMetric”content
: what happened in the log (think the string that shows up in your logs)attribute
: the category that the log is related to, we’ll use this attribute to group logs together for account 360s and for calculating health scores (i.e. “Login” or “AccountSpend”)value
: if the type of the log is “Metric” or “CumulativeMetric”, we require you to pass in the value of the metric so that we can use it for grouping and filtering (i.e. $20 or 7)
Additionally, you can add any metadata that you want to store.
The ID of the created log is returned in this format {"id": "01945162-52fc-739b-98de-e2ac9f2eec49"}
.accounts
or contacts
) and its Assembly ID, source specific id, or domain in the url.
limit=100
and offset=0
will be used.
Note: the logs are returned in decreasing timestamp order so the newest logs are returned first.
The logs are returned in this format {"logs": {"data": [...], "has_next_page": ..., "next_cursor":...}}
{"id": "01945162-52fc-739b-98de-e2ac9f2eec49"}
.
{}
.