The short answer
Connecting SendGrid lets a campaign send email alongside its calls. You paste a SendGrid API key; Rexa confirms it authenticates and, specifically, that it carries the mail.send scope — so a key that would fail with a 403 at send time is rejected while you are still on the form. You can also store a default from-address and name.
Last reviewed
What does Rexa check when I save the key?
It reads the scopes granted to the key. If `mail.send` is missing, the save is rejected as `permission_denied` with a message telling you to generate a new key with at least Mail Send: Full Access. That check is the whole reason validation is more than an authentication test — a key can authenticate perfectly and still be unable to send anything.
The email surface has its own error codes: `invalid_api_key`, `permission_denied`, `rate_limited`, `network_timeout`, `unexpected_response` and `unknown_error`. Validation retries three times with one-second linear backoff on the two transient ones.
How is a message sent?
Through SendGrid’s mail-send endpoint, one message per request. Where a message has both a plain-text and an HTML body, Rexa orders the content parts text first and HTML second, matching SendGrid’s own guidance on part ordering. A message with neither body is rejected before any network call is made.
As with SMS, the adapter does not retry a send. The delivery worker owns retry policy so that each provider attempt is individually observable rather than buried in a loop.
What are the setup steps?
In SendGrid, create an API key with at least Mail Send: Full Access and copy it — SendGrid shows a key once. In Rexa, add a SendGrid email provider, paste the key, and optionally set a default from-address and from-name so new campaigns prefill instead of asking every time.
Press Test connection to re-run validation at any point; it is the same scope check that runs on save.
Who pays for the email?
You do, directly to SendGrid. Email is bring-your-own by design and the platform never debits credits for a send, so email volume never touches your Rexa balance and Rexa’s per-minute call rate is unchanged.
Frequently asked questions
- Which SendGrid permission does the key need?
- At minimum mail.send. Rexa reads the key’s scopes during validation and refuses to save a key without it, because such a key authenticates cleanly and then fails with a 403 on the first real send — a debugging loop worth skipping.
- Can I use Mailgun, Postmark or plain SMTP instead?
- Not currently. SendGrid is the only email adapter implemented. The provider interface was written to take more than one, so adding another is a code change rather than an architectural one, but nothing else is wired today.
- Does email volume come out of my Rexa credits?
- No. Email is bring-your-own: the platform never debits credits for a send and SendGrid bills you directly. That is the same model used for SMS, and it is deliberate — the platform does not resell either channel.
Scope, limitations, and sources
SendGrid is the only wired email provider — no Mailgun, Postmark, SES or SMTP option exists today. Validation is a permission check, not a deliverability check: a key with mail.send can still fail to deliver if your sending domain is not authenticated with SendGrid, and Rexa cannot detect that at save time. Inbound email is not handled on this surface, only outbound sending. Sends are not retried inside the adapter, so behaviour on a failure is whatever the delivery worker’s policy is rather than an adapter-level guarantee. Rexa also does not manage suppression lists, unsubscribe handling, or domain authentication — those stay in SendGrid.
Sources
- Telecom provider credential fields, credential validation, priority ordering and circuit-breaker behaviour. rexa.ai (accessed )
- The per-minute rate, what it includes, and how bring-your-own telecom is billed. rexa.ai (accessed )
Spotted something out of date or wrong? Tell us on the contact page and we will correct it and update the review date.