Understanding Flow Event Data
Appcues creates "events" when people view and interact with your published content. Those events are sent back to Appcues to create engagement reports, but they can also be sent to a third-party integration or intercepted with code that your engineers write.
This article goes over the basics of understanding Appcues event data, including:
Parts of a Flow
Before digging into the analytics events themselves, it's useful to understand the composition of Appcues flows. They can be broken down into three main parts: "flows," "step groups," and "step children."
- A step child---often simply referred to simply as a step---is the basic building block of Appcues. It takes the form of an individual piece of content, like a modal or a hotspot, that you've created with Appcues. To learn more about the four different Appcues step types, check out our document that covers pattern types.
- A step group is a sub-grouping of steps that are all the same type. For example, one step group may be composed entirely of tooltips while another may be all slideouts. Sometimes, a step group might only contain a single step. For a more detailed explanation of step groups, our Groups and Step-Groups doc is a great resource.
- A flow is a discrete experience that takes users through a collection of step groups and individual steps. They can be as short as a single step or as long as you would like.
Every one of these individual parts have unique IDs. These can be found inside the settings sidebar in the Appcues builder when editing a flow.
The flow ID also appears in the URL for every flow in the Appcues Studio, as well as on the pop-up when generating a flow's permalink.
They are also included in every flow event created by Appcues, which can help you to understand the interactions users are having with your Appcues content.
- Flow_attempted — Appcues triggers a flow to try and begin showing it to a user.
- Flow_started — once the first step of a flow appears on screen, the flow has officially started and this event fires.
- Flow_completed — this event fires when a user has completed the final step of a flow.
- Flow_skipped — user cancels a step by clicking "Hide these tips" or clicking the "X" button.
Each of the flow events have a flowId, flowName and other attributes that describe that content, so you can build a funnel pretty easily. In addition to flow events, we also send events for the individual step children and step groups in a flow.
Step group events:
- Step_attempted — the step group begins to try and show. Note that attempting to show doesn’t mean they’re actually visible on the screen.
- Step_started — once the first step child of this step group is visible on screen, this event fires.
- Step_completed — user reaches the end of a modal, hotspot, etc.
- Step_skipped — a user skips the rest of the step group either with a custom button or by skipping the rest of the flow.
Step child events:
- Step_child_activated — essentially the same thing as flow_started and step_started. This means the step inside a step group has been reached and begins to show.
- Step_interacted — once a user interacts with a step, whether that be clicking a button, submitting a form, or clicking the exit x button.
- Step_child_deactivated — once a step child has been completed, it is deactivated.
- Step_child_error — this is generally for tooltips and hotspots when the selector cannot be found. When this event fires, it shows up in the issues reporting section of the flow’s analytics page.
- Step_child_recovered — if a tooltip has errored but then Appcues finds the element on the page it should be attached to, the step has recovered and will appear on the page.
Each step event has the flowId for the flow it belongs to, in addition to a stepId, the identifier for that step, and other relevant properties of the event. Step child events also include the unique stepChildId.
When looking at a flow's data, all of these events will be included, allowing you to see what users saw which parts of the flow. These events can be viewed on a flow's analytics page, as well as by exporting a CSV of flow's data. A single user journey in a flow's CSV might look something like this: