Activity Logs Overview
The Logs dashboard (/logs) is Emalc's high-throughput, real-time forensic event audit stream. While the Emails dashboard is focused on individual message content and rendered HTML previews, Logs captures low-level delivery events, MTA network responses, client telemetry, and forensic metadata for every action taken across your email infrastructure.
Whether an email is accepted by a destination mail server, deferred by anti-spam greylisting, opened by a subscriber on mobile, or rejected due to a non-existent mailbox, an immutable log entry is immediately recorded with precise timestamps, IP addresses, and diagnostic codes.
Logs vs. Emails vs. Campaigns#
Understanding the role of each observability tool in Emalc:
| Capability | Activity Logs (/logs) | Outbound Emails (/emails) | Campaign Reports (/campaigns/[id]) |
|---|---|---|---|
| Primary Scope | Low-level event audit stream & network forensics | Message-centric inspection & recipient history | High-level broadcast analytics & aggregate funnels |
| Core Entity | Individual delivery event (EmailDeliveryEvent) | Complete outbound email (Email) | Entire broadcast campaign (Campaign) |
| Preview Mode | Formatted JSON codeboxes (Request & Response) | Live rendered HTML (Desktop & Mobile) | Email template design preview |
| Telemetry Captured | Source IP, User Agent (OS/Browser), Geolocation, SMTP codes | Status badge, Subject, Recipient, Campaign | Delivery rate, Open rate, CTR, Unsubscribe count |
| Primary Use Case | Forensic debugging, MTA triage, webhook correlation, compliance | Checking recipient email status, verifying email layout | Measuring campaign marketing ROI and audience engagement |
What You Can Inspect in Logs#
The Logs table provides an unopinionated, chronological feed of every delivery event across your workspace:
- Email Events: The specific lifecycle event formatted with clean dot-notation (
email.delivered,email.opened,email.clicked,email.bounced,email.soft_bounce, etc.). - Campaigns: The name of the campaign associated with the message, or an em dash (
—) for transactional API dispatches. - Sender: The verified
Fromemail address used to transmit the message (e.g.billing@yourcompany.com). - Recipient/To: The target destination email address.
- User Agent: Intelligent client detection powered by user-agent parsing (e.g.,
Chrome (Windows),Mobile Safari (iOS),Apple Mail (macOS)). - Created: Relative time of event generation (e.g., 2m ago, 5h ago) with complete ISO timestamp accessible on hover.
Real-Time Search, Filtering & Data Export#
The Logs toolbar provides robust, URL-synchronized filtering tools that allow engineers and deliverability specialists to isolate critical events within seconds:
1. Debounced Search Query#
The search input supports debounced, instant queries across recipient email addresses, event names, sender addresses, and campaign titles.
2. Date Range Picker#
By default, the table presents events from the Last 15 days. You can choose one-click presets (Today, Last 7 days, Last 15 days, Last 30 days) or configure a custom calendar date range.
3. Sender Multi-Select Filter#
Narrow down logs to specific sending domains or brand identities. The dropdown is dynamically populated with all authenticated senders that have active event records in your workspace.
4. Reset Filters#
Click the Reset button (RotateCcw icon) at any time to instantly restore the default 15-day view and clear active search parameters.
5. High-Throughput CSV Export#
Need to perform external audits or feed log data into data warehouses? Click Export to stream matching logs into a standardized CSV file:
- Live Progress Modal: Displays real-time counting, processing progress, and file finalization states.
- Timezone Normalization: Automatically synchronizes exported timestamps with your local machine's timezone.
- Standardized Naming: Exports with clean timestamps formatted as
logs-export-YYYY-MM-DD-HH-mm-ss.csv.
Deep-Dive: Log Detail Inspection Sheet#
Clicking on any log row slides open the Log Detail Sheet, exposing full diagnostic telemetry and dual JSON payloads:
Header & Quick Stats Bar#
- Recipient Chip: Quickly copy recipient address or identify event category.
- Email Events: The exact event identifier with a 1-click copy button.
- Campaign Association: Direct link to the parent campaign context.
- Timestamp: Formatted microsecond-accurate date and time.
- Source IP: Client or MTA connection IP address.
- Log Event ID: Universal unique identifier (UUID) for API querying, webhook correlation, and support escalation.
Dual JSON Codeboxes#
The inspection sheet features two side-by-side syntax-highlighted codeboxes:
All Delivery Events for Message#
The Response Body codebox aggregates the full chronological array of delivery events associated with the same parent email:
[
{
"id": "c7a8b412-9e23-4f81-80a1-2d7f8a1c9021",
"message": "Queued in workspace dispatch engine",
"errorCode": null,
"metadata": null,
"createdAt": "2026-09-17T08:12:00.000Z"
},
{
"id": "e4f5a6b7-8c9d-4e0f-1a2b-3c4d5e6f7a8b",
"message": "Handed off to upstream Mail Transfer Agent (MTA)",
"errorCode": null,
"metadata": null,
"createdAt": "2026-09-17T08:12:03.000Z"
},
{
"id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"message": "250 2.0.0 OK 1726560724 d29-20020a1709029a1d00b005fe6b3f9c4si4393859pjb.124 - gsmtp",
"errorCode": null,
"metadata": null,
"createdAt": "2026-09-17T08:12:05.000Z"
}
]- Inspect the exact raw string returned by destination mail exchangers (e.g. Google Workspace, Microsoft 365, ProtonMail).
- Review step-by-step transmission latency from queue acceptance to inbox delivery.
Practical Troubleshooting Use Cases#
Triage Delivery Delays (Greylisting)
When destination servers apply anti-spam greylisting or rate-limiting, filter by email.delivered_delay to inspect the temporary deferral response. Emalc automatically retries delivery with exponential backoff.
Investigate Hard Bounces vs. Soft Bounces
If a campaign experiences unexpected bounces, check the Response Body in the detail sheet. Hard bounces (email.bounced) will contain permanent failure codes like 550 5.1.1 User unknown, while soft bounces (email.soft_bounce) indicate transient issues like full mailboxes.