8. See Who's Seen Each Message

When new Conversations are created, a new LastReadMessage Thing is created for each User in that new Conversation using the API workflow create_readmessages. This is needed so that we can always have a record of the last Message that each User has seen in each Conversation.

For more information on how new Conversations are created, please refer to the E. New Conversation workflow folder, and the API Workflows section of the app.

Note: A personal plan or higher is needed to run API workflows.

If you notice that the app's "create_readmessages" API workflow is not adding the entire list of LastReadMessages that belong to a particular Conversation (i.e., Step 2 is not adding a newly created LastReadMessage to the just created Conversation), there is a 'backup' workflow on the messages page which adds them to the Conversation. This workflow is in the M. LastReadMessages workflow folder, and it is disabled by default. For more information on this, please refer to the workflow notes in that folder.

When a Message is the last Message that a User in the Conversation has seen, one of these 6 elements will be shown (depending on the Repeating Group of Messages that the Current User is viewing):

Group Seen by (Desktop) Container (Current User)

Group Seen by (Desktop) Container (Other User)

Group Seen by (Mobile) Container (Current User)

Group Seen by (Mobile) Container (Other User)

Group Seen by (Existing Conversation) Container (Current User)

Group Seen by (Existing Conversation) Container (Other User)

These elements are all set to hidden on page load and only become visible when the Message is either:

  1. The 'last' Message in the Conversation

  2. The last Message in the Repeating Group of Messages

  3. The Message is the most recently sent Message in a Conversation.

The conditionals on these elements take the selected Conversation's "LastReadMessages" field (type: LastReadMessage, list: yes), and compares those LastReadMessages' "Message" field values to see if any are equal to the Current cell's Message. If true, the corresponding Group Seen By... element will become visible in that cell.

If another User in the Conversation has seen the Message, their name will be listed in the "Seen by..." text.

Alternatively, if the Current User has sent the most recent Message in a Conversation, and no other Users have seen the Message yet, the Seen By text will read:

Delivered at [Time Message was sent], not seen yet

When all of the Users are all caught up on a Conversation, the Seen By text will read:

Seen by everyone:

What happens if the Current User deletes (i.e., hides) Messages that are the last Messages seen by other Users in the Conversation?

The conditionals are set up so that if the Current User chose to delete Messages in a Conversation (that also happen to be the last Message seen by other Users in the Conversation), the application will show the seen by text next to the closest Message that was seen by each User (as shown in the GIF below):

Messages are not deleted, only hidden from view for that User. For more information on how this works, please refer to the deletemessage reusable element's workflow notes.

Last updated