AltScore
Builder Tools

Flow Relationships

A bot that has been in production for a while is rarely one flow. It is a menu, a dozen flows the menu opens, a few shared flows for errors or support, and the Jump To nodes that tie them together. Each flow makes sense in the editor; what is hard to see is the whole thing: which flow the customer comes in through, which flows hang off which, and where the customer ends up when a branch is over.

The relationships view draws that for you. It reads the jumps between your flows and organizes them into groups, each with a start, its paths and its ends.

You do not have to prepare anything for it. There are no tags to add, no naming convention to follow and no flow to mark as a start: everything on the screen is worked out from the flows as they are. It works the same for WhatsApp, web and email, because what it reads is the jumps between flows, not the channel the conversation runs on.

Where to find it

Go to Conversational → Bot Builder. Above the list of flows there is a List | Relationships switch. The list is still the default; choose Relationships to open this view.

The view is kept in the page address, so you can send the link to a teammate and it opens straight on Relationships.

At the top of the view you see how many groups and loose flows you have, the activity window (Activity from the last 90 days) and the time it was computed (Computed at 10:42). Refresh computes it again.

Groups

A group is a set of flows connected by jumps. If flow A jumps to B and B jumps to C, the three are in the same group, and so is any flow that jumps to any of them. The direction of the jump does not matter for belonging: what puts two flows in the same group is that a jump connects them.

A flow that does not jump to any other flow and that no flow jumps to is not in a group: it is a loose flow and has its own section at the end of the page.

In practice, most chained bots form a single group: a menu that every branch returns to ties everything together. Groups are listed from largest to smallest.

In this example the group has six flows and two entries. Its start is Menu, it splits into three paths, Signature and Payments return to the menu, and Support ends there.

The group card

Each group is a card with its summary:

  • Starts at. The flow where the group begins, with its alias and a short line explaining why that one was chosen (see Where a group starts).
  • Flows and conversations. How many flows the group has and how many distinct conversations went through any of them in the activity window. A conversation that goes through three flows of the group counts once.
  • Entries. The ways into the group, as pills (see Entries). Clicking a pill shows the detail of the flow it opens.
  • Ends at. A one-line summary of where the group lets go of the customer, for example returns to Menu (5) · ends (2) · hands over to an agent (1). A final flow that returns to two different flows counts once under each.
  • Show map and Show as a list. They open the map and the text list of the group.

Entries

An entry is a way of reaching a flow that does not come from another flow. The view collects them from the configuration you already have:

EntryWhere it comes fromWhat the pill shows
Default botA channel connector whose default responder is this flowThe connector name and its channel
KeywordA connector keyword that sends the customer to this flowThe keyword and the connector channel
CampaignA campaign whose target is this flowThe campaign name and its channel
JourneyThe entry flow of a journeyThe journey name and Web
TemplateA WhatsApp template with a button that opens this flowThe template name and WhatsApp
Channel relayA Channel Relay node in another flow that hands the conversation to this one by its aliasThe name of the flow that holds the relay and Web
StartA flow of the group that no other flow jumps to and that has no other entryNothing else: it is where the group begins

A keyword that hands the conversation to an agent is not an entry, because it does not open any flow, and neither is a template button that transfers to an agent. Deleted campaigns and templates are not counted. A journey counts as an entry even while it is turned off, because its entry flow is still the door of that errand.

A channel relay is resolved the same way it runs: by the most recent published version of the flow with that alias. If no published flow has that alias, the relay is not an entry, because its link would open nothing. A relay never joins two groups: it is a door from another channel, not a jump.

Entries of the same kind and channel that open the same flow share one pill. Up to three, the pill names them all, for example Keyword pago, pagar · WhatsApp. Beyond that it shows the total, for example Template 34 in total · WhatsApp, and the names appear on hover. The map does the same: one pill per kind of entry and flow.

The channel shows as WhatsApp, Web or Email. When an entry does not belong to a channel, as with Start, no channel is shown.

A group can have no configured entry at all. What the card says depends on the activity:

  • If it had conversations in the window: No entry configured: it is probably opened with a shared web link. This is normal for a bot whose customers arrive through a link to the portal: the link points at the flow and leaves no trace in the configuration.
  • If it had none: No entry configured and no conversations in 90 days.
  • If the activity could not be read: No entry configured., without assuming anything about links.

Where a group starts

Every group has exactly one start, chosen in this order:

  1. If the group has entries, the flow of the entry with the highest priority: Default bot, then Journey, Keyword, Campaign, Template, Channel relay and Start. Between two flows with the same kind of entry, the one from which more of the group can be reached wins.
  2. If it has no entries, the flow where most conversations started in the activity window. The card says No entry configured: this is where most conversations start.
  3. If there is no activity either, the flow from which more of the group can be reached. The card says No entry configured and no activity: this is the flow that reaches most of the group.

When the only entries of a group are Start entries, the line under the name is No flow jumps to it: this is where the group begins.

Where a group ends

A final flow is a flow of the group with no forward jump to another flow of the group: the path stops there. Each one carries a chip saying how it ends:

  • Returns to … The flow only jumps back to an earlier flow, usually the menu. It is the most common ending in chained bots: the customer finishes something and goes back to choose again. The chip names the flow it returns to.
  • To an agent. The flow does not jump to any other flow and contains a Human Takeover node.
  • Ends. The flow does not jump anywhere: it has a Close Conversation node, or it simply stops at its last node.

Ending at a last node with no exit is the normal way for a flow to finish, not an error. The view shows it as Ends and does not ask you to add anything.

Broken jumps

A Jump To node that points at a flow that no longer exists or is archived is a broken jump. It is never drawn as an arrow, because it leads nowhere, but it is not hidden either:

  • The flow's card carries a broken jump chip (or 2 broken jumps).
  • The flow's detail has a Broken jumps section with the ids of the missing flows.
  • If a grouped menu hides flows with broken jumps, its options card shows how many.
  • A loose flow with a broken jump says so in its row of the loose section.
  • The group's Ends at line counts the flows that end on a broken jump, for example ends on a broken jump (1).

A flow whose only jump is broken is an Ends final, and its detail makes clear that it ends there because of the broken jump, not because anyone decided it should. Fix it in the editor: point the jump at the right flow or remove the node.

The map

Show map opens the group drawn from left to right. When the tenant has a single group and the screen is wide enough, the map opens by itself.

Flow cards and steps

Each flow is a card with its name, its alias, its step and its conversations in the window (Step 3 · 128 conv.). A flow with no published version has a dashed border and the unpublished label.

The step is the position of the flow along the longest forward path that leads to it: the flows where the group begins are Step 1, the flows they jump to are Step 2, and so on. Each column of the map is one step, so two flows in the same column are at the same depth.

The entries are drawn as pills to the left of the flow they open, with an arrow to it.

Lanes and letters

When a flow jumps to two or more flows, each of those flows opens a lane: a path with its own color and letter (A, B, C…). The flows that follow keep the lane while there is only one way to reach them, and the arrows take its color. Before the first split, flows have no lane.

There are five colors and they repeat from the sixth lane on; the letter does not repeat, which is why every lane carries both.

Merges

When two or more paths arrive at the same flow, that flow is a merge. The lanes end there and the card shows which ones meet, for example joins A and B. The flows after a merge have no lane until the next split.

Large menus

A flow that jumps to six or more flows is a menu, and drawing all its options open would fill the whole canvas. That is why it starts grouped: its options are replaced by a single dashed card, 8 options, with one colored dot per option.

  • Show options on the menu card, or clicking the options card, opens them.
  • Group options closes them again.

An option that is also reached in some other way, for example because a keyword or a campaign opens it, stays visible even when the menu is grouped. And if you select a flow that a grouped menu hides, from the list or from the detail panel, the menu opens so the flow can be seen.

Jumps back

A jump to a flow that the customer already went through on the way there is a jump back: a final flow returning to the menu, or a retry that sends the customer to the start of a step. If they were drawn like the rest, every flow would point at the menu and the map would be a tangle.

That is why they are hidden. They are not lost: they are what the Returns to … chips and the group's Ends at line say. To see them drawn, turn on Show jumps back in the legend; they appear as dotted lines. Turning them on or off does not rearrange the map or change your zoom.

The order of the map, the steps and the lanes ignore jumps back.

Following a path

Hovering over a flow lights up everything a customer can go through to get there and everything they can reach from it, and dims the rest. The path follows forward jumps only: if it followed returns to the menu, any flow would light up the whole group.

Clicking a flow, or an entry pill, opens its detail.

The map can also be used from the keyboard: Tab moves from card to card and Enter or Space opens the detail of a flow, or the options of a grouped menu. The buttons at the bottom right zoom in, zoom out and fit the map to the view. Cards cannot be dragged: the layout is always the computed one.

The flow detail

The detail answers, for one flow, the same questions the map answers at a glance. On a wide screen with the map open it appears to the right of the map; otherwise it opens below the group and the page scrolls to it.

FieldWhat it says
StepThe flow's step in the group
LaneIts letter, which lanes it joins if it is a merge, or No lane
EndHow it ends, if it is a final flow
StatePublished or Unpublished
Conversations (90 days)Conversations that went through this flow in the window
Start here (90 days)Conversations whose first message in the window was in this flow
EntriesThe entries that open it
Comes fromEvery flow that jumps to it, forward or back. A menu is reached mostly through returns
Goes toThe flows it jumps forward to
Returns toThe flows it jumps back to

The flows in Comes from, Goes to and Returns to can be clicked to move to their detail. Open in the editor opens the flow in the same editor as the list; when you close it you come back to Relationships, and the map is computed again with your changes.

On a narrow screen

Below 1200 pixels wide the map does not open by itself. The card says The map reads better on a wide screen. Open it whenever you want; the flows are all here below. and shows Flows of the group in order instead: the same flows, by step, then by lane, then by name. Each row has the step, the lane letter, the name and alias, the joins … label if it is a merge, the unpublished label and the end chip. Clicking a row opens the detail below the list.

Show map is still available if you want the map anyway.

Loose flows

The Loose flows section lists the flows that do not jump to any other flow and that no flow jumps to. They are grouped into categories, with a chip per category to filter and one for All:

CategoryWhat it means
Default botIt is the default responder of a channel
JourneysIt is the entry of a journey
KeywordsA keyword opens it
CampaignsA campaign opens it
TemplatesA WhatsApp template button opens it
Channel relaysA channel relay from another flow opens it
Web linkIt has no configured entry, but it had conversations in the window: it is opened with a web link
Unused in 90 daysIt has no entry, no relationship with other flows and no conversations in the last 90 days
No activity dataIt has no configured entry and activity could not be read: there is no way to know whether it is used

A flow with several entries goes into the first matching category, in the order of the table.

Why "Unused" needs 90 days of traffic

A flow that nothing configured opens may still be in use: a portal link with its alias is enough, and that link is not in any configuration. The only way to tell an abandoned flow from one that is opened through a link is to look at its conversations. That is why a flow is only marked Unused in 90 days when the activity could be read and it had none in that window. Without that data it goes to No activity data, never to Unused.

Unused in 90 days is a candidate for cleanup, not a verdict. The view deletes nothing and archives nothing, and it offers no button to do so. Before deleting a flow from the List view, check that no link you shared outside the platform still points at it.

Each loose flow has Open in the editor.

What the view counts

  • Which flows. For each flow, its latest version: the one you are editing. A jump you add in a draft appears on the map before you publish. Flows whose latest version is archived and hidden flows, such as the one created to preview a form, are left out.
  • Which jumps. The Jump To nodes of the latest version that point at another flow. A jump from a flow to itself is ignored. One that points at an archived or missing flow is not an arrow: it shows as a broken jump.
  • Which conversations. The last 90 days. Test conversations that run a draft and hidden conversations are not counted. The counts are cached for a few minutes, so a conversation that has just started can take a moment to show; the structure (flows and jumps) is read again every time.

When activity is unavailable

Reading the conversations is the slowest part of the computation. If it fails or takes too long, the view still loads, with a notice: We could not read the activity: conversations show as unknown and no flow is marked as unused.

In that case:

  • Conversation counts show as Unknown.
  • No group can use conversations to choose its start.
  • No loose flow is marked as Web link or Unused: they all go to No activity data.

Everything else, groups, entries, steps, lanes and ends, does not depend on activity and is shown the same.

If you do not have permission to see the view, an access notice appears instead of the map. If the load fails for any other reason, a message with Retry appears, and the List view keeps working.