What Is Update Contact Node?
The Update Contact node allows user to update contact attributes AND/OR trigger a custom event on the contact. Below is the node UI in the Journey canvas, and node editor side panel. For more information on how to trigger a Journey, see this article.
Update Contact Attributes on the Contact
-
Contact Attribute: In the "Contact Attributes" field, choose attribute to update by selecting existing attributes OR creating a new attribute.
- To add a new attribute, type in the new field name to Create Attribute. "customProperties." will be prefixed in front of the field name automatically. Select the desired data type for the field. Data types supported include: string, number, boolean, datetime, object, and list.
- Note: a field is officially created in your brand's data schema after having at least one contact with that field populated. Simply creating the attribute in the node here without following execution does not officially generate it in the data schema.
-
Attribute Value: Input value to update new or existing attributes with. Populate "Attribute Value" field with static input, referencing the trigger event properties with {{event.xxx}} or other contact attribute {{contact.xxx}}. NOTE: previous webhook GET responses are currently not available for reference.
- See below for examples:
- Currently, channel based subscription update are not supported in the node (coming soon). Continue to use webhook node to update subscription status on the contact. Contact support if you have questions.
- Journey Execution: contact attributes will be updated before the contact moves forward in the Journey to the next node. Therefore, you may follow up the update contact node with a conditional node or an SMS campaign referencing the new attribute values.
- Regal Event: a contact.attribute.updated event will be generated for each Update Contact node showing all the attributes that were updated, and their old and new values. If an attribute was in the node but its value had no change, it will not be listed in the event payload. These events can be referenced in other journeys or through the Reporting Webhook for external consumption.
-
- An example event payload:
Object":{15 items
"brand":
string"test-env-03"
"contact_email":
string"kelly@regalvoice.com"
"contact_phone":
string"+19735550158"
"created_at":
string"1722629592"
"entity_type":
string"event"
"event_id":
string"f8871baa4109f95a7b5b4fe237a55ff5"
"event_type":
string"regal_voice_event"
"external_id":
string"1325twf4t57"
"legacy_info_key":
string"test-env-03#event#regal_voice_event#039a4c50afa888d8e20ae4708a3e2fe1"
"name":
string"contact.attribute.edited"
"original_timestamp":
string"1722629590"
"profile_id":
string"1a1aff9301d045e3b0cd0ef6e9431030"
"agent_email":
NULL
"new_value":
string"2020-01-03 12:00:05 -04:00"
"old_value":
string""
"contact_phone":
string"+19735550158"
"created_at":
string"1722629590"
"email":
string"kelly@regalvoice.com"
"source":
string"Regal Voice"
"email":
string"kelly@regalvoice.com"
"phone":
string"+19735550158"
}
Caveats and Limitations
- Fields cannot be set to null by writing in hardcoded "null" in the input field. However, null values from dynamic values inside {{}} can be used to set fields as null.
- If the dynamic field {{}} referenced in attribute value does not exist on the contact, this particular field update will be dropped.
- Not all contact attributes can be updated, and they are hidden from the view in the contact attribute selection dropdown. For example, Regal system generated properties such as contactCreatedAt or rvProperties.timezone cannot be updated. However, all contact attributes values, including the system generated ones, can be used to update other fields.
Trigger a Custom Event on the Contact
Using the "Trigger an Event" button, you can trigger a custom event for the contact that pass through this node in Journeys.
- Event Name: In the "Event Name" field, choose from existing events or input a new event name to trigger on the contact.
- Event Properties: Optionally, add properties to the event based on your needs. To add a property, click Add Property button and either select from existing properties or create a new property. "properties." will be prefixed in front of the property name automatically. Select the desired data type for the field. Data types supported include: string, number, boolean, datetime, object, and list.
- Property Value: Input value for the properties selected. Populate "Property Value" field with static input, referencing the trigger event properties with {{event.xxx}} or other contact attribute {{contact.xxx}}. NOTE: previous webhook GET responses are currently not available for reference.
- An example of a custom event triggered using this node:Payload of the custom event with the properties specified:
"Object":{13 items
"brand":
string"circle-bank-segment"
"contact_email":
string"kellychen90@gmail.com"
"contact_phone":
string"+19732626158"
...
}
"created_at":
string"1725554461"
"entity_type":
string"event"
"event_id":
string"69f5ba014b06b6a5a02d7fb793339ea1"
"event_type":
string"track"
"legacy_info_key":
string"circle-bank-segment#event#track#56fcd67ac0c1dbf518f2296764e83a74"
"name":
string"Account Funded"
"profile_id":
string"15c437027c133cb72c4d75923fdced07"
"Account Type":
string"Retirement"
"Fund Amount":
int50000
"source":
}
string"API"
- Triggered custom event will count towards event volume. They are also reference-able in other journeys as a "Custom Event" that have occurred on the contact.
Common Use Cases for Update Contact
- For upcoming scheduled calls, update attribute before sending a confirmation SMS referencing the scheduled time and agent name
- Reflect the latest lead information for accurate agent context in Agent Desktop
- Update "converted" status on contacts so further call tasks will not be created through journeys, using multiple criteria such as call disposition or custom events
- Trigger custom event on the contact record for tracking and reporting purposes