Skip to content

Conversations ​

Conversations is the inbox for everything members send you. A WhatsApp reply, an SMS response, a direct message to your church number β€” they all show up here, grouped by member, in one timeline per conversation.

Conversations inbox

What's in the inbox ​

The left panel lists every active conversation, sorted by most recent inbound. Each row shows:

  • The member's photo and name.
  • The latest message preview (truncated).
  • The channel (WhatsApp / SMS).
  • An unread badge if there are messages your team hasn't seen.

Click a row to open the conversation timeline on the right.

The conversation timeline ​

A single conversation timeline shows every message exchanged with that member across all channels (or per-channel filter). Each message has:

  • Direction β€” inbound or outbound.
  • Timestamp.
  • Channel.
  • Sender β€” the staff member who replied, for outbound.
  • Delivery status β€” for outbound.

Replying ​

The compose box at the bottom lets you reply directly. The channel defaults to the one the member last used; you can switch to a different channel if needed.

Merge tokens work in replies β€” {{member.first_names}} will fill in.

When you send, the message goes through the same provider as a single send from the member profile and lands in the timeline immediately.

How inbound messages get matched to members ​

When an inbound arrives:

  1. The provider webhook (e.g. the WAHA callback for WhatsApp) hits our *-webhook edge function.
  2. We normalize the sender's phone to E.164.
  3. We look up a member whose primary_phone or secondary_phone matches.
  4. If found, the message is threaded into that member's conversation.
  5. If not found, the message lands in an Unmatched bucket with the raw phone shown. You can manually assign it to a member or create a new visitor record.

TIP

The unmatched bucket is where first-time visitors and stranger messages end up. Check it daily β€” sometimes a curious neighbor messages your church number and that's a person to engage with.

Channel threading ​

By default the timeline shows all channels mixed. You can filter to just WhatsApp or just SMS if your member uses both. The thread stays a single thread per member β€” we don't create separate threads for separate channels of the same person.

Assignment ​

Conversations can be assigned to a specific staff member:

  • Click the assign action and pick a teammate.
  • The conversation appears in their personal inbox view.
  • The badge count updates for whoever's assigned.

Unassigned conversations sit in the team inbox where anyone with permission can pick them up.

Status ​

A conversation can be:

  • Open β€” needs a response.
  • Waiting β€” you've replied, waiting on the member.
  • Closed β€” resolved.

You can flip status manually. Open is the default for any conversation with a new inbound message.

The search box at the top searches both the member name and message content. Useful when you remember a specific phrase but not who said it.

Notifications ​

Staff can opt in to notifications for inbound messages β€” either browser notifications (for the desktop app) or push notifications (for the PWA on phones). Configure in Settings β†’ Notifications.

Permissions ​

ActionAdminShepherdMember
View all conversationsyesscoped to unitown only
Replyyesscopedown only
Assignyesscopedno
Match unmatchedyesnono

A shepherd sees conversations with members in their assigned org units. A member can see their own conversation with the church.

Common questions ​

What if a member uses two phone numbers? Both numbers should be on the profile (primary and secondary). The matcher tries both. If they used a third number we don't know about, the message lands in unmatched and you assign it.

Do conversations work for email? Not yet. Email replies go to your church's reply-to inbox, not into GCM. This is on the roadmap.

Can I export a conversation? Yes β€” open the conversation menu and choose export. We produce a PDF transcript suitable for pastoral records or legal compliance.

What if a staff member responds outside GCM (e.g. on the church phone)? Those messages won't appear in the conversation thread. Either route all comms through GCM or accept that the thread is incomplete.

Next steps ​