It can be accessed via:
Replace API_HOST as follows:
Replace ENDPOINT and YOUR_API_KEY as follows:
The API is structured as follows:
{ "records": [ { Parameters } ] }
PUT parameters must be placed in a "data" object within the base object:
{ "data": { Parameters } }
Parameters for GET and DELETE are passed as URL encoded query strings (e.g., /accounts?order_by=id&direction=desc&page=0). GET requests returning multiple items support pagination. Pages are indexed from 0 and page parameters are passed as URL query strings. Boolean parameters accept all data types from which they are converted to boolean according to the following logic: Apart from "0" all the integers are considered as "true", "0" is considered as "false", "true" and "false" are considered as to their corresponding values, Default value (false) will be returned in case of non-convertible value (like String).
All results are returned as JSON and contain a "status_is_ok" boolean property indicating operation success or failure (true or false respectively). If status_is_ok is false, then the batch had failed the first level of validation. If true, then the batch had passed batch level validation, however one must check the individual sub-record status to find any records that may have failed record-level validation.
GET responses contain an array of the results ("results"), a status field ("status_is_ok") and a message field on failure ("message"); the message indicates the reason for failure. If query parameters are supplied (e.g., for sorting) those parameters and their values are also returned (e.g., "order_by", and "direction" are commonly used for sorting).
Paginated responses contain a "current_page" property to support subsequent pagination requests, as well as a "max_page_size" property that specifies the maximum number of records per page. Currently, paginated responses return up to 1000 records at a time; additional records can be retrieved by supplying the "page" query parameter. If less than 1000 records are returned, it can be assumed that there are no additional pages.
{ "max_page_size": 1000, "current_page": 0, "status_is_ok": true, "results": [ { RESPONSE } ] }
POST responses contain a "failed_results" array that contains responses for records that failed. Each failed result object contains its own "message" and "record" property indicating the record that failed (indexed from 0). They also contain a "status_is_ok" field. If the "status_is_ok" is set to false, none of the batch records were inserted or updated due to a fatal error. If a non-fatal error occurs, "status_is_ok" is set to true, and the "failed_results" contains the list of records that failed (i.e., not updated or inserted).
{ "status_is_ok": false, "failed_results": [ { "message": "'Invalid record, missing required field: account_id", "record": 1 } ] }POST and PUT requests will ignore records containing an "account_id" that is not found within Freshsuccess; however the "failed_results" return field will contain the list of mismatched accounts. For example:
{ "status_is_ok": true, "failed_results": [ { "message": "Account not found", "record": 1 } ] }To instead fail upon the detection of missing accounts, insert the '"ignore_missing_accounts" : false' property and value into a top level options object in the base request record. The example below also shows the use of the overwrite_csm_assignmets option described in the Account Bulk Update section. E.g.,
{ "options": { "ignore_missing_accounts": true, "overwrite_csm_assignments": true }, "records": [ { Parameters... } ] }
PUT and DELETE responses contain a "status_is_ok" field indicating if the request was successful, if the request failed the "message" string property containing a human readable response string:
{ "status_is_ok": false, "message": "Invalid record, missing required field: subscription_id" }
Name | Type | Required | Param Type | Description |
order_by | string | no | query | Field by which to order results. Choices include: account_id, name, join_date. |
direction | string Default: asc | no | query | Sets the direction of sorting. Choices include: asc, desc. |
page | integer | no | query | Page to view (for paginated requests) |
include_inactive | boolean Default: false | no | query | Show inactive accounts |
include | string | no | query | Include one or more pieces of extra information about the account. If more than one choice is provided the choices must be separated by a comma. Choices include: custom_value_dimensions, custom_label_dimensions, custom_event_dimensions, assigned_csms. |
{ "current_page": 0, "status_is_ok": true, "include_inactive": true, "results": [ { "account_id": "12345", "name": "Cocoa Ltd", "crm_account_id": "crm-12345", "billing_account_id": "billing-12345", "support_account_id": "support-12345", "billing_street": "66155 Malcom Trace Suite 234", "billing_city": "Nicolleton", "billing_state": "AS", "billing_postal_code": "44411", "billing_country": "USA", "phone": "605.917.5197", "employees": 4520, "industry": "Food", "tier": "High touch accounts", "csm_score": 53, "sales_rep_name": "Miss Aline Ledner", "sales_rep_email": "aledner@mayert.org", "source": "adwords", "join_date": 1312685594018, "is_active": true, "current_stage": "trial", "current_mrr": 0, "current_nps_score": 50, "current_health_score": 40 }, { "account_id": "45678", "name": "Klein & Co", "crm_account_id": "crm-45678", "billing_account_id": "billing-45678", "support_account_id": "support-45678", "billing_street": "485 Adah Canyon Suite 933", "billing_city": "Doyleville", "billing_state": "FL", "billing_postal_code": "35010", "billing_country": "USA", "phone": "929.598.1610x375", "employees": 4551, "industry": "B2B Saas", "tier": "Medium touch accounts", "csm_score": 78, "sales_rep_name": "Orelia Langosh", "sales_rep_email": "olangosh@mayert.org", "source": "adwords", "join_date": 1329830477175, "is_active": false, "current_stage": "established", "current_mrr": 100000, "current_nps_score": 75, "current_health_score": 72 } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
{ "status_is_ok": true, "results": [ { "account_id": "12345", "name": "Cocoa Ltd", "billing_account_id": "billing-12345", "support_account_id": "support-12345", "crm_account_id": "crm-12345", "billing_street": "66155 Malcom Trace Suite 234", "billing_city": "Nicolleton", "billing_state": "AS", "billing_postal_code": "44411", "billing_country": "USA", "phone": "605.917.5197", "employees": 4520, "industry": "Food", "tier": "Medium touch accounts", "csm_score": 78, "sales_rep_name": "Miss Aline Ledner", "sales_rep_email": "aledner@mayert.org", "source": "adwords", "join_date": 1312685594018, "is_active": true, "current_stage": "trial", "current_mrr": 100000, "current_nps_score": 75, "current_health_score": 72, "assigned_csms": [ "joe@company.com", "fred@company.com" ], "custom_label_dimensions": { "favorite_chocolate_flavor": "hazelnut", "favorite_fruit": "mango" }, "custom_value_dimensions": { "offices_count": 20, "trucks_fleet_size": 12 }, "stage_history": [ { "name": "trial", "start_date": 1312685594018, "end_date": null } ] } ] }
"options": {
"overwrite_csm_assignments": boolean
}
Name | Type | Required Insert / Modify | Description |
account_id | string(256) unique accross accounts | yes / yes | Primary account ID |
name | string(512) | yes / no | Company name |
join_date | long epoch milliseconds | yes / no | Earliest time company joined product; customer since |
renewal_date | long epoch milliseconds | no / no | Renewal date; manually added, should only be used if renewal dates are not present in billing subscriptions, otherwise subscription renewal date will overwrite. |
billing_account_id | string(256) | no / no | This account's ID in the billing system |
support_account_id | string(256) | no / no | This account's ID in the support system |
crm_account_id | string(256) | no / no | This account's ID in the CRM system |
billing_street | string(256) | no / no | Company's street address |
billing_city | string(80) | no / no | Company's city |
billing_postal_code | string(80) | no / no | Company's zip or postal code |
billing_state | string(80) | no / no | Company's state |
billing_country | string(256) | no / no | Company's country |
phone | string(80) | no / no | Primary phone number |
employees | integer | no / no | Number of employees |
industry | string(80) | no / no | Industry category |
tier | string(80) | no / no | Current tier level |
csm_score | integer 0-100 | no / no | Qualitative CSM score |
current_nps_score | integer -100-100 | no / no | Net promoter score; directly sets the account's current NPS (rather than uploading per user NPS data). |
current_mrr | integer | no / no | Current MRR in cents. NOTE: this field should NOT be set directly unless the account has NO subscription data. This field is generally computed from subscription data and will be overwritten by calculating the current MRR value from the latest subscriptions. |
sales_rep_name | string(256) | no / no | Primary sale rep's name |
sales_rep_email | string(256) | no / no | Primary sale rep's email |
source | string(80) | no / no | Data source for account record |
stage | string(80) | no / no | Current stage for account, assigns start date of current time. Only one of 'stage' or 'stage_history' should be specified at same time. |
website | string(512) | no / no | Optional website of account |
description | string(512) | no / no | Optional description of account |
is_deleted | boolean | no / no | If true hard deletes all account data and adds the account to a deletion list that will prevent the resync of data for that account id; equivalent to state = 'deleted'. If false, it removes the account from the deletion list allowing data to be resync'ed for that account, it does not restore any previously deleted data; equivalent to state = 'active'. |
is_churned | boolean | no / no | Mark account as churned if true, unchurns if false (and was inactive); when true, equivalent to state = 'churned' |
inactive_time | long epoch milliseconds | no / no | Time account became inactive (deleted or churned); default, current time. |
inactive_reason | string(512) | no / no | Reason account became inactive; default none |
state | string(80) active,deleted,churned | no / no | Set the state of the account; equivalent to using is_deleted (see is_deleted for more details) or is_churned for setting deletion or churn; takes precedence over is_deleted/is_churned if multiple are used |
parent_account_id | string(256) | no / no | Account ID of this account's parent (only for hierarchy support); explicitly set to null to remove parent link. |
hierarchy_label | string(80) | no / no | Textual label of this account's position within hierarchy (only for hierarchy support) |
product | string(256) | no / no | Product code for the account |
region | string(256) | no / no | Region for the account |
projected_churn_date | long epoch milliseconds | no / no | Projected churn date for the account (timestamp) |
projected_churn_mrr | long | no / no | The Projected churn MRR in cents. |
churn_likelihood | string(256) No risk,Low risk,High risk,Confirmed churn | no / no | Likelihood of churn; one of: No risk,Low risk,High risk,Confirmed churn |
latest_status_title | string(80) | no / no | The account's current status; the title |
latest_status_details | string(8192) | no / no | The account's current status; the details |
latest_status_date | long epoch milliseconds | no / no | The account's current status; the date set |
assigned_csms | array[ { email: string } ] | no / no | List of customer success managers (CSMs) to assign/unassign from this account. List is merged with any previously assigned CSMs unless the option "overwrite_csm_assignments" is set to true, see bulk insert description for more details. |
custom_label_dimensions | array[ { key: string, value: string } ] | no / no | Array containing one or more key/value mappings of custom label dimensions. List is merged with any previously set label dimensions. |
custom_label_dimensions.key | string(256) | yes / yes | Name of custom label dimension |
custom_label_dimensions.value | string(512) | no / no | Textual value of custom label dimension; if null will be set to null |
custom_value_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom value dimensions. List is merged with any previously set value dimensions. |
custom_value_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_value_dimensions.value | double | no / no | Numeric value of custom value dimension; if null will be set to null |
custom_event_dimensions | array[ { key: string, value: long } ] | no / no | Array containing one or more key/value mappings of custom event dimensions. List is merged with any previously set value dimensions. |
custom_event_dimensions.key | string(256) | yes / yes | Name of custom event dimension |
custom_event_dimensions.value | long epoch milliseconds | no / no | Timestamp value of custom event dimension; if null will be set to null |
documents | array[ { name: string, url: string, description: string } ] | no / no | Array containing one or more document urls to associate with account. |
documents.name | string(80) | yes / yes | Display name of the url |
documents.url | string(512) | yes / no | Actual url. E.g., https://docs.google.com/document5.pdf. If null, entry will be deleted. |
documents.description | string(80) | no / no | Optional description |
stage_history | array[ { name: string, start_date: long, end_date: long } ] | no / no | Array containing a list of stages for an account over time. List is merged with any previously set stages (e.g., to incrementally add a new stage). |
stage_history.name | string(80) | yes / no update | Name of the stage |
stage_history.start_date | long epoch milliseconds | yes / no update | Timestamp of stage start time in epoch ms |
stage_history.end_date | long epoch milliseconds | yes / no update | Timestamp of stage end time in epoch ms
Omit the end_date to indicate this stage is the current stage; there can only be one current stage |
nps_history | array[ { nps_score: long, date: long, username: string, survey_name: string, comments: string } ] | no / no | Array containing a list of Net promoter scores and the dates on which they occurred (optionally per user). List is merged with any previously set scores. The current score is calculated by averaging all scores in a 30 day window preceding (and including) the date of the latest score. |
nps_history.nps_score | long | yes / yes | Net promoter score |
nps_history.date | long epoch milliseconds | yes / no update | Timestamp of score in epoch ms |
nps_history.username | string(128) | no / no update | Optional username associated with score |
nps_history.survey_name | string(128) | no / no | Optional survey name or campaign name to associate with entry |
nps_history.comments | string(4096) | no / no | Optional comments associated with score |
{ "records": [ { "account_id": "12345", "name": "Cocoa Ltd", "crm_account_id": "crm-12345", "billing_account_id": "billing-12345", "support_account_id": "support-12345", "billing_street": "66155 Malcom Trace Suite 234", "billing_city": "Nicolleton", "billing_state": "AS", "billing_postal_code": "44411", "billing_country": "USA", "custom_label_dimensions": [ { "key": "favorite_flavor", "value": "hazelnut" }, { "key": "favorite_fruit", "value": "mango" } ], "custom_value_dimensions": [ { "key": "offices_count", "value": 20 }, { "key": "trucks_fleet_size", "value": 12 } ], "phone": "605.917.5197", "employees": 4520, "industry": "Food", "tier": "High touch accounts", "csm_score": 53, "sales_rep_name": "Miss Aline Ledner", "sales_rep_email": "aledner@mayert.org", "source": "adwords", "join_date": 1312685594018 } ] }
{ "records": [ { "account_id": "12345", "assigned_csms": [ { "email": "joe@company.com" }, { "email": "fred@company.com" } ] }, { "account_id": "6789", "assigned_csms": [ { "email": "joe@myco.com" }, { "email": "fred@myco.com" } ] } ] }
{ "records": [ { "account_id": "12345", "custom_label_dimensions": [ { "key": "favorite_flavor", "value": "hazelnut" }, { "key": "favorite_fruit", "value": "mango" } ] }, { "account_id": "6789", "custom_label_dimensions": [ { "key": "favorite_flavor", "value": "strawberry" }, { "key": "favorite_fruit", "value": "banana" } ] } ] }
{ "status_is_ok": false, "failed_results": [ { "message": "'employee' value must be a number", "status_is_ok": false, "record": 1 } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
{ "data": { "account_id": "12345", "name": "Cocoa Ltd", "crm_account_id": "crm-12345", "billing_account_id": "billing-12345", "support_account_id": "support-12345", "billing_street": "66155 Malcom Trace Suite 234", "billing_city": "Nicolleton", "billing_state": "AS", "billing_postal_code": "44411", "billing_country": "USA", "custom_label_dimensions": [ { "key": "favorite_flavor", "value": "hazelnut" }, { "key": "favorite_fruit", "value": "mango" } ], "custom_value_dimensions": [ { "key": "offices_count", "value": 20 }, { "key": "trucks_fleet_size", "value": 12 } ], "phone": "605.917.5197", "employees": 4520, "industry": "Food", "tier": "High touch accounts", "csm_score": 53, "sales_rep_name": "Miss Aline Ledner", "sales_rep_email": "aledner@mayert.org", "source": "adwords", "join_date": 1312685594018 } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
page | integer | no | query | Zero indexed pagination |
{ "results": [ { "account_id": "account1", "description": "Description of the url contents", "name": "File name 1", "url": "http://test.url" }, { "account_id": "account1", "name": "File name 2", "url": "http://test.url2" } ], "current_page": 0, "max_page_size": 1000, "status_is_ok": true }
Name | Type | Required | Param Type | Description |
direction | string Default: asc | no | query | Sets the direction of sorting (order by timestamp) |
page | integer | no | query | Zero indexed pagination |
{ "order_by": "timestamp", "direction": "asc", "results": [ { "chocolate_bars_consumption": [ { "timestamp": 1312685594018, "value": 3 }, { "timestamp": 1312623494011, "value": 10 } ], "hazelnuts_consumption": [ { "timestamp": 1312685594018, "value": 145 }, { "timestamp": 1312623494011, "value": 112 } ] } ], "current_page": 0, "max_page_size": 1000, "status_is_ok": true }
Name | Type | Required | Param Type | Description |
order_by | string Default: invoice_id | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
{ "current_page": 0, "status_is_ok": true, "results": [ { "account_id": "1", "invoice_id": "invoice-0", "non_recurring": 45493, "start_date": 1410055451006, "paid_date": 1411351451006, "is_failed": false, "line_items": [ { "amount": 45493, "is_recurring": false, "description": "Et et provident beatae blanditiis quae recusandae rerum." } ] }, { "account_id": "1", "invoice_id": "invoice-1", "start_date": 1411351451006, "paid_date": 1412647451006, "is_failed": false, "recurring": 70552, "non_recurring": 73196, "line_items": [ { "amount": 23322, "is_recurring": true, "description": "Consequuntur omnis ut est porro est molestias nostrum." }, { "amount": 73196, "is_recurring": false, "description": "Dolorum et placeat similique suscipit perferendis." }, { "amount": 47230, "is_recurring": true, "description": "Explicabo eos rerum quia et." } ] } ] }
Name | Type | Required | Param Type | Description |
order_by | string Default: start_date | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
{ "current_page": 0, "status_is_ok": true, "results": [ { "subscription_id": "subscription_1", "account_id": "2", "start_date": 1392566436543, "end_date": 1395158436543, "expiration_date": 1427996422070, "plan_code": "plan_1", "units": 18, "revenue": 188595, "cycle_unit": "month", "cycle_length": 3 }, { "subscription_id": "subscription_2", "account_id": "2", "start_date": 1395158436543, "end_date": 1397750436543, "expiration_date": 1447799926555, "plan_code": "plan_2", "units": 91, "revenue": 818019, "cycle_unit": "day", "cycle_length": 45 } ] }
Name | Type | Required | Param Type | Description |
order_by | string Default: create_time | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
{ "current_page": 0, "status_is_ok": true, "results": [ { "ticket_id": "21623876183", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "closed", "priority": "normal", "create_time": 1410055451006, "close_time": 1411351451006, "subject": "Beatae blanditiis", "description": "Et et provident beatae blanditiis quae recusandae rerum." }, { "ticket_id": "21623876121", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "open", "priority": "normal", "create_time": 1410055451006, "close_time": null, "subject": "Aspernatur saepe reiciendis", "description": "Deserunt non nisi at commodi." } ] }
Name | Type | Required | Param Type | Description |
order_by | string Default: create_time | no | query | Field to order by |
direction | string Default: desc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
{ "current_page": 0, "status_is_ok": true, "results": [ { "account_id": "account_1", "id": 1111, "external_id": "EXTERNAL_1", "name": "account_1 - Deal", "description": "Deal description", "product": "Fresh Product", "amount": 999, "stage": "New", "owner_name": "Mr. Owner", "owner_email": "owner@mail.com", "creator_name": "Mr. Creator", "creator_email": "creator@mail.com", "create_time": 1602162785000, "close_time": 1602162785000, "expected_close_time": 1602162785000, "pipeline": "Starting", "source_created": "api", "source": "api", "external_sync_time": 1602162785000 }, { "account_id": "account_2", "id": 2222, "external_id": "EXTERNAL_2", "name": "account_2 - Deal", "description": "Deal description", "product": "Fresh Product", "amount": 999, "stage": "New", "owner_name": "Mr. Owner", "owner_email": "owner@mail.com", "creator_name": "Mr. Creator", "creator_email": "creator@mail.com", "create_time": 1602162785000, "close_time": 1602162785000, "expected_close_time": 1602162785000, "pipeline": "Starting", "source_created": "Freshsuccess", "source": "Freshsuccess", "external_sync_time": 1602162785000 } ] }
Name | Type | Required | Param Type | Description |
order_by | string Default: user_id | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
include_inactive | boolean Default: false | no | query | Show inactive/deleted account users |
{ "current_page": 0, "status_is_ok": true, "results": [ { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "contact_user_id": "crm_account_user_1", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business Manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "product_join_date": 1397237259004, "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] }, { "user_id": "user_2", "account_id": "account_1", "first_name": "Alvan", "last_name": "Barton", "contact_user_id": "crm_account_user_2", "phone": "(517)087-7826x071", "email": "alvan.barton@volkman.biz", "salutation": "Dr.", "title": "Aeronautical engineer", "role": "Engineer", "mailing_street": "13081 Marks Groves Apt. 603", "mailing_city": "Shieldschester", "mailing_state": "NJ", "mailing_postal_code": "62032", "mailing_country": "United States of America", "lead_source": "Cold call", "product_join_date": 1409079326465, "is_active": true, "custom_label_dimensions": [], "custom_value_dimensions": [] } ] }
Name | Type | Required | Param Type | Description |
order_by | string Default: user_id | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
include_inactive | boolean Default: false | no | query | Show inactive/deleted account users |
{ "current_page": 0, "status_is_ok": true, "results": [ { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business Manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "is_primary": true, "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] }, { "user_id": "user_2", "account_id": "account_1", "first_name": "Alvan", "last_name": "Barton", "phone": "(517)087-7826x071", "email": "alvan.barton@volkman.biz", "salutation": "Dr.", "title": "Aeronautical engineer", "role": "Engineer", "mailing_street": "13081 Marks Groves Apt. 603", "mailing_city": "Shieldschester", "mailing_state": "NJ", "mailing_postal_code": "62032", "mailing_country": "United States of America", "lead_source": "Cold call", "is_primary": false, "is_active": true, "custom_label_dimensions": [], "custom_value_dimensions": [] } ] }
state
property to 'deleted'
or 'churned'
repectfully; it is much more efficient than multiple back-to-back DELETE calls.Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
churn | string | no | query | If set to true, then the account is marked as churned rather than deleted |
inactive_time | long | no | query | Time account became inactive (deleted or churned); default, current time. |
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
name | string | no | path | Stage name; if provided deletes all stages with corresponding name from account |
timestamp | long | no | path | Timestamp corresponding to stage start date; if provided with name; delete all entries with name, start date pair from account |
{ "message": "Deleted: 1 stage history entries", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
key | string | no | path | Dimension value key; delete all entries with key. |
{ "message": "Deleted: 1 dimension values", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
key | string | no | path | Dimension label key; delete all entries with key. |
{ "message": "Deleted: 1 dimension labels", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
string | no | path | Rep email; delete all rep mappings for this rep. |
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
timestamp | long | no | path | Timestamp corresponding to NPS date |
{ "message": "Deleted: 1 nps history entries", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account ID |
name | string | no | path | Name of document |
{ "message": "Deleted: 1 file urls", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
order_by | string Default: user_id | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
include_inactive | boolean Default: false | no | query | Show inactive/deleted account users |
include_dimensions | boolean Default: false | no | query | Result includes custom dimensions for each product user |
{ "current_page": 0, "status_is_ok": true, "results": [ { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "contact_user_id": "crm_account_user_1", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business Manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "product_join_date": 1397237259004, "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] }, { "user_id": "user_2", "account_id": "account_2", "first_name": "Alvan", "last_name": "Barton", "contact_user_id": "crm_account_user_2", "phone": "(517)087-7826x071", "email": "alvan.barton@volkman.biz", "salutation": "Dr.", "title": "Aeronautical engineer", "role": "Engineer", "mailing_street": "13081 Marks Groves Apt. 603", "mailing_city": "Shieldschester", "mailing_state": "NJ", "mailing_postal_code": "62032", "mailing_country": "United States of America", "lead_source": "Cold call", "product_join_date": 1409079326465, "is_active": true, "custom_label_dimensions": [], "custom_value_dimensions": [] } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary product user ID |
account_id | string | no | path | If the user ID is not globally unique, an account ID can be specified to uniquely identify user |
{ "status_is_ok": true, "results": [ { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "contact_user_id": "crm_account_user_1", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "product_join_date": 1397237259004, "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] } ] }
Name | Type | Required Insert / Modify | Description |
account_id | string(256) | yes / yes | Account ID |
user_id | string(256) | yes / yes | Primary product user ID; unique across all accounts |
first_name | string(80) | no / no | First name |
last_name | string(80) | no / no | Last name |
is_primary | boolean Default: insert: false | no / no | Is user primary user for this account |
product_join_date | long epoch timestamp Default: insert: current time | yes / no | Join date of user; first time seen on product |
contact_user_id | string(256) | no / no | Mapping from user_id to contact/crm user ID; if product user is also a contact (present in CRM) |
phone | string(80) | no / no | Phone number |
string(512) | no / no | Email address | |
salutation | string(80) | no / no | Greeeting (e.g., Mr, Ms, Dr, etc) |
title | string(128) | no / no | Title of user (e.g., CEO, Customer Success Manager) |
role | string(128) | no / no | Role of user (e.g., Decision Maker, Approver, Buyer) |
department | string(128) | no / no | Department of user |
lead_source | string(80) | no / no | Source of lead for this user |
mailing_street | string(512) | no / no | Street address |
mailing_city | string(80) | no / no | City |
mailing_state | string(80) | no / no | State name or code |
mailing_postal_code | string(80) | no / no | Zip/postal code |
maling_country | string(80) | no / no | Country name or code |
source | string(80) | no / no | Data source of record, e.g., CRM name, etc. |
is_active | boolean Default: insert: true | no / no | Is the user active; default true (active) |
email_opt_out | boolean Default: insert: false | no / no | Should the user be excluded from any email campaign or trigger; default false (not excluded) |
custom_label_dimensions | array[ { key: string, value: string } ] | no / no | Array containing one or more key/value mappings of custom label dimensions. List is merged with any previously set label dimensions. |
custom_label_dimensions.key | string(256) | yes / yes | Name of custom label dimension |
custom_label_dimensions.value | string(512) | no / no | Value of custom label dimension; if null will be set to null |
custom_value_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom value dimensions. List is merged with any previously set value dimensions. |
custom_value_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_value_dimensions.value | double | no / no | Value of custom value dimension; if null will be set to null |
custom_event_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom event dimensions. List is merged with any previously set value dimensions. |
custom_event_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_event_dimensions.value | long epoch timestamp | no / no | Value of custom event dimension; timestamp in epoch ms; if null will be set to null |
{ "records": [ { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "product_join_date": 1438210591739, "contact_user_id": "crm_account_user_1", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "custom_label_dimensions": [ { "key": "name", "value": "Manager" }, { "key": "name", "value": "Power User" } ], "custom_value_dimensions": [ { "key": "reports", "value": 11.0 } ] } ] }
{ "status_is_ok": false, "failed_results": [ { "message": "Missing required field for insert: 'first_name'", "status_is_ok": false, "record": 1 } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary product user ID |
{ "data": { "user_id": "user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "contact_user_id": "crm_account_user_1", "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "lead_source": "web", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "product_join_date": 1397237259004, "custom_label_dimensions": [ { "key": "position", "value": "Manager" } ], "custom_value_dimensions": [ { "key": "reports", "value": 11.0 } ] } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Account product user ID |
account_id | string | no | path | Account ID |
dimension | string | no | query | Delete specified dimension; key must be provided (must not be specified along with all_dimensions) |
all_dimensions | boolean | no | query | Delete all dimensions (must not be specified along with dimension) |
{ "message": "Account User with user_id 'sample_id_1' was deactivated successfully", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
order_by | string Default: user_id | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
include_inactive | boolean Default: false | no | query | Show inactive/deleted account users |
include_dimensions | boolean Default: false | no | query | Result includes custom dimensions for each account contacts |
{ "current_page": 0, "status_is_ok": true, "results": [ { "user_id": "crm_account_user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "is_primary": true, "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business Manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] }, { "user_id": "crm_account_user_2", "account_id": "account_2", "first_name": "Alvan", "last_name": "Barton", "is_primary": false, "phone": "(517)087-7826x071", "email": "alvan.barton@volkman.biz", "salutation": "Dr.", "title": "Aeronautical engineer", "role": "Account Manager", "mailing_street": "13081 Marks Groves Apt. 603", "mailing_city": "Shieldschester", "mailing_state": "NJ", "mailing_postal_code": "62032", "mailing_country": "United States of America", "lead_source": "Cold call", "is_active": true, "custom_value_dimensions": [], "custom_label_dimensions": [] } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary crm user ID |
account_id | string | no | path | If the user ID is not globally unique, an account ID can be specified to uniquely identify user |
{ "status_is_ok": true, "results": [ { "user_id": "crm_account_user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "is_primary": true, "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "role": "Business Manager", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "lead_source": "Google", "is_active": true, "custom_label_dimensions": [ { "position": "Manager", "source": "Api" } ], "custom_value_dimensions": [] } ] }
Name | Type | Required Insert / Modify | Description |
account_id | string(256) | yes / yes | Account ID |
user_id | string(256) | yes / yes | CRM ID of contact (or contact's id if no CRM in use) |
first_name | string(80) | no / no | First name |
last_name | string(80) | no / no | Last name |
is_primary | boolean Default: insert: false | no / no | Is user primary contact for this account |
phone | string(80) | no / no | Phone number |
string(512) | no / no | Email address | |
salutation | string(80) | no / no | Greeeting (e.g., Mr, Ms, Dr, etc) |
title | string(128) | no / no | Title of user (e.g., CEO, Customer Success Manager) |
role | string(128) | no / no | Role of user (e.g., Decision Maker, Approver, Buyer) |
department | string(128) | no / no | Department of user |
lead_source | string(80) | no / no | Source of lead for this user |
mailing_street | string(512) | no / no | Street address |
mailing_city | string(80) | no / no | City |
mailing_state | string(80) | no / no | State name or code |
mailing_postal_code | string(80) | no / no | Zip/postal code |
maling_country | string(80) | no / no | Country name or code |
source | string(80) | no / no | Data source of record, e.g., CRM name, etc. |
is_active | boolean Default: insert: true | no / no | Is the user active; default true (active) |
email_opt_out | boolean Default: insert: false | no / no | Should the user be excluded from any email campaign or trigger; default false (not excluded) |
custom_label_dimensions | array[ { key: string, value: string } ] | no / no | Array containing one or more key/value mappings of custom label dimensions. List is merged with any previously set label dimensions. |
custom_label_dimensions.key | string(256) | yes / yes | Name of custom label dimension |
custom_label_dimensions.value | string(512) | yes / yes | Value of custom label dimension |
custom_value_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom value dimensions. List is merged with any previously set value dimensions. |
custom_value_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_value_dimensions.value | double | yes / yes | Value of custom value dimension |
custom_event_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom event dimensions. List is merged with any previously set value dimensions. |
custom_event_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_event_dimensions.value | long epoch timestamp | yes / yes | Value of custom event dimension; timestamp in epoch ms |
{ "records": [ { "user_id": "crm_account_user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "is_primary": true, "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "custom_label_dimensions": [ { "key": "position", "value": "Manager" } ], "custom_value_dimensions": [ { "key": "reports", "value": 11.0 } ] } ] }
{ "status_is_ok": false, "failed_results": [ { "message": "'is_primary' must be boolean", "status_is_ok": false, "record": 1 } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Primary account contact ID |
{ "data": { "user_id": "crm_account_user_1", "account_id": "account_1", "first_name": "Abby", "last_name": "Russel", "is_primary": true, "phone": "748-504-0993x3721", "email": "abby.russel@volkman.biz", "salutation": "Ms.", "title": "Radiographer, diagnostic", "lead_source": "web", "mailing_street": "924 Turcotte Creek", "mailing_city": "Traceestad", "mailing_state": "OR", "mailing_postal_code": "77570", "mailing_country": "United States of America", "custom_label_dimensions": [ { "key": "position", "value": "Manager" } ], "custom_value_dimensions": [ { "key": "reports", "value": 11.0 } ] } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Account crm user ID |
account_id | string | no | path | If the user ID is not globally unique, an account ID can be specified to uniquely identify user |
dimension | string | no | query | Delete specified dimension; key must be provided (must not be specified along with all_dimensions) |
all_dimensions | boolean | no | query | Delete all dimensions (must not be specified along with dimension) |
{ "message": "Account User with user_id 'sample_id_1' was deactivated successfully", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
name | string | yes | path | Metric name |
direction | string Default: asc | no | query | Sets the direction of sorting by timestamp value |
page | integer | no | query | Zero indexed pagination |
account_id | string | no | query | Filter by product account ID |
{ "order_by": "timestamp", "direction": "asc", "results": [ { "account_id": "2", "chocolate_bars_consumption": [ { "timestamp": 1312685594018, "value": 3 }, { "timestamp": 1312623494011, "value": 10 } ] }, { "account_id": "5", "chocolate_bars_consumption": [ { "timestamp": 1312685594018, "value": 7 }, { "timestamp": 1312623494011, "value": 22 } ] } ], "current_page": 0, "max_page_size": 1000, "status_is_ok": true }
Name | Type | Required Insert / Modify | Description |
account_id | string(256) | yes / yes | Account ID |
name | string(128) | yes / yes | Metric name |
metrics | array[ { timestamp: long, value: double } ] | yes / yes | Array of objects containing timestamps and their associated values. |
metrics.timestamp | long epoch milliseconds | yes / yes | Timestamp of metric |
metrics.value | double | yes / yes | Value of metric. |
{ "records": [ { "name": "chocolate_bars_consumption", "account_id": "2", "metrics": [ { "timestamp": 1312685594018, "value": 3 }, { "timestamp": 1312623494011, "value": 10 } ] }, { "name": "hazelnut_consumption", "account_id": "5", "metrics": [ { "timestamp": 1312685594018, "value": 7 }, { "timestamp": 1312623494011, "value": 22 } ] } ] }
{ "status_is_ok": true, "failed_results": [] }
Name | Type | Required | Param Type | Description |
name | string | yes | path | Metric name |
{ "data": { "name": "chocolate_bars_consumption", "account_id": "2", "metrics": [ { "timestamp": 1312685594018, "value": 3 }, { "timestamp": 1312623494011, "value": 10 } ] } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
name | string | yes | path | Metric name |
account_id | string | no | query | Filter by product account ID; delete only those matching filter |
{ "message": "Account metrics with name 'sample_metric_1' were deleted successfully", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
order_by | string Default: start_date | no | query | Field to order by |
direction | string Default: asc | no | query | Sets the direction of sorting |
page | integer | no | query | Zero indexed pagination |
{ "current_page": 0, "status_is_ok": true, "results": [ { "subscription_id": "subscription_1", "account_id": "1", "records": [ { "start_date": 1392566436543, "end_date": null, "is_end": false, "is_renewal": false, "expiration_date": 1437996422070, "plan_code": "plan_1", "total_revenue": 188595, "cycle_unit": "month", "cycle_length": 3 } ] }, { "subscription_id": "subscription_2", "account_id": "2", "records": [ { "start_date": 1395158436543, "end_date": 1397750436543, "is_end": true, "is_renewal": false, "expiration_date": null, "plan_code": "plan_2", "revenue": 818019, "cycle_unit": "day", "cycle_length": 45 } ] } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Subscription ID |
{ "status_is_ok": true, "results": [ { "subscription_id": "subscription_2", "account_id": "2", "records": [ { "start_date": 1395158436543, "end_date": null, "is_end": false, "is_renewal": true, "expiration_date": 1447799926555, "plan_code": "plan_2", "total_revenue": 818019, "cycle_unit": "day", "cycle_length": 45 } ] } ] }
Name | Type | Required Insert / Modify | Description |
account_id | string(256) | yes / yes | Account ID |
subscription_id | string(128) | yes / yes | Subscription ID; unique across all account subscriptions for given time range. Same subscription ID may be used for non-overlapping start/end dates to indicate a renewal/extension of an existing subscription. |
effective_start_date | long epoch milliseconds | yes / yes | Date at which subscription changes became effective; inclusive of end date.
To specify a time range over which this change is effective, specify both the change start and change end dates; the range is defined by: start_date >= range < end_date. All existing events that occur during this timeframe will be overwritten. Note that in the case of 'current' events, this should be the date at which the subscription was actually started. |
effective_end_date | long epoch milliseconds | no / no | Date at which subscription changes are no longer effective; exclusive of end date (useful for changing subscription history).
If omitted, change is assumed to still be in effect and all pre-existing records ending after the 'effective_start_date' will be ended or removed depending on their start date. Note that in the case of 'current' events, this should be date at which the subscription was actually ended and should not be provided if the subscription has not ended. |
event | string(80) Choices: end, renewal, revenue, current | yes / yes | Event that occured at the effective start date: end - plan ended; revenue - revenue changed (or start of new subscription); current - record reflects current state of the subscription (see description above).
On an 'end' event only the 'effective_start_date' should be specified indicating the time at which the end event occured. The 'effective_end_date', 'total_revenue', 'cycle_unit', and 'cycle_length' are ignored if specified. |
total_revenue | long required if event not 'end' | yes / yes | Total revenue for plan over period represented by 'cycle unit' and 'cycle length'. It must include precalculated addons, discounts, etc. In cents. MRR is calculated by dividing total_revenue by the number of months represented by (cycle_unit * cycle_length). |
cycle_unit | string(80) required if event not 'end' Choices: day, month, year | yes / yes | The amount of time per cycle unit: day, month, year. Used to convert total revenue to monthly revenue. |
cycle_length | integer required if event not 'end' | yes / yes | The number of cycle units for this plan |
next_renewal_date | long epoch milliseconds | no / no | Start date of next renewal. May be specified with either 'revenue' or 'current' events. |
plan_code | string(128) | no / no | Short name/id of plan |
source | string(80) | no / no | Data source for subscription record |
url | string(80) | no / no | Url associated with subscription in remote system |
custom_dimensions | array[ { key: string, value: string } ] | no / no | Array containing one or more key/value mappings of custom subscription dimensions. List is merged with any previously set subscription dimensions. |
custom_dimensions.key | string(256) | yes / yes | Name of custom subscription dimension |
custom_dimensions.value | string(256) | no / no | Textual value of custom subscription dimension; if null will be set to null |
Name | Type | Required | Param Type | Description |
id | string | yes | path | Subscription ID |
{ "data": { "subscription_id": "subscription_2", "account_id": "2", "effective_start_date": 1395158436543, "end_date": 1397750436543 } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Subscription ID to delete. |
start_time | long | no | query | Optional, start date of the entries which are greater than or equal to this timestamp are to be deleted. |
end_time | long | no | query | Optional, start date of the entries which are less than or equal to this timestamp are to be deleted. Note: To be used along with start_time only(to define a range) and not individually. |
{ "message": "Subscription entry deleted", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Invoice ID |
{ "status_is_ok": true, "results": [ { "account_id": "1", "invoice_id": "invoice-1", "start_date": 1411351451006, "paid_date": 1412647451006, "is_failed": false, "recurring": 70552, "non_recurring": 73196, "line_items": [ { "amount": 23322, "is_recurring": true, "description": "Consequuntur omnis ut est porro est molestias nostrum." }, { "amount": 73196, "is_recurring": false, "description": "Dolorum et placeat similique suscipit perferendis." }, { "amount": 47230, "is_recurring": true, "description": "Explicabo eos rerum quia et." } ] } ] }
Invoices can contain two sub-elements: line items and transactions. Line items record details about the invoice. Transactions are used to record split-payments. Invoices may contain both recurring and/or non-recurring revenue. If not set in the base invoice, and if line items are present, then the invoice's recurring/non-recurring revenue amounts are set by summing up the relevant field within the line items. An invoice may or may not have been paid. If a paid date is set, the paid amount is calculated as the sum of the recurring and non-recurring revenue; however, if any transactions exist for the invoice, then the paid amount is set to the sum of the transactions.
A split payment has the same invoice ID, start date, and recurring/non-recurring revenue amounts, but have different transaction IDs and may have different paid dates and paid amounts. If an invoice is paid in full, there is no need to add transactions; just set the paid date to the date of payment. If transactions are present, they will override the base invoice's paid amount.
All existing line items related to an invoice are replaced whenever an invoice update contains any line items. Existing line items, based on matching account_id and invoice_id, are replaced with the line items present in the update. If no line items are present, then no changes are made to the line items.
Unlike line item updates, transactions are not replaced wholesale (since they may occur at different points in time). If a transaction is present within an invoice update, then it will replace any transaction with matching account_id, invoice_id, tx_id fields.
Name | Type | Required Insert / Modify | Description |
account_id | string(256) | yes / yes | Account ID |
invoice_id | string(128) | yes / yes | Invoice ID; unique across invoices of all accounts |
start_date | long epoch milliseconds | yes / no | Time at which the charges were created (For modify, one of the start_date or paid_date must be given) |
paid_date | long epoch milliseconds | no / no | Time at which invoice was paid; if transactions are present, this field is set to null (For modify, one of the start_date or paid_date must be given) |
due_date | long epoch milliseconds | no / no | Time at which invoice is due |
is_failed | boolean Default: insert: false | no / no | True if revenue collection was unsuccessful |
recurring | long | no / no | Total recurring revenue for this invoice. If not provided, the sum of all recurring line items is used instead. If paid date is non-null, and no transactions are present, then the recurring and non-recurring revenue fields are summed as the payment amount. |
non_recurring | long | no / no | Total non-recurring revenue for this invoice. If not provided, the sum of all non-recurring line items is used. If paid date is non-null, and no transactions are present, then the recurring and non-recurring revenue fields are summed as the payment amount. |
transactions | array{ tx_id: string, paid_amount: long, paid_date: long } | no / no | List of payment transactions.
Can be used to support split payments -- where payments of different amounts occur on different dates. |
transactions.tx_id | string(128) | yes / yes | Transaction id; identifies the split payment |
transactions.paid_amount | long | yes / yes | Total payment for this invoice transaction in cents |
transactions.paid_date | long | yes / yes | Payment date for this transaction |
line_items | array{ amount: long, is_recurring: boolean, description: string } | no / no | List of invoice line items.
If any line items are present in record, ALL old line items are removed and the new line items are inserted. To preserve old line item entries, they must be reinserted with every update. If no line items are present in record, no existing line items are altered or deleted. |
line_items.amount | long | yes / yes | Amount of line item in cents |
line_items.is_recurring | boolean | yes / yes | Is this line item recurring |
line_items.description | string(4096) | no / no | Description of the line item |
source | string(80) | no / no | Data source for invoice statement record |
{ "records": [ { "account_id": "1", "invoice_id": "invoice-0", "non_recurring": 45493, "start_date": 1410055451006, "paid_date": 1411351451006, "is_failed": false, "line_items": [ { "amount": 45493, "is_recurring": false, "description": "Et et provident beatae blanditiis quae recusandae rerum." } ] }, { "account_id": "1", "invoice_id": "invoice-1", "start_date": 1411351451006, "paid_date": 1412647451006, "is_failed": false, "recurring": 70552, "non_recurring": 73196, "line_items": [ { "amount": 23322, "is_recurring": true, "description": "Consequuntur omnis ut est porro est molestias nostrum." }, { "amount": 73196, "is_recurring": false, "description": "Dolorum et placeat similique suscipit perferendis." }, { "amount": 47230, "is_recurring": true, "description": "Explicabo eos rerum quia et." } ] } ] }
{ "status_is_ok": false, "failed_results": [ { "message": "'is_failed' value must be a boolean", "status_is_ok": false, "record": 2 } ] }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Invoice ID |
{ "data": { "account_id": "1", "invoice_id": "invoice-1", "start_date": 1411351451006, "paid_date": 1412647451006, "is_failed": false, "recurring": 70552, "non_recurring": 73196, "line_items": [ { "amount": 23322, "is_recurring": true, "description": "Consequuntur omnis ut est porro est molestias nostrum." }, { "amount": 73196, "is_recurring": false, "description": "Dolorum et placeat similique suscipit perferendis." }, { "amount": 47230, "is_recurring": true, "description": "Explicabo eos rerum quia et." } ] } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | string | yes | path | Invoice ID |
{ "message": "Statement with invoice_id 'sample_invoice_1' was deleted successfully", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
include_dimensions | boolean Default: false | no | query | Result includes custom dimensions for support ticket |
{ "current_page": 0, "max_page_size": 1000, "status_is_ok": true, "results": [ { "ticket_id": "21623876121", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "open", "priority": "normal", "create_time": 1410055451006, "close_time": null, "subject": "Aspernatur saepe reiciendis", "description": "Deserunt non nisi at commodi.", "custom_label_dimensions": { "User Type": "internal" }, "custom_value_dimensions": { "No Of Query": 4.0 }, "custom_event_dimensions": { "Last Reference Date": 1410055461006 } }, { "ticket_id": "21623876122", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "open", "priority": "normal", "create_time": 1410055451006, "close_time": null, "subject": "Aspernatur saepe reiciendis", "description": "Deserunt non nisi at commodi.", "custom_label_dimensions": { "User Type": "internal" }, "custom_value_dimensions": { "No Of Query": 4.0 }, "custom_event_dimensions": { "Last Reference Date": 1410055461006 } } ] }
Name | Type | Required | Param Type | Description |
ticket_id | string | yes | path | Ticket ID from support system |
include_dimensions | boolean Default: false | no | query | Result includes custom dimensions for support ticket |
{ "status_is_ok": true, "results": [ { "ticket_id": "21623876121", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "open", "priority": "normal", "create_time": 1410055451006, "close_time": null, "subject": "Aspernatur saepe reiciendis", "description": "Deserunt non nisi at commodi.", "custom_label_dimensions": { "User Type": "internal" }, "custom_value_dimensions": { "No Of Query": 4.0 }, "custom_event_dimensions": { "Last Reference Date": 1410055461006 } } ] }
Name | Type | Required Insert / Modify | Description |
ticket_id | string(80) | yes / yes | Ticket ID from support system |
account_id | string(256) | yes / yes | Account ID of ticket requester |
state | string(80) | yes / no | Ticket state; e.g., open, closed, solved, pending |
subject | string(128) | yes / no | Ticket subject |
create_time | long epoch milliseconds | yes / no | Time at which the ticket was created |
type | string(80) | no / no | Ticket type; e.g.: problem, incident, question, task |
close_time | long epoch milliseconds | no / no | Time at which the ticket was closed |
priority | string(80) | no / no | Ticket priority; e.g., high, low, normal, urgent |
assignee_id | string(128) | no / no | ID of ticket assignee in support system |
assignee_email | string(128) | no / no | Email of ticket assignee in support system |
description | string(8192) | no / no | Description of ticket |
source | string(80) | no / no | Data source for record, e.g., CRM, etc. |
csat_label | string(80) | no / no | Customer satisfaction textual label, e.g., statisifed, unhappy |
csat_value | long | no / no | Customer satisfaction numeric value |
last_update_time | long epoch milliseconds | no / no | Time at which ticket as last updated |
is_deleted | boolean | no / no | If set to true, support ticket identified by ticket_id is permanently deleted |
url | string(256) | no / no | Clickable URL to link to support ticket ID in the UI |
custom_label_dimensions | array[ { key: string, value: string } ] | no / no | Array containing one or more key/value mappings of custom label dimensions. List is merged with any previously set label dimensions. |
custom_label_dimensions.key | string(256) | yes / yes | Name of custom label dimension |
custom_label_dimensions.value | string(512) | yes / yes | Value of custom label dimension |
custom_value_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom value dimensions. List is merged with any previously set value dimensions. |
custom_value_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_value_dimensions.value | double | yes / yes | Value of custom value dimension |
custom_event_dimensions | array[ { key: string, value: double } ] | no / no | Array containing one or more key/value mappings of custom event dimensions. List is merged with any previously set value dimensions. |
custom_event_dimensions.key | string(256) | yes / yes | Name of custom value dimension |
custom_event_dimensions.value | long epoch timestamp | yes / yes | Value of custom event dimension; timestamp in epoch ms |
{ "records": [ { "ticket_id": "21623876183", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "closed", "priority": "normal", "create_time": 1410055451006, "close_time": 1411351451006, "subject": "Beatae blanditiis", "description": "Et et provident beatae blanditiis quae recusandae rerum.", "custom_label_dimensions": [ { "key": "User Type", "value": "internal" } ], "custom_event_dimensions": [ { "key": "Last Reference Date", "value": 1410055461006 } ] }, { "ticket_id": "21623876121", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "open", "priority": "normal", "create_time": 1410055451006, "close_time": null, "subject": "Aspernatur saepe reiciendis", "description": "Deserunt non nisi at commodi.", "custom_label_dimensions": [ { "key": "User Type", "value": "internal" } ], "custom_value_dimensions": [ { "key": "No Of Query", "value": 4 } ] } ] }
{ "status_is_ok": false, "failed_results": [ { "message": "'create_time' value must be a Long", "status_is_ok": false, "record": 2 } ] }
Name | Type | Required | Param Type | Description |
ticket_id | string | yes | path | Ticket ID from support system |
{ "data": { "ticket_id": "21623876183", "account_id": "account_1", "assignee_id": "45493", "assignee_email": "Orelia.Langosh@dnb.com", "type": "problem", "state": "closed", "priority": "normal", "create_time": 1410055451006, "close_time": 1411351451006, "subject": "Beatae blanditiis", "description": "Et et provident beatae blanditiis quae recusandae rerum.", "custom_label_dimensions": [ { "key": "User Type", "value": "external" } ] } }
{ "status_is_ok": true }
Name | Type | Required | Param Type | Description |
ticket_id | string | yes | path | Ticket ID from support system |
{ "message": "Ticket with id '10' was deleted successfully", "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
account_id | string | no | query | Account ID filter; return all interactions matching account_id |
create_time | long | no | query | Create time filter; return all interactions with a create time that is greater or equal |
modify_time | long | no | query | Modify time filter; return all interactions with a modify time that is greater or equal |
Name | Type | Required Insert / Modify | Description |
id | long | no / no | Freshsuccess internal ID (For modify, one of id or external_id must be given) |
external_id | string(80) | no / no | External ID (For modify, one of id or external_id must be given) |
account_id | string(256) | yes / yes | Account ID |
type | string(80) | yes / no | Type of interaction (e.g., email, in-person, phone, etc) |
create_time | long epoch milliseconds Default: insert: current time | yes / no | Time that interaction was created |
rep_email | string(80) | no / no | Email address of rep that communicated with customer |
rep_first_name | string(80) | no / no | First name of rep that communicated with customer |
rep_last_name | string(80) | no / no | Last name of rep that communicated with customer |
user_id | string(80) | no / no | Customer contact (CRM) user ID |
user | string(80) | no / no | Customer contact name or email (if no CRM user ID specified) |
details | string(262144) | no / no | Details of the interaction (message body) |
subject | string(128) | no / no | Subject of the interaction |
source | string(80) | no / no | Source of last modification for the interaction (e.g., Salesforce, Intercom, etc). Source cannot be updated after insertion. |
is_html | boolean Default: false | no / no | Is the interaction in html (true) or plain text (false) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
account_id | string | no | query | Account ID filter; return all notes matching account_id |
create_time | long | no | query | Create time filter; return all notes with a create time that is greater or equal |
modify_time | long | no | query | Modify time filter; return all notes with a modify time that is greater or equal |
Name | Type | Required Insert / Modify | Description |
id | long | no / no | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string(80) | no / no | External ID (one of id or external_id must be given) |
account_id | string(256) | yes / yes | Account ID |
create_time | long epoch milliseconds Default: insert: current time | yes / no | Time that note was created |
rep_email | string(80) | no / no update | Email address of rep that created/modified the note. The email address and the associated name cannot be modified. |
editor_first_name | string(80) | no / no | First name of the person who created/modified the note (automatically filled in when rep_email is specified) |
editor_last_name | string(80) | no / no | Last name of the person who created/modified the note (automatically filled in when rep_email is specified) |
note | string(32768) | yes / no | Contents of the note |
subject | string(512) | no / no | Subject of the note |
source | string(80) | no / no | Source of last modification for the interaction (e.g., Salesforce, Intercom, etc) |
is_html | boolean | no / no | Is the note in html format? |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string | no | path | External ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal goal ID |
account_id | string | no | query | Account ID filter; return all goals matching account_id |
start_time | long | no | query | Start date time filter; return all goals with a start date that is greater or equal |
close_time | long | no | query | Completion date filter; return all goals with a completion time that is greater or equal |
include | string | no | query | Include one or more pieces of extra information about the goals. If more than one choice is provided the choices must be separated by a comma. Choices include: custom_value_dimensions, custom_label_dimensions, custom_event_dimensions. |
{ "order_by": "start_date", "direction": "desc", "results": [ { "account_id": "BFR5765BG67", "completion_date": 1513346334033, "was_auto_deployed": false, "goal_id": 0, "goal_name": "New Customer Onboarding", "goal_template_id": 1, "create_date": 1509141817000, "start_date": 1509141817000, "target_date": 1513461817000, "target_days_due": 50, "due_date": 1513461817000, "status": "Completed", "tasks": [ { "completion_date": 1510894389523, "taske_name": "Data Integration", "create_date": 1509141817000, "start_date": 1509141817000, "task_id": 413, "target_days_due": 20, "status": "Completed" }, { "completion_date": 1511304325311, "task_name": "Kick-off Meeting", "create_date": 1510894389523, "start_date": 1510894389523, "task_id": 303, "target_days_due": 5, "status": "Completed" }, { "completion_date": 1512847450707, "task_name": "Product Training", "create_date": 1511304325311, "start_date": 1511304325311, "task_id": 304, "target_days_due": 20, "status": "Completed" }, { "completion_date": 1513346334033, "taske_name": "Business Review", "create_date": 1512847450707, "start_date": 1512847450707, "task_id": 305, "target_days_due": 5, "status": "Completed" } ], "tasks_total": 4, "tasks_completed": 4, "custom_value_dimensions": { "custom_goal_numeric_field": 200.0 }, "custom_label_dimensions": { "custom_goal_text_field": "String" }, "custom_event_dimensions": { "custom_goal_date_field": 1577836800000 } }, { "account_id": "BFR5765BG78", "completion_date": null, "was_auto_deployed": false, "goal_id": 20, "goal_name": "Tier 1 QBR", "goal_template_id": 2, "create_date": 1509401017000, "start_date": 1509401017000, "target_date": 1510697017000, "target_days_due": 15, "due_date": 1513461817000, "status": "In progress", "tasks": [ { "completion_date": 1509792926807, "task_name": "Prepare for QBR", "create_date": 1509401017000, "start_date": 1509401017000, "task_id": 430, "target_days_due": 5, "status": "Completed" }, { "completion_date": 1510126722684, "task_name": "QBR Meeting", "create_date": 1509792926807, "start_date": 1509792926807, "task_id": 357, "target_days_due": 5, "status": "Completed" }, { "completion_date": null, "task_name": "Post QBR", "create_date": 1510126722684, "start_date": 1510126722684, "task_id": 358, "target_days_due": 5, "status": "In progress" } ], "tasks_total": 3, "tasks_completed": 2, "custom_value_dimensions": { "custom_goal_numeric_field": 150.0 }, "custom_label_dimensions": { "custom_goal_text_field": "String" }, "custom_event_dimensions": { "custom_goal_date_field": 1577836800000 } } ], "current_page": 0, "max_page_size": 1000, "status_is_ok": true }
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string(80) | no | path | External ID (one of id or external_id must be given) |
{ "current_page": 0, "status_is_ok": true, "results": [ { "account_id": "account_1", "id": 1111, "external_id": "EXTERNAL_1", "name": "account_1 - Deal", "description": "Deal description", "product": "Fresh Product", "amount": 999, "stage": "New", "owner_name": "Mr. Owner", "owner_email": "owner@mail.com", "creator_name": "Mr. Creator", "creator_email": "creator@mail.com", "create_time": 1602162785000, "close_time": 1602162785000, "expected_close_time": 1602162785000, "pipeline": "Starting", "source_created": "api", "source": "api", "external_sync_time": 1602162785000 }, { "account_id": "account_2", "id": 2222, "external_id": "EXTERNAL_2", "name": "account_2 - Deal", "description": "Deal description", "product": "Fresh Product", "amount": 999, "stage": "New", "owner_name": "Mr. Owner", "owner_email": "owner@mail.com", "creator_name": "Mr. Creator", "creator_email": "creator@mail.com", "create_time": 1602162785000, "close_time": 1602162785000, "expected_close_time": 1602162785000, "pipeline": "Starting", "source_created": "Freshsuccess", "source": "Freshsuccess", "external_sync_time": 1602162785000 } ] }
Name | Type | Required Insert / Modify | Description |
id | long | no / no | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string(80) | no / no | External ID (one of id or external_id must be given) |
account_id | string(256) | yes / yes | Account ID |
name | string(80) | yes / no | Name of the deal |
description | string(500) | no / no | Description of the deal |
product | string(80) | no / no | Product for which the deal was created |
amount | integer | yes / no | Value of the deal |
stage | string(80) | no / no | Stage of the deal |
owner_name | string(80) | no / no | Name of the CRM rep who owns the deal |
owner_email | string(80) | no / no | Email of the CRM rep who owns the deal |
creator_name | string(80) | yes / no | Name of the CSM/CRM rep who created the deal |
creator_email | string(80) | yes / no | Email of the CSM/CRM rep who created the deal |
create_time | long epoch milliseconds | no / no | Time that the deal was created |
close_time | long epoch milliseconds | no / no | Time that the deal was closed |
expected_close_time | long epoch milliseconds | no / no | Time that deal is expected to be closed |
pipeline | string(80) | no / no | Pipeline of the deal |
source | string(80) | no / no | The source from where the deal was created |
is_deleted | boolean | no / no | If set to true, the deal identified by id is permanently deleted |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string(80) | no | path | External ID (one of id or external_id must be given) |
Name | Type | Required | Param Type | Description |
id | long | no | path | Freshsuccess internal ID (one of id or external_id must be given) |
external_id | string(80) | no | path | External ID (one of id or external_id must be given) |
Supported APIs to search include:
Possible operators include:
{ "current_page": 0, "status_is_ok": true, "results": [ ] }
Name | Type | Required Insert / Modify | Description |
attribute | string | no / no | Name of the attribute to match on. The attribute must match the attribute specified in the API. |
value | string,long,boolean | no / no | Value used for comparison. Type depends on type of attribute. |
operator | string Choices: eq,ne,lt,le,gt,ge,like,notLike,isTrue,isFalse | no / no | Operator used to compare API's attribute to the value. |
{ "records": [ { "attribute": "website", "operator": "like", "value": "natero.com" }, { "attribute": "current_nps_score", "operator": "ge", "value": 70 } ] }
{ "current_page": 0, "results": [ { "account_id": "H_0", "billing_account_id": null, "crm_account_id": null, "csm_score": null, "current_health_score": null, "current_mrr": null, "current_nps_score": 75, "current_stage": null, "is_active": true, "is_churned": false, "join_date": 1412685594018, "name": "Nater", "phone": null, "renewal_date": null, "support_account_id": null, "tier": "Established", "website": "https://www.natero.com" } ], "status_is_ok": true }
{ "records": [ { "attribute": "email", "operator": "like", "value": "@natero.com" } ] }