Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s
119 lines
7.1 KiB
Plaintext
119 lines
7.1 KiB
Plaintext
---
|
|
title: Forward a Shared Inbox from Any Email Provider
|
|
description: Point a shared inbox at a Twenty email channel, whatever mail provider you use.
|
|
---
|
|
|
|
Twenty receives shared inbox mail by having your provider send a copy of every incoming message to a private address that Twenty generates for you. Once that is in place, the inbox appears in your workspace.
|
|
|
|
Microsoft 365 and Google Workspace each have their own guide:
|
|
|
|
- [Microsoft 365](/user-guide/calendar-emails/how-tos/forward-a-shared-inbox-from-microsoft-365)
|
|
- [Google Workspace](/user-guide/calendar-emails/how-tos/forward-a-shared-inbox-from-google-workspace)
|
|
|
|
This page covers every other provider.
|
|
|
|
## Part 1: Create the channel in Twenty
|
|
|
|
1. Go to **Settings → Communication**.
|
|
2. Click **Add email channel**.
|
|
|
|
<img
|
|
src="/images/user-guide/emails/inbound-channels/03-twenty-add-email-channel.png"
|
|
style={{ width: '100%' }}
|
|
/>
|
|
|
|
3. In **Source Email Address**, type the shared address you want to receive mail at, for example `contact@yourcompany.com`.
|
|
4. In **Display Name**, type the name recipients see.
|
|
5. Click **Save**.
|
|
|
|
<img
|
|
src="/images/user-guide/emails/inbound-channels/04-twenty-new-channel-form.png"
|
|
style={{ width: '100%' }}
|
|
/>
|
|
|
|
6. Twenty now shows a **Forwarding address**. It ends in `@inbound.twenty.com`. Click **Copy**.
|
|
|
|
<img
|
|
src="/images/user-guide/emails/inbound-channels/05-twenty-forwarding-address.png"
|
|
style={{ width: '100%' }}
|
|
/>
|
|
|
|
<Note>
|
|
Each channel gets its own forwarding address. Never point two mailboxes at the
|
|
same one, or their mail will land in the same place.
|
|
</Note>
|
|
|
|
## Part 2: Choose the right kind of forwarding
|
|
|
|
Most providers offer more than one way to pass mail on, and only one of them works here.
|
|
|
|
Twenty reads the `From` header of each message it receives to determine who wrote it. That is how a message is linked to the right person and company.
|
|
|
|
- **Automatic forwarding on the mail server** leaves the original sender in place. Your customer remains the sender, the message is linked to their record, and replies go back to them. Some providers call this **Redirect**, others call it **Forwarding**. This is the option to use.
|
|
- **Forwarding as an attachment**, or any rule that composes a new message, replaces the sender with your own address. Every conversation then appears to come from you, and no message is matched to a contact.
|
|
|
|
Use the automatic forwarding setting in your mail account or on your mail server. Do not use a rule that resends the message as a new email.
|
|
|
|
<Warning>
|
|
Also avoid rules that strip attachments or convert messages to plain text.
|
|
Twenty stores each message exactly as it arrives.
|
|
</Warning>
|
|
|
|
Where the option exists, choose the one that **keeps a copy** in the original mailbox, so your team can continue to use the inbox as before.
|
|
|
|
## Part 3: Find your provider
|
|
|
|
Follow your provider's instructions, using the forwarding address you copied in Part 1 as the destination.
|
|
|
|
| Provider | Their guide |
|
|
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| Amazon SES | [Forward incoming email to an external destination](https://aws.amazon.com/blogs/messaging-and-targeting/forward-incoming-email-to-an-external-destination/) |
|
|
| Amazon WorkMail | [Email rules](https://docs.aws.amazon.com/workmail/latest/userguide/email-rules.html) |
|
|
| Bluehost | [Create account and domain forwarders](https://www.bluehost.com/help/article/create-account-and-domain-forwarders) |
|
|
| cPanel | [Forwarders](https://docs.cpanel.net/cpanel/email/forwarders/) |
|
|
| DreamHost | [Add a forward-only email address](https://help.dreamhost.com/hc/en-us/articles/215724207-Add-a-forward-only-email-address) |
|
|
| Exchange (self-hosted) | [Configure email forwarding for a mailbox](https://learn.microsoft.com/en-us/exchange/recipients/user-mailboxes/email-forwarding) |
|
|
| GoDaddy | [Forward incoming email to another address](https://www.godaddy.com/help/forward-incoming-email-to-another-email-address-32282) |
|
|
| iCloud Mail | [Forward email on iCloud.com](https://support.apple.com/en-us/102376) |
|
|
| Namecheap | [Set up free email forwarding](https://www.namecheap.com/support/knowledgebase/article.aspx/308/2214/how-to-set-up-free-email-forwarding) |
|
|
| OVHcloud | [Email redirection](https://help.ovhcloud.com/csm/en-emails-redirection) |
|
|
| Rackspace | [Set up Rackspace email forwarding](https://docs.rackspace.com/docs/set-up-rackspace-email-forwarding) |
|
|
| Zoho Mail | [Email forwarding](https://www.zoho.com/mail/help/email-forwarding.html) |
|
|
|
|
If your provider is not listed, you can still connect it. In almost every mail product the setting appears under a name such as **Forwarding**, **Redirect**, **Forwarders**, **Aliases**, **Rules** or **Filters**, in either the mailbox settings or the domain settings.
|
|
|
|
## Part 4: Test it
|
|
|
|
Send an email from an outside address (a personal Gmail works) to `contact@yourcompany.com`. It should appear in Twenty within a minute or two.
|
|
|
|
## Troubleshooting
|
|
|
|
<Accordion title="Nothing arrives">
|
|
Compare the forwarding address character for character with the one in Twenty.
|
|
A single wrong character means the mail goes nowhere and is silently dropped.
|
|
</Accordion>
|
|
|
|
<Accordion title="Mail arrives, but every message shows your own address as the sender">
|
|
The rule is rebuilding the message rather than passing it along, so your
|
|
address ends up in the `From` header. Switch to your provider's plain
|
|
forwarding or redirect setting, and turn off any option that forwards as an
|
|
attachment.
|
|
</Accordion>
|
|
|
|
<Accordion title="The sender receives a bounce about forwarding not being allowed">
|
|
Your provider blocks automatic forwarding to outside domains. Look for a
|
|
security or anti-spam setting that allows external forwarding, and enable it
|
|
for this mailbox only.
|
|
</Accordion>
|
|
|
|
<Accordion title="Mail no longer appears in the original inbox">
|
|
The rule moves messages on rather than copying them. Change it to keep a copy,
|
|
or add a second rule that delivers to the inbox.
|
|
</Accordion>
|
|
|
|
<Accordion title="The channel receives mail but cannot send">
|
|
Receiving and sending are separate. Sending requires your domain to be
|
|
verified under the channel's **Sending domain** section, which means adding
|
|
the DNS records Twenty lists there.
|
|
</Accordion>
|