Whole conversations
Select Author = Ada and Qlik Sense answers the question it was asked: the lines Ada wrote. The question behind the selection is usually which chats is Ada in, and the answer wanted is the exchange, not her half of it.
Show whole conversations answers that one. With it on, selecting Ada gives you the conversations she took part in, whole: her own messages drawn as they always are, and the others dimmed, because they are there to give hers their context.
Turning it on
It can be turned on in two places, and they mean different things:
- Conversation → Show whole conversations in the property panel is what the app's developer chooses. It is what every reader starts with, and it is off by default.
- The button in the bar above the conversation — two speech bubbles, Show whole conversations — is a reader's own, for as long as they have the object open. It gives way the moment the setting itself changes, so a developer who changes their mind is not overruled by a reader's earlier choice.
While the mode is on, the bar says what it is showing — 24 messages in 3 conversations · 8 matching the selection with conversations side by side, 57 messages · 12 matching the selection without — so nobody has to wonder why messages they did not select are on screen.
Which selections stop narrowing
A conversation is in scope when any of its messages survives the selections as you made them. Inside those conversations, these selections stop narrowing:
- The people: the Participant field, or From and To in the From → To model — and the To field in the Participants model, where there is one.
- The highlight field and the category field, where they are set. A keyword picks out which conversations are worth reading, not which lines of them: select the category ops and you get the chats where ops came up, whole, with the ops keywords marked — not the four lines that said so.
Every other selection still narrows. Pick a date as well and you see that day's messages of the conversations in which one of Ada's messages that day survives — not their whole history. The mode frees the fields that identify people and keywords; it does not make the object ignore your selections.
A message that belongs to no conversation — no thread value — has no conversation to be in scope of, so it is shown whenever the other selections leave it, whoever wrote it. Without a Conversation / thread dimension at all, the whole object is one conversation.
What it does not change
- Nothing is selected on your behalf, and nothing is written to your app. The selection bar shows exactly what you selected, and a click on a message still selects in the field it always did. The object reads a copy of its own data in a private selection state of its own, which lives only in your session and never appears among the app's alternate states.
- Qlik Sense's back button gains one step, once. The first time the mode is turned on after the page loads, the object empties its private selection state, and Qlik Sense records that as a step like any other. After that, the back button undoes your own selections one at a time.
- The strict view is still there. Turn the mode off and the conversation narrows again.
- An image or PDF export shows the strict conversation. It is drawn without the engine the mode needs.
What it needs
Message ID, the people dimensions and the conversation dimension must be fields, not expressions. Freeing a field from a selection means naming it, bounding a conversation means selecting in one, and an expression has no name to use. The object must also be in the default state: the mode widens against the default state's selections, so an object that reads in an alternate state would show conversations chosen by selections it does not follow.
Where any of that is not so, the button is disabled, and hovering it says what is in the way, rather than widening some conversations and not others with nothing on screen to show it:
- Whole conversations need the default state, not the alternate state Comparison. — naming the object's state.
- Whole conversations need a Message ID dimension on a field.
- Whole conversations need Participant on a field, not an expression. — naming whichever are expressions: From and To, say, or Conversation.
In the rare case the engine will not read the conversation in a state of its own, the corner says so: Whole conversations: the engine would not read the conversation in a state of its own.
What it costs
The conversations in scope are worked out across every message in the app, not only the ones Maximum messages reads. On a 12,000-message app that takes under a tenth of a second. It grows with the table, so on a very large one expect the first draw after a selection to take noticeably longer than the strict view. The cost is the same whether or not anything is selected: the mode being on is what does the work.
A widened conversation also holds more messages than a narrow one, so Maximum messages is reached sooner. The banner above the conversation says when it was.
Together with conversations side by side
The two meet at the lane headers: with the mode on, a conversation picked by its header comes back whole. See selecting a conversation from its lane header.
Copying the conversation copies the dimmed messages too, and does not mark them — see Copying and exporting.