set_notification_channel
Configure how a project delivers notifications on one channel — the transport and sender identity, never the message text (that is set_notification_template).
To send from the project's OWN domain use provider 'smtp', not 'ses': 'ses' sends through AALY's role, which may only send as aaly.io, so any other address fails at send time. For smtp, config.username is the LOGIN name and defaults to from_address - set it explicitly for SendGrid ('apikey'), Postmark (server token), Mailgun or Amazon SES SMTP.
NO CREDENTIAL IS ACCEPTED HERE. credential_key is the NAME of a secret, so a live token never passes through this tool. To configure Slack: call set_secret to have a human enter the bot token, then name that key here.
One channel per channel_type: calling this again updates the existing one rather than failing, so it is safe to re-run.
Email is the only channel with a platform fallback — a project that configures nothing can still send email through AALY's own verified sender. Slack and WhatsApp send through accounts only you can own, so they do not deliver at all until configured here.
This sets the project DEFAULT. A tenant can override it for itself via the project's own REST API; those overrides are not reachable from here.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| config | No | Non-secret provider settings, checked against a per-provider whitelist: smtp {host, port, useTls}, slack {defaultChannel}, whatsapp_cloud {phoneNumberId}, ses {region}. An unknown key is rejected — a credential belongs in credential_key, not here. | |
| enabled | No | Set false to turn the channel off without deleting it. | |
| provider | Yes | The service carrying the message. email: ses or smtp. slack: slack. whatsapp: whatsapp_cloud. in_app: internal. | |
| from_name | No | Display name shown alongside from_address. | |
| project_id | No | Optional if whoami returned a default_project_id. | |
| channel_type | Yes | Which medium this channel delivers on. | |
| from_address | No | Sender address recipients see. Must be one the provider may send as. | |
| credential_key | No | NAME of the secret holding this channel's credential (create it with set_secret first). Not used by ses or internal, which need none. |