Supported data contract
Campaign contact fields are available undercustomerData.userInfo. This includes standard contact fields and custom columns imported with the campaign contact list.
Campaign control fields are stored under customerData; they aren’t a part of userInfo.
There are no standard nested
customerData.custom or customerData.metadata objects in the current campaign contract. Don’t use those paths for contact-list columns.
Prerequisites
- Campaigns for Artemis is enabled and configured.
- The campaign uses the intended Artemis project and deployment.
- The campaign contact list contains the fields the agent needs.
- Contact-list column names are known exactly, including capitalization.
1
Add Contact Fields to the Campaign List
Create or import a campaign contact list with the required standard and custom columns. For example:
The campaign service stores these contact values in its
userInfo object.Use stable, ABL-friendly column names. For example, prefer policyNumber over Policy Number. Renaming a contact-list column also requires updating every ABL reference to that field.2
Start the Campaign Session
When the campaign starts a supported outbound call, it sends campaign data in the voice-provider tag. Artemis copies the received data into the Runtime session under:A representative Runtime value is:
session.data.values.customerData describes the internal Runtime storage location. In ABL templates, use the shorter customerData... path.3
Read Contact Fields in ABL
Use dotted-path interpolation to access a field:Examples:The same interpolation syntax can be used in supported ABL text fields such as goals, personas, system prompts, and transfer messages.Renewal Campaign Agent ExampleDeterministic Flow ExampleFor campaign control data, omit
userInfo:4
Handle Missing Values Safely
The agent must not rely on a contact field unless the selected campaign dialing path sends it. Write prompts so the conversation works even when an optional value is absent.Recommended behavior:
- Use a field only after confirming that it is populated for the campaign list.
- Don’t speak placeholders or internal identifiers to the customer.
- Ask the customer for a missing value only when it is necessary for the task.
- Don’t guess or fabricate a missing campaign value.
5
Verify the Data During a Test Call
- Create a test contact with distinctive, non-production values.
- Start the campaign against a non-production Artemis deployment.
- Confirm the call reaches the expected project and agent.
- Inspect the Runtime session or trace and locate
data.values.customerData. - Confirm the required contact fields appear under
customerData.userInfo. - Confirm the ABL response resolves the intended dotted paths.
- Repeat with a record that omits optional fields to verify the fallback behavior.
Dialing-mode limitation
The current campaign implementation doesn’t propagate contact data identically in every dialing mode:- Agentless: explicitly adds the complete
userInfoobject to the outbound provider tag. Standard and custom contact fields can therefore reachcustomerData.userInfo. - Progressive and power-related paths: currently add selected values such as phone number, full name, user ID, assigned-agent data, and campaign identifiers, but do not consistently add the complete
userInfoobject.
userInfo; an ABL-only change can’t recover data that wasn’t sent.