Twilio lets you send customized SMS messages to your users. These SMS messages can be sent immediately or scheduled. You can send SMS messages for purposes like reminders, promotions, announcements, and even custom authentication flows.
Add provider
To add Twilio as a provider, navigate to Messaging > Providers > Add provider > SMS.
Give your provider a name > choose Twilio > click Save and continue. The provider will be saved to your project, but not enabled until you complete its configuration.
Configure provider
In the Configure step, you will need to provide details from your Twilio dashboard to connect your Appwrite project.
You will need to provide the following information from your Twilio dashboard.
Field name | |
Account SID | Head to Twilio console > Account info > Account SID. |
Auth token | Head to Twilio console > Account info > Auth Token. |
Sender number | You can access numbers by navigating to your Twilio console > Develop > Phone Numbers > Manage > Active Numbers. |
After adding the following details, click Save and continue to enable the provider.
Test provider
Before sending your first message, make sure you've configured a topic and a target to send messages to.
To send a test message, navigate to Messaging > Messages > Create message > SMS.
Add your message and in the targets step, select one of your test targets. Set the schedule to Now and click Send.
Verify that you can receive the message in your inbox. If not, check for logs in the Appwrite Console or in your provider's logs.
To send a message programmatically, use an Appwrite Server SDK.
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const messaging = new sdk.Messaging(client);
client
.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<PROJECT_ID>') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const message = await messaging.createSms(
'[MESSAGE_ID]', // messageId
'[CONTENT]', // content
[], // topics (optional)
[], // users (optional)
[], // targets (optional)
true, // draft (optional)
'' // scheduledAt (optional)
);
Manage provider
You can update or delete a provider in the Appwrite Console.
Navigate to Messaging > Providers > click your provider. In the settings, you can update a provider's configuration or delete the provider.
To update or delete providers programmatically, use an Appwrite Server SDK.
const sdk = require('node-appwrite');
// Init SDK
const client = new sdk.Client();
const messaging = new sdk.Messaging(client);
client
.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<PROJECT_ID>') // Your project ID
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
;
const provider = await messaging.updateTwilioProvider(
'[PROVIDER_ID]', // providerId
'[NAME]', // name (optional)
false, // enabled (optional)
'[ACCOUNT_SID]', // accountSid (optional)
'[AUTH_TOKEN]', // authToken (optional)
'[FROM]' // from (optional)
);