Skip to main content
A Step represents a single screen within a multi-step Experience. Steps define:
  • What to show — title, body text, buttons, and input fields
  • Where to show it — positioned relative to the screen, snapped to an element, or rendered inline
  • When to show it — triggered on page load, element visibility, click, hover, or custom events

Schema

PropertyTypeDescription
idIDThe Chameleon ID
created_attimestampWhen this happened or when this was added to the Database
updated_attimestampThe last time any property was updated
titlestringThe configured title text for this Step
bodystringThe configured body copy for this Step
presetstringThe template this step follows (see Step presets below)
dropdown_itemsarray<String>For a dropdown Microsurvey Step, the configured options for the dropdown
follow_up_delayintegerDelay in milliseconds before follow-up actions are triggered
cta_has_custom_clickbooleanWhether the CTA requires custom click handling
step_triggerstringPrimary trigger condition. One of: page_load, element_match, or element_not_match
position_typestringHow the step is positioned on the page. One of: relative_to_screen, snap_to_element, snap_to_trigger, or inline
step_additional_triggerstringAdditional trigger condition. One of: element_match or element_not_match
secondary_triggerstringSecondary trigger condition. One of: click, hover, time_on_page, smart_delay, input, or custom_trigger
trigger_elementElementPresent if step_trigger is element_match or element_not_match.
trigger_additional_elementElementPresent if a trigger_additional_element has been selected in the UI.
trigger_secondary_elementElementPresent if position_type is snap_to_trigger OR if secondary_trigger is one of click, hover, input.
position_elementElementPresent if position_type is snap_to_element or inline.
exit_elementElementPresent if cta_has_custom_click is true.
buttonsarray<Button>Array of Buttons for this step
quantifier_urlsarrayList of URL matching conditions that must match the current page URL
quantifier_urls.idIDUnique identifier for this URL condition
quantifier_urls.urlstringThe specific URL used in this matching condition
quantifier_urls.match_typestringThe type of matching used. One of: simple, exact, regex, inverse_simple, or inverse_exact

Step presets

Steps use a preset to define their type and behavior:
PresetTypeDescription
survey_twoMicrosurveyTwo-choice survey (e.g., Yes/No, Thumbs Up/Down)
survey_npsMicrosurveyNet Promoter Score (0-10 scale)
survey_csatMicrosurveyCustomer Satisfaction score
survey_cesMicrosurveyCustomer Effort Score
survey_threeMicrosurveyThree-choice survey
survey_fourMicrosurveyFour-choice survey
survey_fiveMicrosurveyFive-choice survey (e.g., Likert scale)
survey_inputMicrosurveyFree-text input survey
survey_dropdownMicrosurveyDropdown selection survey
responseFollow-upA follow-up question shown after the primary survey
thank_youFollow-upA thank-you message shown after survey completion
Steps without a survey-related preset are standard Tour steps (tooltips, modals, banners, etc.).

Step positioning

position_typeDescription
relative_to_screenPositioned relative to the viewport (e.g., center of screen, bottom-right).
snap_to_elementAnchored next to the position_element on the page.
snap_to_triggerAnchored next to the trigger element (the element that caused this step to show).
inlineRendered inline in the DOM near the position_element, used by Embeddables.

Example Step JSON (Tour step)

{
  "id": "5f3c4232c712de665632a8f1",
  "created_at": "2029-04-07T12:18:00Z",
  "updated_at": "2029-04-07T12:18:00Z",
  "title": "Welcome to your dashboard",
  "body": "This is where you'll find an overview of your key metrics.",
  "preset": null,
  "step_trigger": "element_match",
  "position_type": "snap_to_element",
  "secondary_trigger": null,
  "trigger_element": {
    "id": "5f3c4232c712de665632a7e1",
    "selector": ".dashboard-header",
    "tag": "div",
    "use": ["attr_class"]
  },
  "position_element": {
    "id": "5f3c4232c712de665632a7e2",
    "selector": ".metrics-panel",
    "tag": "section",
    "use": ["attr_class"]
  },
  "buttons": [
    {
      "id": "5f3c4232c712de665632a9b1",
      "text": "Next",
      "position": "bottom_right",
      "tour_action": "next"
    }
  ],
  "quantifier_urls": [
    {
      "id": "5f3c4232c712de665632aab1",
      "url": "/dashboard",
      "match_type": "simple"
    }
  ]
}

Example Step JSON (Microsurvey step)

{
  "id": "5f3c4232c712de665632a8f2",
  "title": null,
  "body": "How easy was it to complete this task?",
  "preset": "survey_five",
  "step_trigger": "page_load",
  "position_type": "relative_to_screen",
  "buttons": [],
  "quantifier_urls": []
}

Steps in context

Steps appear as embedded objects within Tours, Microsurveys, and Embeddables. They are included when you retrieve an Experience with the appropriate expand parameter. See also:
  • Tours — contain ordered sequences of Steps
  • Microsurveys — contain survey-type Steps
  • Embeddables — contain inline Steps
  • Elements — define the DOM targets Steps use
  • Buttons — define the interactive actions within Steps