Retrieve a journey's metrics step by step
GET/v1/journeys/{id}/step-metrics
Requires an API key with the journeys:read scope. About keys and scopes
Works with integration, agent and partner keys.
Where people are and what each step did, by step id across every version of the journey, so a step keeps its counts when others are added or moved. It counts the enrollments that entered the journey in the window (all time by default), wherever they are now; GET /v1/journeys/{id}/metrics counts by when each thing happened instead. Send steps carry their messages (email or push) and conversions; a random split, each path and how it converted. Deleting a contact deletes their runs of the journey and those messages, so a past window can later show less than it did.
Path parameters
idstringrequiredThe journey's id.
uuid
Query parameters
fromstringoptionalCount only the enrollments that entered from then, inclusive: a date-time, or a date meaning the start of that day in the workspace timezone. Give with
to; omit both for all time.tostringoptionalCount only the enrollments that entered before then, exclusive, in the same forms. To include a whole last day, pass the day after it. No later than the end of today; a window touches at most 366 days. Give with
from.includeRemovedStepsstringoptionaltrue: also the steps no longer in the journey that enrollments passed through, withremoved: true.one of
true,false
Header parameters
Kirora-WorkspacestringoptionalPartner keys only: the child workspace to act in, by the external id the partner gave it. Without it, a partner key acts in its own workspace. Any other key that sends it is refused with 403, and an unknown workspace is 404.
pattern
^[A-Za-z0-9._:-]{1,128}$
Returns
Returns 200 OK with a JourneyStepMetrics in data. Otherwise returns an error; Errors lists every code and which to retry.
generatedAtstringrequiredWhen the counters were read.
date-time
fromstring | nullrequiredStart of the window whose entering enrollments count;
nullfor all time.date-time
tostring | nullrequiredEnd of that window, exclusive.
date-time
stepsobject[]requiredThe journey's steps in order, by id across every version of the journey, then any removed ones asked for.
15 child attributes
stepIdstringrequiredThe step's id.
namestring | nullrequiredThe step's name, if it has one.
typestringrequiredThe step type.
one of
wait,wait_until,digest,send,branch,filter,split,random_split,actionremovedbooleanrequiredWhether the step is no longer in the journey (with
includeRemovedSteps).enteredintegerrequiredEnrollments that reached this step, counted once each.
min 0
passedintegerrequiredEnrollments that reached this step and went on from it.
min 0
currentlyHereintegerrequiredEnrollments on this step now.
min 0
waitingHereintegerrequiredOf
currentlyHere, those waiting out a timer or a due send.min 0
completedHereintegerrequiredEnrollments that finished the journey at this step.
min 0
exitedHereintegerrequiredEnrollments that were ended early while on this step.
min 0
nextStepsobject[]requiredWhere enrollments went on to from this step: a decision step's paths, each by the step it leads to.
2 child attributes
nextStepIdstringrequiredThe id of the step they went on to.
countintegerrequiredEnrollments that went there, counted once each.
min 0
emailJourneyEmailCountsoptionalOn an email send step: the messages it created.
15 child attributes
createdintegerrequiredMessages created.
min 0
queuedintegerrequiredWaiting to be sent.
min 0
sendingintegerrequiredBeing handed to the provider.
min 0
failedintegerrequiredCould not be sent.
min 0
skippedintegerrequiredNot sent, such as for a missing consent or a limit.
min 0
sentintegerrequiredHanded to the provider, whatever happened after.
min 0
deliveredintegerrequiredConfirmed delivered, whatever happened after; test sends to
[email protected]included (seesimulated).min 0
bouncedintegerrequiredRejected by the recipient server; a test send to
[email protected]is not counted.min 0
complainedintegerrequiredMarked as spam by the recipient; a test send to
[email protected]is not counted.min 0
openedintegerrequiredOpened at least once.
min 0
openedByMachineintegerrequiredOf
opened, those only a machine opened: a mail app fetched its images with no reader (Apple Mail Privacy Protection, Gmail's prefetch on delivery) or a mail security scanner checked it.min 0
clickedintegerrequiredWith a link clicked at least once, by a person.
min 0
clickedByMachineintegerrequiredWhose links a machine followed, such as a mail security scanner; counted in neither
clickednoropened.min 0
unsubscribedintegerrequiredWhose recipient opted out through the email's link.
min 0
simulatedintegerrequiredOf
sent, test sends whose outcome was acted out: those todelivered@,bounce@or[email protected](the transactional guide's "Test addresses"). The bounce and complaint rates leave them out.min 0
pushJourneyPushCountsoptionalOn a push send step: the messages it created.
8 child attributes
createdintegerrequiredMessages created.
min 0
queuedintegerrequiredWaiting to be sent.
min 0
sendingintegerrequiredBeing handed to the provider.
min 0
failedintegerrequiredCould not be sent.
min 0
skippedintegerrequiredNot sent, such as for a missing consent or a limit.
min 0
sentintegerrequiredHanded to the provider, whatever happened after.
min 0
openedintegerrequiredOpened at least once.
min 0
clickedintegerrequiredWith a link clicked at least once, by a person.
min 0
conversionsJourneyConversions[]optionalOn a send step: conversions credited to its messages, per conversion goal.
4 child attributes
conversionGoalobjectrequiredThe conversion goal.
2 child attributes
idstringrequireduuid
eventNamestringrequiredThe event the conversion goal counts.
countintegerrequiredConversions credited to the journey's messages.
min 0
revenueobject | nullrequiredThe total of the goal's value;
nullwhen it reads no value, or when withheld.2 child attributes
currencystring | nullrequiredThe goal's currency;
nullwhen it names none.valuenumberrequiredGross, before refunds.
min 0
revenueWithheldbooleanrequiredTrue when the goal's value property is a masked attribute this viewer may not see, so
revenueis null.
randomSplitobjectoptionalOn a random split step: each path and how it converted.
1 child attribute
pathsobject[]required4 child attributes
percentintegerrequiredThe path's share of enrollments, as set.
min 0
nextStepIdstring | nullrequiredThe id of the step it leads to;
nullis the holdout.countintegerrequiredEnrollments that took it.
min 0
conversionGoalsobject[]requiredOne entry per journey conversion goal; reached by an event it counts, sent or not.
3 child attributes
conversionGoalIdstringrequireduuid
contactsintegerrequiredOf those enrollments' contacts, how many did an event the conversion goal counts within its window after the split.
min 0
ratenumber | nullrequiredcontacts / count;nullwith no enrollments. Against the holdout, the lift.