Skip to main content
OpenIndex supports external email conversations linked directly to work items. Inbound email is normalized into a conversation record and can attach to an existing work item or create a new one through routing rules. Outbound replies go through the same conversation thread.
Email infrastructure setup is an admin-only operation. You need instance-admin access to provision receiving domains, mailboxes, and webhooks.

How email works in OpenIndex

Outbound replies follow the reverse path. All conversations, participants, and messages are stored as first-class records and can be accessed through the work item they are linked to.

Setting up email infrastructure

Before creating mailboxes, an admin must provision the receiving email domain and configure the inbound webhook.
1

Provision a receiving domain

Via CLI:
2

Verify the domain

After adding the required DNS records, verify the domain:
3

Set up the inbound webhook

This registers the Resend inbound webhook so that email received at your domain triggers the Convex processing pipeline.
To check the current state of your email infrastructure:

Creating a mailbox

A mailbox defines an inbound email address and its default routing target within a domain.
To view existing mailboxes:

Configuring routing rules

Routing rules let you direct inbound email to specific workflows or domains based on match criteria. Rules are attached to a mailbox.
To view routing rules for a mailbox:
Routing rules can fan a single inbound address into multiple workflows within the mailbox domain based on sender, subject, or other match criteria.

How inbound email becomes a conversation

When an email arrives at a provisioned address:
  1. Resend forwards it to the inbound webhook at /webhooks/resend/email-received.
  2. Convex normalizes the message into a conversations record with participants and messages.
  3. If a routing rule matches, the conversation is linked to a work item in the target domain and workflow.
  4. The work item’s conversation thread is updated with the inbound message.

Sending an outbound message

To send a reply from a work item’s conversation thread:
This sends an email to the conversation participants through the provisioned mailbox address.

Viewing a work item’s conversation

This returns the full conversation thread for the work item, including all inbound and outbound messages and participant records.

Comment visibility

Comments on a work item have an internal or external visibility setting. External comments are included in the outbound email thread visible to conversation participants.
Use external visibility when you want your comment to appear in the next outbound email to the conversation thread. Use internal visibility for notes that should stay within your team.