Chat functionality overview
We are going to break down Cole Fortman’s video that showcases an application where each user has access to the list of all the members in the application and can initiate a chat with any of the members. Users also have access to all the past conversations and can continue from where they’ve left.
Our chat application contains three users: Bob Ross, Tony Stark, and Bruce Wayne. The recording below shows how we log in with Bob Ross’s account, navigate to All Members, and initiate a chat with Tony Stark.

Initiating a conversation between users

Accessing the “Conversations” section
Softr setup
Home page with user profile
First comes the home page, where we have a List Details block that is connected to the Users table on Airtable. A conditional filter is applied to show each user his/her own details.
A details block with a conditional filter applied

Details block content mapping
All Members
Next, we have the All Members page, which is a List block that shows the list of all users and has a View Profile button that opens the Member Details page, which we’ll discuss next.
All members list linking to Member Details
Member Details
Similar to the Home page, the Member Details page contains a List Details block that shows some user info. But it also has a Customizable Form block that consists of a Start Conversation button and sends two hidden field values.
All Conversations
The All Conversations page contains an Inbox block that is connected to the Conversations table on Airtable, which contains all the conversations initiated between users.
All Conversations list

Conditional filter applied on the conversations list

All Conversations block setup
Conversation Details
The first block is a List Details that’s linked to the Conversations table to indicate which conversation the user is currently on.
The List Details block with conversation ID

Displaying Conversation ID

Comment block

Comment block mapping
Airtable setup
Users
First comes the Users table, where all the user data is stored. It contains such fields as Name, Profile Picture, and Email. Further on, we have three linked records:- Conversations Started: links to the Conversations table, where each conversation record contains data on the user who has started the conversation. As you might remember, this was collected through a hidden field in the Start Conversation form.
- Conversations Received: links to the Conversations table, where each conversation record contains data on the conversation recipient user). This was collected through a hidden field in the same form as well.
-
Messages: links to the Messages table, showing the record ID of the messages that the given user has sent. As we saw in the Softr setup section, when a message was created by the user through the Comments block, it stored the Commenter ID in Airtable.

Users table

Total conversations
Conversations

Conversations table

User field lookups
Messages
The last table we have in this base is the Messages table. Here, we store all the messages linked to their corresponding conversations (Conversations field) and senders (the ID field).