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.


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.

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.
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.


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.



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.


Conversations


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).