Skip to main content

Email (SMTP)

Sends email using your own SMTP credentials — either during/after a call (agent-to-customer) or for system alerts (Sprio's own configuration, not per-org).

  • Direction: Outbound
  • Auth: your SMTP credentials (host, port, secure, user, pass), encrypted at rest

Setup wizard

A two-step flow from Integrations → Email:

  1. Credentials — enter (or pick a preset for) your SMTP server, and test the connection.
  2. Assistants — assign which assistants can send email through this connection.

Presets

Common providers are pre-filled — Gmail (smtp.gmail.com:465, secure; note this requires an app password, not your regular account password), Outlook (smtp.office365.com:587), Zoho Mail (smtp.zoho.com:465, secure), plus a fully custom option.

Security

Every SMTP connection is checked before Sprio will send through it:

  • Literal private/loopback/CGNAT address ranges are blocked outright (127.x, 10.x, 192.168.x, 172.16–31.x, 169.254.x, 100.64/10, and their IPv6 equivalents).
  • The hostname is also resolved and re-checked at connection time — this stops a hostname that resolves to a private address only after DNS lookup (DNS-rebinding), not just a literal IP in the config.
  • TLS is enforced at 1.2 minimum, with certificate validation on.

How a send actually happens

Sending is a two-step tool the assistant uses: it first confirms the recipient's email address back to the caller (no send yet), then sends. You control when the send actually fires via a send_timing setting:

  • immediate — sent live, during the call.
  • after_call — the email content is held and sent once the call ends, via a background flush step. This is useful when you want to guarantee the full call outcome (e.g. a summary) is reflected in the email, which isn't known yet mid-call.

Optional subject/body templates let you wrap whatever the assistant writes in consistent formatting, rather than sending the AI's raw text as-is.

Troubleshooting

SymptomLikely cause
Connection test fails immediatelyCheck for a private/internal hostname or IP — these are blocked by design, not a bug
Gmail auth fails despite correct-looking passwordGmail requires an app password for SMTP, not your normal login password
Email never arrives for after_call sendsConfirm the call actually completed — a deferred send only flushes once the call ends