Each communication channel requires its own configuration inDocumentation Index
Fetch the complete documentation index at: https://alphabet-06152314.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
appsettings.json before it can deliver messages. Channels that lack valid credentials or are missing from Communication.EnabledChannels are silently skipped during dispatch. This page covers what you need to supply for each channel and explains the global settings that control which channels are active.
Email channel
TheEmail channel uses SMTP to deliver messages. Alphabet ships with SendGrid’s SMTP endpoint as the default server, but any SMTP-compatible provider works by updating the host and port.
Configure the channel under the EmailSettings section:
| Field | Description |
|---|---|
FromEmail | The sender address that appears in the From header. |
FromName | The display name shown alongside the sender address. |
SmtpServer | SMTP host. Default is smtp.sendgrid.net. |
SmtpPort | SMTP port. Default is 587 (STARTTLS). |
ApiKey | Your SMTP provider’s API key. For SendGrid, create an API key in their dashboard and paste the value here. |
"Email" to Communication.EnabledChannels:
Never commit
ApiKey to source control. Store it in user secrets, an environment variable, or a secrets vault in non-local environments.SMS channel
TheSms channel dispatches text messages using Twilio credentials. Configure the channel under the SmsSettings section:
| Field | Description |
|---|---|
AccountSid | Your Twilio Account SID, found on the Twilio Console dashboard. |
AuthToken | Your Twilio Auth Token from the same dashboard. |
FromNumber | The Twilio phone number that sends the SMS. Must be in E.164 format: +1XXXXXXXXXX. |
"Sms" to Communication.EnabledChannels:
Push channel
ThePush channel delivers notifications to a specific device using a push token. Unlike Email and SMS, there is no global credential block in appsettings.json for push — the device token is supplied per-request in the pushToken field of the request body.
To activate the Push channel, add "Push" to Communication.EnabledChannels:
InApp channel
TheInApp channel stores messages and delivers them to a specific user inside the application. The recipient is identified by a user GUID supplied in the userId field of the request body. No provider credentials are needed in appsettings.json.
To activate the InApp channel, add "InApp" to Communication.EnabledChannels:
Webhook channel
TheWebhook channel POSTs the message payload to a URL you specify per-request in the webhookUrl field. This is useful for integrating with third-party systems or internal services that accept inbound HTTP events. No global credential configuration is required in appsettings.json.
To activate the Webhook channel, add "Webhook" to Communication.EnabledChannels:
The webhook endpoint must be reachable from the server running Alphabet. Verify that firewalls, VPNs, or private network boundaries do not block outbound requests from the API host to your target URL.
Global communication settings
TheCommunication section in appsettings.json controls which channels are active and configures diagnostic behavior:
| Field | Description |
|---|---|
EnabledChannels | Array of channel names that Alphabet will dispatch to. Channels not listed here are ignored even if specified in the request body. |
DefaultChannel | The channel used when the request does not include a channels array. Default value in the template is "Email". |
EnableDetailedLogging | When true, Alphabet writes detailed dispatch logs for each channel. Useful for debugging delivery failures in development. |
Multi-channel dispatch example
The following curl request sends the same maintenance notice over all five channels simultaneously:Troubleshooting
Email not arriving
Email not arriving
- Confirm
EmailSettings.SmtpServerandEmailSettings.SmtpPortmatch your provider’s SMTP endpoint. - Verify that
EmailSettings.ApiKeyis set to a valid API key. An empty string causes authentication failures. - Check that
"Email"appears inCommunication.EnabledChannels. - Enable
EnableDetailedLoggingtemporarily and inspect the application logs for the SMTP error response.
SMS not delivered
SMS not delivered
- Confirm
SmsSettings.AccountSidandSmsSettings.AuthTokenare correct and belong to an active Twilio account. - Verify that
SmsSettings.FromNumberis in E.164 format (e.g.,+10000000000) and is a number provisioned in your Twilio account. - Check that the destination
phoneNumberin your request is also in E.164 format (e.g.,+97455555555). - Check that
"Sms"appears inCommunication.EnabledChannels.
Webhook not firing
Webhook not firing
- Ensure the
webhookUrlin your request is publicly reachable from the server hosting Alphabet. Local addresses likelocalhostor private IP ranges are not accessible from an external host. - Check for firewall rules or network policies that block outbound HTTP requests from the API server.
- Confirm the endpoint returns a
2xxresponse. Non-2xx responses may be treated as failures in logs. - Check that
"Webhook"appears inCommunication.EnabledChannels.