All posts
Hands typing on a laptop with email and business documents

Email open tracking in CRM: old pixels vs Resend webhooks

CRM users want a green dot: “opened”. Under the hood that means pixels, redirects, webhooks, and privacy rules that changed how reliable tracking is.

The old way: tracking pixel in HTML email

Classic open tracking embeds a 1×1 image (or CSS background) with a unique URL per message. When the client loads images, your server logs a hit and the CRM flips status to “opened”. Gmail, Apple Mail Privacy Protection, and corporate filters often preload or proxy images — so you may see false opens or miss real ones.

  • Tracking domain: use a subdomain like `t.yourdomain.com` so main domain reputation stays clean
  • Link wrapping: each link goes through your redirect to count clicks separately from opens
  • Limitation: text-only emails and “display images” off = no open event

Gmail specifically

You cannot read Gmail’s internal read receipts for arbitrary CRM mail. If you send through Gmail SMTP as a human, you do not get trustworthy open analytics. For product mail you send through a transactional provider (Resend, Postmark, SES) and consume their events.

Modern flow: Resend + webhooks into your CRM

Resend signs webhooks with your secret; events include `email.delivered`, `email.opened`, `email.clicked`, `email.bounced`, `email.complained`. Store `message_id` from the send API on your CRM activity row, then match incoming events.

  1. POST /api/crm/emails → Resend `emails.send` with `tags: { activity_id }`
  2. Resend dashboard → Webhooks → your `POST /api/webhooks/resend`
  3. Verify `svix-signature` (or Resend’s signing headers) before updating DB
  4. CRM timeline: Delivered → Opened (timestamp) → Clicked (link id)

UI patterns that work

  • Badge on thread: Delivered / Opened / Clicked / Bounced
  • Relative time: “Opened 2h ago” with tooltip for exact UTC
  • Filter pipeline: “Sent, no open in 3 days” for sales follow-up
  • Never block send on open tracking — tracking is async metadata

Opens measure engagement hints. Clicks measure intent. Replies measure revenue.

Continue reading

DevOps

Best VPS tools in 2026: Portainer, Coolify, CapRover & aaPanel

Read article
Video

Protect course videos with FFmpeg, HLS & signed blob URLs

Read article