Send SMS Using Twilio Connector
In this tutorial we will demonstrate how can we Send SMS Using Twilio Connector,Twilio allows software developers to programmatically make and receive phone calls, send and receive text messages, and perform other communication functions using its web service APIs
Anypoint Connector for Twilio (Twilio Connector) is a cloud communications infrastructure as a service (IaaS).The Twilio platform serves APIs for text messaging, VoIP, and voice calls. Twilio Connector provides connectivity to the Twilio text messaging API
This connector provides an API for sending and receiving text messages
Prerequisites:
- You should have account for Twilio
- Module should be added in Anypoint Studio(Please visit to add module from exchange)
Operations Supported by Twilio Connector In Mulesoft
- Send Message
- Get Message
- Get Media
- Get Media List
- Get Message List
- Redact Message
- Delete Media
- Delete Message
Create twilio Account using below url:
Mail has been sent to registered email, Kindly verify the account
Note the Account SID and Auth Token for further use for connector configuration
Click on manage numbers and get your first twilio phone number to send message/phone calls
Congratulations message will be shown
Create a mule application in studio and configure the listener to trigger the request
Create a transform message(payload) to send message from Twilio connector
Note: From Number and To Number should be in E.164 Format
E.164 Format: E.164 is the international telephone numbering plan that ensures each device on the PSTN has globally unique number.This number allows phone calls and text messages can be correctly routed to individual phones in different countries. E.164 numbers are formatted [+] [country code] [subscriber number including area code] and can have a maximum of fifteen digits
Dataweave expression:
%dw 2.0 output application/json --- { Body: "Hello this is Mulesy team and sending you test message", From: "+17137664893", To: "+91XXXXXXXXXX" }
Drag and drop Send message from mule palette and configure the username(AccountSID) and password(AuthToken)
Test the connection
Pass the account sid and message to sent
Create the transform message to receive the success message
Deploy the application and test from soap ui
Message Received on Phone:
Sample application: twilio-sample-services
hello it does not work. I received following answer from postman. Please help
“You called the function ‘formUrlEncoded’ with these arguments:
1: Null (null as Null {encoding: “UTF-8”, mediaType: “application/json; charset=UTF-8″…)
But it expects arguments of these types:
1: Object
9| formUrlEncoded(vars[‘send-message-request-data’])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
at formUrlEncoded (line: 9, column: 1)
at main (line: 9, column: 1)” evaluating expression: “output application/x-www-form-urlencoded
fun formUrlEncoded(obj: Object) = obj mapObject {
($$) : $ match {
case x is Object -> write(x, “application/json”)
case x is Array -> write(x, “application/json”)
else -> $
}}
—
formUrlEncoded(vars[‘send-message-request-data’])”.
Please check your code in debug mode as one of the argument is going as null.
Thanks,
Mulesy Team
Followed the steps , getting below error INFO 2021-01-11 13:17:05,061 [[whatsapp].HTTP_Listener_Configuration.worker.01] org.mule.module.xml.transformer.jaxb.JAXBContextResolver: No common Object of type ‘class javax.xml.bind.JAXBContext’ configured, creating a local one for: SimpleDataType{type=com.mulesoft.weave.reader.ByteArraySeekableStream, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=org.mule.modules.twilio.pojo.sendmessagerequest.MessageInput, mimeType=’*/*’, encoding=’null’} ERROR 2021-01-11 13:17:05,223 [[whatsapp].HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: ******************************************************************************** Message : null (javax.xml.bind.UnmarshalException) Payload : { “body”: “Test”, “from”: “+16179936216”, “to”: “+918328676825” } Transformer : JAXBUnmarshallerTransformer{this=1b576897, name=’null’, ignoreBadInput=false, returnClass=SimpleDataType{type=org.mule.modules.twilio.pojo.sendmessagerequest.MessageInput, mimeType=’*/*’, encoding=’null’}, sourceTypes=[SimpleDataType{type=java.lang.String, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=java.io.Writer, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=java.io.File, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=java.net.URL, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=org.w3c.dom.Node, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=java.io.InputStream, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=javax.xml.transform.Source, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=javax.xml.stream.XMLStreamReader, mimeType=’*/*’, encoding=’null’}, SimpleDataType{type=javax.xml.stream.XMLEventReader, mimeType=’*/*’, encoding=’null’}]} Element : /whatsappFlow/processors/3 @ whatsapp ——————————————————————————– Root Exception stack trace: org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown… Read more »