📥 Inbound Messages
Pingram can capture inbound emails and SMS, and deliver them to your webhook endpoint, with automatic reply detection and tracking.
Overview
Pingram provides a complete inbound messaging solution:
- Unlimited Inboxes - Built-in inbox (e.g.,
yourcompany@mail.pingram.io) with the ability to add unlimited custom addresses and domains - SMS Number - Dedicated A2P-enabled number to send & receive SMS
- Webhooks - Process incoming messages via webhooks
- Reply Detection - Automatically detect if a message is a reply and link it to the original thread
- Inbox Preview - APIs and Dashboard tools to view inbound messages
Email Inbox
Your account comes with a default inbox address in this format: yourcompany@mail.pingram.io
You can customize the prefix from the Dashboard, or add unlimited addresses under your own domain.
The built-in inbox is ready to use immediately. No DNS configuration required.
Email Inbound Webhook
Webhook Payload
When an email is received, your webhook receives a POST request with the following JSON payload:
{ eventType: 'EMAIL_INBOUND', from: string, // Sender's email address to: string, // Your Pingram address that received the email subject: string, // Email subject line bodyText?: string, // Plain text body (if available) bodyHtml?: string, // HTML body (if available) attachments?: Array<{ filename: string, contentType: string, size: number }>, receivedAt: string, // ISO 8601 timestamp isReply: boolean, // true if this is a reply to a previous notification type?: string, // Notification type from the original notification references?: string, // References header for threading messageId?: string, // Original Message-ID header inReplyTo?: string, // In-Reply-To header for threading trackingId?: string, // Original notification's tracking ID userId?: string, // User ID from the original notification}Reply Detection
Pingram automatically detects replies in two ways:
- Reply-to tracking: When you send notifications, we set a unique reply-to address that lets us link replies to the original message
- Thread matching: We analyze email headers and content to identify replies even when users don’t use the reply-to address
SMS Inbound Webhook
Webhook Payload
When an SMS is received, your webhook receives a POST request with the following JSON payload:
{ eventType: 'SMS_INBOUND', from: string, // Phone number of the sender to: string, // Your Pingram SMS number text: string, // Message content receivedAt: string, // ISO 8601 timestamp
// Reply tracking (only present if this is a reply to a previous message) isReply: boolean, // true if linked to a previous outbound message userId?: string, // The user's ID in your system (if isReply) lastTrackingId?: string // Tracking ID of your last outbound message to this user (if isReply)}Costs
Inbound messages count towards your email and SMS usage.
Example:
- Your software sends 1 SMS segment to user A -> 1 SMS usage- User replies to the SMS -> 1 SMS usage
Total usage: 2 SMS usageLogs
All inbound messages are logged in your Logs dashboard.
API Access
In addition to the webhooks, you can programmatically access your inbound messages via the logs list API.