Shared WhatsApp inbox with a 24 hour reply window countdown
Work every open WhatsApp chat from one board, sorted by how long you have left to reply for free, with claims so two people never answer the same customer.
Build me a shared WhatsApp inbox that my support team works out of all day, on top of Kapso and HubSpot. Several people use it at the same time, so anything one person does needs to be visible to everyone else right away.
The main view is a board listing every open WhatsApp conversation, loaded with the Kapso List Conversations operation. Sort it by how much time is left in the 24 hour reply window, ascending, so the conversations about to expire sit at the top. Compute the window as 24 hours from the most recent inbound message from the customer, not from when the conversation started, so I need the latest inbound timestamp per conversation. Each row shows the customer name, how long they have been waiting since that last inbound message, the remaining window as a live countdown like "3h 12m left", a preview of the last message, and who on my team has claimed it. Color the countdown so rows getting close to expiry read as urgent, and show conversations whose window has already closed in their own state labeled "Window closed" rather than hiding them. Give me filters for unclaimed only, mine only, and window closed.
Clicking a row opens a detail view split into two halves. The left half is the full message thread for that conversation, pulled with the Kapso List Messages operation filtered to that conversation, rendered as a chat transcript with inbound and outbound messages visually distinct and timestamps on each. Use Get Conversation Details for conversation metadata and the Kapso Get Customer operation for the WhatsApp profile details of the person, and show those at the top of the thread.
The right half is a context panel showing that person's HubSpot record. Look them up with the HubSpot Search Contacts operation, matching on the phone number from the WhatsApp conversation. Normalize before searching, since WhatsApp gives numbers in E.164 form and HubSpot may store them with spaces, dashes, or no country code, and check both the phone and mobile phone properties. Show name, email, company, lifecycle stage, and owner. Also pull that contact's recent support tickets with Search Tickets so whoever picks the chat up can see what else is open. When no contact matches, say so clearly in the panel and fall back to the WhatsApp profile details, and offer a button to open the thread anyway. Never block replying just because there is no CRM match.
Under the thread there is a reply box. While the conversation is still inside its 24 hour window, typing a message and hitting send posts it with the Kapso Send a Message operation and appends it to the thread immediately. Once the window has expired, swap the free text box for a template picker: load the approved templates with the Kapso List Message Templates operation, let the agent choose one, fill in any variables it needs, and send it with the Kapso Send a Marketing Message operation. Make the state of the window obvious right above the composer so nobody types a long reply only to discover they cannot send it.
Claiming is the core of the shared part. Any viewer can claim a conversation from the board or the thread view, and the claim is stored in shared app state so every other viewer sees it, along with who claimed it and when. Let people release a claim or hand it to someone else. If a conversation is claimed by a colleague and I open it, warn me before I send anything. This exists to solve the duplicate reply problem where two agents see the same message and both answer it.
Add internal notes on each conversation, stored in the app and visible to the whole team but never sent to the customer. These are for handoffs, so context does not fragment when a chat moves between agents. Render them inline in the thread but styled clearly as internal, not as customer messages.
When a conversation is resolved, let the agent mark it done and write a short summary of what was fixed. Log that onto the customer's CRM record with the HubSpot Create Note operation, associated to the matched contact, including the customer name and the resolution summary. If there was no contact match, skip the note and tell the agent why instead of failing silently.
Add a "draft a reply" button on the thread view that kicks off a background agent. That agent reads the full message thread with List Messages, pulls the customer's HubSpot history with Search Contacts and Search Tickets, and writes a suggested response back into the app, where it lands in the reply box for the agent on duty to edit and send. It must never send anything itself. Show a clear pending state on the conversation while the draft is being written, since it runs in the background and the person may go work another chat meanwhile, and show which teammate requested the draft.
Refresh the board regularly so countdowns stay accurate and new inbound messages appear without a manual reload, and make the whole thing comfortable to keep open on a second monitor all day.
What does this prompt do?
- Puts every open WhatsApp conversation on one board, sorted so the chats closest to losing their free reply window sit at the top, each row showing the customer name, how long they have been waiting, and who on the team has claimed it
- Opens the full message thread next to a context panel with that person's CRM record, so whoever picks up the chat can see the history instead of asking the customer to repeat themselves
- Lets your team reply directly from the app, and switches to your approved templates automatically once the free reply window has closed
- Shows claims to everyone in real time, so two people never answer the same chat, and logs what was resolved back onto the customer's CRM record
What do I need to use this?
- A Kapso account with a connected WhatsApp Business number
- A HubSpot login with access to your contacts
- At least one WhatsApp message template already approved, so your team can still reach people after the free reply window closes
- Customer phone numbers stored on your HubSpot contacts, so the app can match a chat to the right record
How can I customize it?
- Change what counts as urgent, so rows turn red at two hours left instead of four
- Choose which CRM details show in the context panel, such as lifecycle stage, open tickets, or account owner
- Adjust what the draft assistant sounds like, from a short factual reply to a warmer branded tone
- Decide whether closing a chat always writes a note back to the customer record or only when someone adds a summary
FAQs
What is the 24 hour reply window?
How does it stop two agents replying to the same customer?
Can we still message someone after the window closes?
Will this work if our contacts are not all in HubSpot?
What does the draft reply button actually do?
Can we leave notes for each other without the customer seeing them?
Related templates
Work every form enquiry from one queue that already tells you who is new, who is a duplicate and who has a deal open, then push only what you approve.
Compare every WhatsApp campaign side by side, launch a new one from a spreadsheet audience, and stop a bad send in one click.
Every morning your reps open one queue of people publicly asking for alternatives, complaining about a renewal, or shopping your category.
Open one board each morning to see today's and tomorrow's bookings, who confirmed on WhatsApp, who never answered, and who asked to move.
Your support team searches for a customer, sees every feature they have switched on, and grants or revokes trial access with an expiry date attached.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
Stop losing WhatsApp chats to the 24 hour clock.
Give your support team one shared board where every conversation shows its remaining reply window, who is handling it, and the customer context needed to answer well.