Digital Onboarding

Digital Onboarding

  • API
  • SFTP
  • Webhooks

›Data Integration

Data Integration

  • API
  • SFTP
  • Completing Objectives
  • Webhooks

Styling

  • Custom CSS

Email

  • SMTP
  • DNS

API Access

The Digital Onboarding API relies on OAuth2 for authentication. It is highly recommended that you read the spec and familiarize yourself with it. The API should always be used via HTTPS. Any attempts to use it via HTTP means that you may have compromised your client_secret or access_token.

With the exception of the token creation end point, all API endpoints require an access_token in order to be used. The access_token is passed via the Authorization header. For example, if your token was abcdef, you would need to include the header Authorization: Bearer abcdef.

Tokens expire on a regular basis so you will need to account for that in the way you use the API. If your token has expired you will receive an HTTP/1.1 401 Unauthorized with a body of {"error": "invalid_token"}. You should store tokens for reuse until they expire. Rather than retrieving tokens at set intervals, you should build token retrieval into how you access the API. This will prevent future changes to token expiration from requiring you to make any updates to your code.

An example of a proper API usage work flow:

Most OAuth2 libraries will help abstract this process for you by automating retries and providing you with an updated token if one was acquired during the transaction. Alternatively you can store the token expiration along with the token and check whether it has expired before using it. Either way, it is best to only request new tokens when needed as opposed to requesting them via a scheduled task.

The API root for all requests is

https://api.digitalonboarding.com/

Grant Access Token

POST /oauth2/token

The client_id and client_secret may be passed via Basic Auth or along with the grant_type in the POST body. Attempts to pass them via the query string will result in them immediately being revoked.

Body

fielddescription
grant_typeA valid OAuth2 grant type. For API use this should always be client_credentials
client_idObtained from the Digital Onboarding admin interface
client_secretObtained from the Digital Onboarding admin interface

Response

fieldtypedescription
access_tokenStringThe temporary token to use while accessing the rest of the API
expires_inNumberThe number of seconds until this token expires
token_typeStringThe type of OAuth2 token generated

Contacts

A contact will always take this shape and support these fields when being sent to or returned from the API. All fields are optional, however, use of unique_id is strongly recommended.

fieldtypedescription
unique_idStringrequired A unique ID is for cross-referencing contacts in your system. See unique ids for more details.
name_titleStringThe contact's title
name_firstStringThe contact's first name
name_lastStringThe contact's last name
name_suffixStringThe contact's suffix
addressStringThe contact's address
address2StringThe second line of the contact's address
cityStringThe contact's city
stateStringThe contact's state
countyStringThe contact's county
countryStringThe contact's country
post_codeStringThe contact's postal code (or zip code)
timezoneStringThe contact's timezone
emailStringThe contact's email address
phone_homeStringThe contact's home phone number
phone_mobileStringThe contact's mobile phone number
phone_workStringThe contact's work phone number
email_verifiedBooleanWhether the contact has proven they have access to the email address
email_opted_inBooleanWhether the contact is opted in to emails
email_authorizedBooleanWhether the contact is allowed to use the email address on file to authenticate and see sensitive data
sms_verifiedBooleanWhether the contact has proven they have access to the mobile phone number
sms_opted_inBooleanWhether the contact is opted in to sms messages
sms_authorizedBooleanWhether the contact is allowed to use the mobile phone number on file to authenticate and see sensitive data
unsubscribe_emailBooleanWhether the contact is unsubscribed from emails
Deprecated
This field will be removed in the future. Please use email_opted_in which is the inverse of this field.
unsubscribe_smsBooleanWhether the contact is unsubscribed from sms messages
Deprecated
This field will be removed in the future. Please use sms_opted_in which is the inverse of this field.
meta_publicObjectAny contact-related data that you want to use in personalizations. Data stored in this object is readable by anyone inspecting page content in a journey which means this field is not appropriate for storing sensitive data. See meta_public behaviors for more details.
meta_privateObjectPrivate contact-related data for use in personalizations and integrations. In order to utilize this information for personalizations, the contact must validate their identity when viewing the journey/page. If the contact does not validate their identity, this information is not exposed by the system. See meta_private behaviors for more details.

Additionally contact objects will contain these fields when being returned from the API. These fields are controlled by our system and should be considered readonly.

fieldtypedescription
idStringA UUID that uniquely identifies the contact in our system. This value can be ignored if you are using the unique_id to identify contacts.
inserted_atStringAn ISO 8601 formatted UTC date showing when the contact was added to our system.
updated_atStringAn ISO 8601 formatted UTC date showing when the contact was last updated in our system.

Tying the above together, here is a sample POST payload to create a new contact

{
  "email_authorized": true,
  "email_opted_in": true,
  "email_verified": true,
  "sms_authorized": true,
  "sms_opted_in": true,
  "sms_verified": true,
  "unique_id": "johndoe1",
  "name_first": "John",
  "name_last": "Doe",
  "timezone": "America/New_York",
  "birthdate": "1999-01-01",
  "email": "john+doe@gmail.com",
  "phone_home": "2125551212",
  "phone_mobile": "2125551212",
  "phone_work": "2125551212",
  "meta_public": {
    "account_level": "platinum"
  },
  "meta_private": {
    "group": "secret"
  }
}

If successful, a HTTP 201 result will be returned with the following payload:

{
  "address": null,
  "address2": null,
  "birthdate": "1999-01-01",
  "city": null,
  "country": null,
  "county": null,
  "email": "john+doe@gmail.com",
  "email_authorized": true,
  "email_opted_in": true,
  "email_verified": true,
  "id": "4dd184e6-ab96-4a73-b406-fa1392f6ae3c",
  "inserted_at": "2021-06-01T03:30:26.056688Z",
  "meta_public": {
    "account_level": "platinum"
  },
  "name_first": "John",
  "name_last": "Doe",
  "name_suffix": null,
  "name_title": null,
  "phone_home": "12125551212",
  "phone_mobile": "12125551212",
  "phone_work": "12125551212",
  "post_code": null,
  "sms_authorized": true,
  "sms_opted_in": true,
  "sms_verified": true,
  "state": null,
  "timezone": "America/New_York",
  "unique_id": "johndoe1",
  "unsubscribe_email": false,
  "unsubscribe_sms": false,
  "updated_at": "2021-06-01T03:30:26.056688Z"
}

Note that meta_private is not returned upon creation.

Unique IDs

Unique IDs can take any format you want. It's best to use a value that will help you cross reference a contact with data in your core and other systems you may be sending us data from.

If a contact with no unique_id is posted we will attempt to default the value of unique_id to the contact's email value. If no unique_id or email is supplied, we will reject the contact record and return a 422.

If a record is supplied with a unique_id that already exists in the system then the contact's data will be updated.

It is important to note that when the system uses a contact’s email as the unique_id, attempting to update the contact’s email address later via SFTP, will not change the unique_id of that contact to the new email, but rather, result in the creation of a new contact.

You may only modify unique IDs within the browser, not via batch or SFTP uploads. Attempting to update a contact's unique_id via batch or SFTP upload, with a non-existent ID will also result in the creation of a new contact. It is therefore strongly advised that you define the unique_id you would like when creating a new contact, in order to avoid manually updating each contact thereafter.

meta_public and meta_private fields

Our meta_public and meta_private fields accept deeply nested objects. However, they are flattened upon arrival and will always be read as flattened structures. It means you can think of them as simple key-value stores with a few extra benefits. Consider the following example.

{
  "car": {
    "make": "Honda",
    "model": "Civic"
  }
}
Provided as input for meta_public
{
  "car.make": "Honda",
  "car.model": "Civic"
}
What we transform meta_public to in the system

Because the data was flattened as it entered the system it means all of the data is still usable in automatic targeting functionality by using dot notation.

Flattened meta data in automated targeting

It also means that you can use dot notation in personalizations to access deeply nested data.

Flattened meta data in personalizations

Arrays in deeply nested data will also be flattened using their indices as keys. In the above example if car had been an array of objects the new addresses for Honda and Civic would have been car.0.make and car.0.model respectively.

If you only use these fields as key-value stores this doesn't affect your usage. However, if you choose to use deeply nested data in these fields it means you should keep the following in mind during your development.

  1. Deeply nested data passed into these fields will not be in the same format on subsequent GET requests.
  2. To reference data in arrays when using features like personalizations and targeting, you will need to provide an index

Communication Opt-ins

Digital Onboarding uses 2 fields to track the full state of a contact's opt-in status. In order to receive marketing emails and sms from the platform an email address or mobile phone number must be both verified and opted in.

An address is considered verified if the contact has clicked a link sent to that address to verify they have access to it. Having this process ensures you are compliant with messaging guidelines, communicating with real people, and protects your sender reputation.

Objective Completion

For more information on objective completion, see completing objectives.

Retrieve

GET /v1/contacts

Use this endpoint to retrieve existing contacts. You may pass the following parameters to the querystring:

fieldtypedescription
limitNumberThe number of rows to return in a single batch. Default limit is 20, maximum 100.
offsetNumberThe offset number of rows to begin from when returning. Used in conjunction with 'limit' for pagination.
searchStringA substring to search contacts for. The search term will be searched within all contact fields.
sort_columnStringThe column name to sort on when returning rows.
sort_directionStringThe direction to sort, when used in conjunction with sort_column. Value can be asc or desc

Create

POST /v1/contacts

Use this end point to create or update an existing contact. If you supply a previously unused unique_id the API will create a new contact (see Unique IDs to understand how the value of unique_id is determined). The post body should be a valid contact object.

Any fields submitted which are unrecognized will be ignored and no error returned.

Update/Upsert

PUT /v1/contacts/:id
PATCH /v1/contacts/:id

Use this end point to update an existing contact. The post body should be a valid contact object.

Body

See contact object.

Response

See contact object.

Create or Update a Batch

POST /v1/contacts

The same endpoint that is used for single contact upserts can also handle batches of contacts. The API distinguishes intent based on the shape of the post body.

Body

fielddescription
contactsAn array of valid contact objects

The response from this request will specify which contacts were created and which ones were updated.

Response

fielddescription
new_contactsAn array of contact objects that were created as a result of the request
existing_contactsAn array of contact objects that were updated as a result of the request

Accounts

An account will always take this shape and support these fields when being sent to or returned from the API. These are the top level fields that are most common, and support native type casting for easier targeting. However, any other fields can be stored in meta_private or meta_public for utilization in targeting or personalizations.

fieldtypedescription
account_numberStringrequired A unique ID for the account.
contact.unique_idStringrequired [1] The contact's unique_id with which to associate the account.
product.codeStringrequired The product code associated with the account
product.type [2]Stringrequired [2] The product's type, must be one of the following values: checking, savings, loan, lease, investment
product.name [2]StringThe product's name
product.description [2]StringThe product's description
contact.roleStringThe contact's role with this account, i.e. primary or joint
micrStringThe account number that shows on a check's MICR line. If present, MICR is used before account number for the direct deposit widget.
routing_numberStringThe account's routing number. If present, this routing number is used for the direct deposit widget before falling back to the team's routing number.
opened_dateDateAn ISO8601 formatted UTC date for when the account was opened
closed_dateDateAn ISO8601 formatted UTC date for when the account was closed
nicknameStringAn account specific nickname
balanceDecimalThe account's balance
number_transactions_last_30_daysIntegerNumber of transactions within the last 30 days
total_amount_last_30_daysDecimalTotal amount of all transactions within the last 30 days
status_codeStringThe account's status code
adverse_statusStringThe account's adverse status code(s)
channel_openedStringThe channel through which the account was opened
closed_reasonStringThe reason for which the account was closed
credit_card_activationDateAn ISO8601 formatted UTC date for when the associated credit card was activated
last_mobile_pay_transactionDateAn ISO8601 formatted UTC date for when the latest mobile pay transaction was made
last_statement_balanceDecimalThe balance on the most recent statement
last_transaction_amountDecimalThe amount of the most recent transaction
last_transaction_dateDateAn ISO8601 formatted UTC date for when the most recent transaction was made
apyDecimalThe account's APY
charge_offStringThe account's charge off code
payment_due_dateDateAn ISO8601 formatted UTC date for when the next payment is due
in_person_deposit_check_dateDateAn ISO8601 formatted UTC date for when the most recent in-person check was deposited
payment_frequencyStringIf applicable, the account's payment frequency
payment_methodStringIf applicable, the account's payment method
loan_paymentDecimalIf applicable, the loan's loan payment amount
loan_payoff_dateDateIf applicable, an ISO8601 formatted UTC date for the loan's payoff date
loan_principalDecimalIf applicable, the loan's principal
loan_termStringIf applicable, the loan's term
maturity_dateDateIf applicable, an ISO8601 formatted UTC date for the loan's maturity date
last_debit_card_transactionDateAn ISO8601 formatted UTC date for the most recent debit card transaction
last_mobile_pay_amountDecimalThe amount of the most recent mobile pay transaction
remote_deposit_last_30_daysDateAn ISO8601 formatted UTC date intended to represent the most resent remote deposit transaction if within the last 30 days
meta_publicObjectAny account-related data that you want to use in personalizations or targeting. Data stored in this object is readable by anyone inspecting page content in a journey which means this field is not appropriate for storing sensitive data. See meta_public behaviors for more details.
meta_privateObjectPrivate account-related data for use in personalizations or targeting. In order to utilize this information for personalizations, the contact must validate their identity when viewing the journey/page. If the contact does not validate their identity, this information is not exposed by the system. See meta_private behaviors for more details.

Additionally account objects will contain these fields when being returned from the API. These fields are controlled by our system and should be considered readonly.

fieldtypedescription
idStringA UUID that uniquely identifies the account in our system. This value can be ignored, internally we generally use the account_number to cross-reference accounts.
inserted_atStringAn ISO 8601 formatted UTC date showing when the account was added to our system.
updated_atStringAn ISO 8601 formatted UTC date showing when the account was last updated in our system.
[1] contact.unique_id

While technically not required in a batch upload, most account features cannot be utilized until the account is associated with a contact. The accounts will successfully be added to our system, and a later batch can contain this mapping alone and will only update this field.

Also note the same account_number can occur in a batch with different contact.unique_ids, and that single account record will be associated with both contacts (with the role specified as above).

[2] product attributes

When creating/updating accounts via the API, SFTP, or the batch upload Admin UI, product attributes are accepted in the above format if the product doesn't exist. If the account item has a product.code that doesn't exist in the system, it will create a product with that code, as well as with the items provided from the above table. If the product.code already does exist, we will NOT update the product, the provided attrs will be ignored.

Create or Update a Batch

POST /v1/batches

To create a batch of account imports via the API, you can submit a request to v1/batches with a type of accounts. This same endpoint is leveraged by our SFTP service, our web admin, and our integrations.

Body

fielddescription
typerequired must be account
recordsAn array of valid account objects
batch_idUsed for diagnostics, leave blank and we will assign a UUID for this batch.

Getting a list of accounts for a contact

POST /v1/contacts/:contact_id/accounts

You can get a list of very limited account information for a contact. Most attributes are inaccessible via the API for security purposes, and exist only for utilization in targeting and personalizations. The attributes here also represent the attributes that are available in personalizations without authenticating.

The response of this endpoint is a shape of "contact accounts," representing the relationship a contact has with accounts (many-to-many). This relationship currently only has a "role."

[
  {
    "role": "primary",
    "account": {
      "id": "744151d1-8552-4987-8f0c-56013f5dbfcd",
      "nickname": "Smith Family Checking",
      "meta_public": {
        "welcome_note": "Welcome!"
      },
      "product": {
        "id": "5dd3d574-20aa-42f8-be96-61bc36c8ab09",
        "type": "checking",
        "code": "C100",
        "name": "Family Checking",
        "description": "",
        "services": [{
          "id": "3f808601-cd32-42ac-86eb-8be72eb5691d",
          "name": "eStatements"
        }, {
          "id": "e9b53b5b-31de-415e-bb78-7e0880296de0",
          "name": "Direct Deposit"
        }]
      }
    }
  }
]

Journeys

Journey endpoints accept these fields when sending journey objects.

fielddescription
owner_idThe id of the user who should be set as the owner of the journey
contactA valid contact object
sourceThe source of this journey's association with the Campaign. System-generated values include api, admin-console, automatic-targeting, and direct. Custom values may be passed at creation for source tracking

Create a Journey from a Template

POST /v1/templates/:template_id/journeys

This endpoint is for creating a specific journey for a single contact.

Body

See journey object

Response

fielddescription
idThe id of the journey that was created
slugThe custom path for the journey that was created
template_idThe id of the template to use for creating a journey (note this param is specified in the request path)
web_client_urlThe full url for the journey that was created

Retrieve journeys associated with a specific contact

GET /v1/journeys

Parameters

fielddescription
contact_idThe UUID of the contact to be queried

Response This endpoint returns an array of JSON objects in the following form:

fielddescription
analytics_cacheAn object containing keys describing the status of the journey's progress. See below for additional detail
completion_verified_atAn ISO8601 formatted UTC date marking when this journey was manually set as completed, or null
contactA contact object. See contact object for additional detail
idThis journey_id
inserted_atAn ISO8601 formatted UTC date marking when this journey was created
reward_dispensed_atAN ISO8601 formatted UTC date marking when this journey's reward was dispensed
slugThis journey's unique slug
sourceThe source of this journey's association with the Campaign. System-generated values include api, admin-console, automatic-targeting, and direct. Custom values may be passed at creation for source tracking
templateA template object for the campaign template associated with this journey. See template objects for additional detail
template_idThe campaign template associated with this journey
updated_atAn ISO8601 formatted UTC date marking when this journey was last updated

Note that meta_private information will not be returned in any contact object unless you have provided an OAuth2 Header as described at the beginning of this document.

Analytics Cache

An object returned above which contains the following structure

fielddescription
is_completedA boolean describing whether this journey has at least one journey_completed action
is_completely_vieweda boolean describing whether all pages (at the time of caching) have at least one page_viewed action
last_viewedAn ISO8601 formatted UTC date containing the most recent page_viewed action's timestamp
pages_completedAn array of page_ids that have at least one page_completed action
pages_viewedAn array of page_ids that have at least one page_viewed action

Update a Journey's progress for a given Campaign

PUT /v1/templates/:template_id/journeys/:journey_id

This endpoint sets progress for a particular Journey on a Campaign.

Body

Accepts an application/json object with either of these values:

Set Completion for this Journey

{
  "is_completion_confirmed": true
}

Set Reward Dispensed for this Journey

{
  "is_reward_dispensed": true
}

Response

fielddescription
completion_verified_atThe date this journey's completion was logged, in ISO8601 format
idThis journey_id
inserted_atThe date this journey was created, in ISO8601 format
reward_dispensed_atThe date this reward was marked as dispensed in ISO8601 format, or null if it has not been marked as dispensed
slugThe custom path for the journey that was created
sourceThe source of this journey's association with the Campaign. System-generated values include api, admin-console, automatic-targeting, and direct. Custom values may be passed at creation for source tracking
template_idThe template_id for this Campaign
updated_atThe date this journey's record was last updated, in ISO8601 format

Templates

Template object fields:

fielddescription
analyticsTemplate analytics
archived_atTime stamp when template was archived
audienceOne of Net New - Direct, Net New - Indirect, Existing - Direct, Existing - Indirect, Attrited/Dormant, All, Other
content_block_statusStatus of content block: draft or published
content_blocksArray of content block objects
cssCSS for template
custom_cssCustom CSS for template
editor_styleseditor_styles object
email_sender_addressAddress for email sender
email_sender_nameName for email sender
factsTemplate facts
footer_contentFooter content for template
has_survey_content_blocksboolean specifying whether any content has a survey content block
hide_progress_ringboolean specifying if progress ring should be hidden
idTemplate ID
inserted_atTime stamp when template was inserted into the database
is_archivedboolean specifying if template has been archived
is_auth_requiredboolean specifying if authentication required for template
is_cce_enabledboolean specifying if CCE is enabled for template
is_mutedboolean specifying if template processing is muted
is_reward_enabledboolean specifying if template reward is enabled
is_split_testing_group_leaderboolean specifying if template is the group leader during split test processing
is_targeting_priorityboolean specifying if the template is has targeting priority
journey_creation_strategyOne of ONE_FOR_ONE, ONE_FOR_ALL, NO_JOURNEY; used in determining how journeys are to be created during targeting
journey_duration_hoursThe duration of a journey in hours
journey_title_optionsjourney_title_options object
layout_basisValue to direct manner of template layout
logo_file_idID for logo file
nameTemplate name
owner_idID of template owner
rewardValue of associated reward
split_testing_group_idID used to track multiple templates in a split testing group
statusOne of archived, draft, live
stylesTemplate stilts
support_owner_optionsOptions for template support owner
targeting_account_priorityPriority used with filtering accounts for targeting
targeting_group_logical_operatorOne of AND, OR, used as boolean operator for targeting group
targeting_orderNumeric value for targeting order
teamTemplate team object
theme_baseBase theme for template
theme_overridesTheme overrides for template
themeTemplate theme
typeOne of standard, tactical
use_caseOne of Onboarding, Digital Engagement, Cross-Sell, Operational Efficiency, Other

content_block

fielddescription
container_idContainer ID
container_typeOne of content_container, message, page, template
content_container_idContent container ID or null
cssCSS
datadata object
gridgrid object
idContent block ID
message_idMessage ID
orderContent block order
page_idPage ID
slugContent block slug
stylesStyles object
template_idTemplate ID
typeContent block type

data

fielddescription
acceptedConfirmationTextText for confirmation acceptance
agreementTextText for agreement
customClassString name of custom class
declinedConfirmationTextText for confirmation decline
disagreeTextText for disagreement
documentLinkTextText for document link
documentLinkUrlURL for document link
headingHeading text
nameName
signatureBoxTextText for signature block

grid

fielddescription
lgLarge size
mdMedium size
smSmall size
xlExtra-Large size
xsExtra-Small size

editor_styles

fielddescription
branding_stylesTemplate branding styles object
template_stylesOverride styles object for template
styles
fielddescription
customObject of custom styles
overridesObject of overriding styles
paletteObject defining style palette
typographyObject defining style typography

journey_title_options

fielddescription
typeOne of CONTACT_NAME, CUSTOM, NONE, TEAM_NAME, TEMPLATE_NAME.
customString value when type is CUSTOM

template_team

fielddescription
idID for team
nameTeam name
privacy_policy_urlURL for privacy policy
terms_of_service_urlURL for terms of service
updated_atTimestamp of last update

Get template

GET /v1/templates/:id

This endpoint returns the template for the specified ID

Parameters

fielddescription
has_survey_content_blocksA boolean determining whether the response should include a flag that any content associated to the template has a survey content block.

Response

fielddescription
templatetemplate object

Get a list of templates

GET /v1/templates

This endpoint returns a list of templates available in your team.

Response

fielddescription
templatesAn array of template objects

Template Messages

Get template messages

GET /v1/templates/:id/template_messages

This endpoint returns an array of template messages for the specified template ID

Response

fielddescription
templatesAn array of template message objects

Template Message fields:

fielddescription
content_variablesObject containing message content variables
idTemplate message identifier
messagemessage object
message_idMessage identifier
orderMessage order
queuequeue used to process this message
scheduled_atMessage scheduled send time
template_idID of template for this message
template_page_idID of template page for this message

message

fielddescription
content_block_statusOne of draft, published
content_blocksArray of message content blocks
content_nameMessage content name
cssCSS for message
idMessage identifier
is_archivedboolean specifying if message has been archived
is_sharedboolean specifying if message is shared
is_transactionalboolean specifying if message is transactional
layout_basisLayout basis, e.g. grid, '
objectiveobjective object
objective_idID of objective object
payloadMessage payload
stylesCSS styles for the message
typeOne of email or sms

Template Pages

Get template pages

GET /v1/templates/:id/template_pages

This endpoint returns an array of template page objects for the specified template ID

Response

Template Page fields:

fielddescription
content_variablesObject containing page content variables
idTemplate page identifier
is_sharedboolean specifying if this page is a shared object
orderPage order
pagepage object
page_idID of the associate page
template_idID of template for this message

page

fielddescription
benchmarkPage benchmark
completion_conditionOne of action, confirm, objective, view or null
completion_messageMessage for page completion
completion_product_idProduct ID for page completion
completion_product_typeProduct type for page completion
contentPage content
content_block_statusOne of draft, published or null
content_blocksArray of page content block objects
content_containersArray of page content container objects
content_nameContent name for the page
cssCustom page CSS
ctaPage CTA
exclude_from_cceboolean specifying whether page is included in CCE
hide_when_completeboolean specifying whether page is hidden when completed
idPage ID
is_archivedboolean specifying whether page has been archived
is_liveboolean specifying whether page status is live
is_sharedboolean specifying whether page is shared
layout_basisOne of grid, none or null
navigation_titleTitle displayed for page navigation
new_slugNew page slug
objective_idID of page objective object
old_slugOld page slug
slugPage slug
stylesCustom styles
teamPage team or empty object
team_idPage team ID
updated_atTimestamp of last page update

content_container

fielddescription
content_blocksArray of page content block objects
cssContainer CSS
engagement_channelengagement_channel object
engagement_channel_idID of the engagement channel
idContent container ID
layout_basisOne of grid, table or `none'
page_idID of containing page object
stylesCSS styles

engagement_channel

fielddescription
idEngagement channel ID
nameName of engagement channel
propertiesEngagement channel properties object
show_navigationboolean specifying whether to show navigation
theme_styles
customCustom CSS object
overridesCSS overrides object
paletteCSS palette object
typographyCSS typography object

properties

fielddescription
heightEngagement channel height
widthEngagement channel width

Objectives

fielddescription
driver_idID for the driver object
idObjective identifier
keyKey to be used in CSV/Contacts Upload when referring to this objective
nameUser friendly name
team_idThe team this belongs to. This will be null if the objective is global and not created by your team.

Get a list of objectives

GET /v1/objectives

Retrieves all of the current objectives that exist for your team.

Response

fielddescription
objectivesAn array of objective objects
Last updated on 8/23/2024
SFTP →
  • API Access
    • Grant Access Token
  • Contacts
    • Unique IDs
    • meta_public and meta_private fields
    • Communication Opt-ins
    • Objective Completion
    • Retrieve
    • Create
    • Update/Upsert
    • Create or Update a Batch
  • Accounts
    • Create or Update a Batch
    • Getting a list of accounts for a contact
  • Journeys
    • Create a Journey from a Template
    • Retrieve journeys associated with a specific contact
  • Parameters
    • Update a Journey's progress for a given Campaign
  • Templates
    • Get template
  • Parameters
    • Get a list of templates
  • Template Messages
    • Get template messages
  • Template Pages
    • Get template pages
  • Objectives
    • Get a list of objectives
Copyright © 2025 Digital Onboarding