Email intake
Forward customer emails to a workspace address and let Feedjolt draft clean posts with AI. Set up email intake, reply threading, allowed domains, and attachments.
Email intake lets your team forward customer emails - support tickets, sales notes, anything - to a workspace-specific address. Feedjolt parses the email, runs AI extraction to draft a clean title + body, and adds it to your Inbox for review. Replies to Feedjolt's notification emails thread back onto the original post automatically.
Email intake is on Startup and Scale (not Growth).
Your inbound address
Each workspace has its own forwarding address. The format is:
<your-workspace-slug>-<random-token>@in.feedjolt.comThe random 12-character token is unguessable - that way external parties can't discover your address just by knowing your workspace slug. The address is generated the first time you enable email intake.
You can find it in Dashboard -> Integrations -> Email. Click Copy to grab it.
If the address ever leaks (forwarded to the wrong list, scraped from an inbox, etc.), click Regenerate to mint a new one. The old address stops accepting mail immediately.
Enable in three steps
- Open Dashboard -> Integrations -> Email.
- Toggle Enable email intake.
- (Recommended) Pick a default board for email-sourced drafts. If unset, drafts land on the first active board.
- (Optional) Add allowed sender domains - for example
acme.com. When the list is empty, any sender is accepted. When set, only emails from those domains are processed. - Click Save.
That's it. Forward an email to your address - it appears in Dashboard -> Inbox within seconds.
What happens to a forwarded email
| Step | What we do |
|---|---|
| 1. Receive | Postmark accepts the email at our in.feedjolt.com MX, parses headers + body + attachments, runs spam scoring. |
| 2. Spam check | Emails scoring above our threshold are silently dropped. |
| 3. Resolve workspace | The local-part of the To: address (<slug>-<token>@in.feedjolt.com) is split on the last - and the token is verified against the workspace's stored value (constant-time compare). Mismatches are dropped. |
| 4. Allowed-domain check | If you set an allowlist, the sender's domain must be on it. |
| 5. Identify sender | We upsert an EndUser keyed on the sender email (lowercased). New senders create a new EndUser. |
| 6. AI extraction | If the body is at least 20 characters and you have AI quota, we extract a clean title + body. Falls back to the raw text on failure. |
| 7. Create draft | A pending IntakeDraft is added to your Inbox with source = EMAIL. Attachments are validated against your plan's file-type allowlist + size limits, then attached to the post. |
Reply threading
When Feedjolt sends a notification email (new comment, status change, post moderated, etc.), we stamp a unique Message-ID header on it. If your customer replies to that email, Postmark forwards the reply to our webhook with In-Reply-To: <our-id> - we match it back to the originating post and add the reply as a comment instead of creating a new draft.
This works automatically. There's no setup. The only constraint: only notifications sent after Q.2 shipped carry a Message-ID. Older notifications can't thread.
Spam, blocking, and abuse
- Spam threshold. Postmark scores every inbound email; we drop anything above 5.0. This is a global threshold, not per-workspace, but it's tunable on the deployment side.
- Sender-domain allowlist. Set this if you only forward from known customer domains. It's the cleanest defense against random spam landing in your inbox.
- Disable any time. Toggle Enable email intake off in Dashboard -> Integrations -> Email. Existing drafts are unaffected; new emails return immediately.
Attachments
Postmark inbound supports attachments up to ~10 MB total per message. We decode each attachment, validate it against your plan's file-type allowlist (the same one used by manual uploads - images, PDFs, common docs, CSV, ZIP), then store it in your workspace's R2 region. Banned types (HTML, JavaScript, executables) are rejected per-attachment with a log entry; other attachments in the same email still process.
Attachments are visible in the intake draft and on the resulting post once approved.
Limits
| Plan | Email intake | Default board | Allowed-domain list | Attachments |
|---|---|---|---|---|
| Startup | ✅ | ✅ | ✅ | per plan limits |
| Growth | - | - | - | - |
| Scale | ✅ | ✅ | ✅ | per plan limits |
Troubleshooting
- Email never arrives in the Inbox. Check that you enabled the toggle. Then confirm the To: address matches your workspace slug exactly (case-insensitive). If still missing, our SaaS operator may have an inbound-routing issue - reach out via support.
- Reply isn't threading to the original post. Only notifications sent after Q.2 launched carry the threading header. Older posts won't thread; new ones will.
- Sender from an allowed domain is being rejected. Allowed domains are matched case-insensitively against the sender's domain (the part after
@). Make sure you didn't include@or whitespace.
See also
Slack integration
Install the Feedjolt Slack app to post new feedback, status changes, and roadmap updates into your channels. Map boards to events, manage scopes, and uninstall.
Linear integration
Sync Feedjolt posts to Linear issues with bidirectional status and comment sync. Connect via OAuth, map statuses, send posts, bulk send, and disconnect.
