Send SMS using Twilio Salesforce Library
SMS is still one of the best way to connect with
customer .
This blog will be explaining how to use the
twilio-salesforce helper library to send SMS.
As usual we will implement a small application for it. We will add
“Send SMS” button on Account. After clicking “Send SMS”
button Salesforce user can type message and send to phone number of
that Account.
Steps:
1) download the
twilio-salesforce
library from GitHub.
2) If you don’t have Force.com migration tool
install from here.
3) Extract downloaded twilio-salesforce zip file
and edit i
your password.
nstall/build.properties
to insert your Salesforce username and password. append security token
toyour password.
Open command line to the install folder, then deploy using Ant:
Command : $ ant deployTwilio
4) Sign up for twilio account by trial pack you can send SMS to
verified phone
numbers only.
numbers only.
(If you need you can get paid service so you can
send SMS without
verifying phone numbers).
verifying phone numbers).
5) Get first number :
Log in to twilio Click on Phone Numbers and get
first number(SMS will be
send from this Number ).
send from this Number ).
In verified Caller Ids sub-tab you can verify phone
numbers(You will need
verified numbers to send SMS if you are using trial pack).
verified numbers to send SMS if you are using trial pack).
6) Create Custom Object SMS :
Object Name SMS (API Name : SMS__c)
Create fields as below, this object will be used
to save SMS log.
7) Create Visualforce Page : Send_SMS
<apex:page standardController="Account" Extensions="Send_SMS_Controller"
showHeader="false" sidebar="false">
<apex:form >
<apex:pageBlock id="msgs">
<apex:pageMessages ></apex:pageMessages>
Body : <br/>
<apex:inputText id="smsBody" value="{!smsBody}"
style="width:400px; height:50px;"/>
<br/>
<apex:commandButton action="{!send}" value="Send"
id="sendButton" reRender="msgs" rendered="{!hasNumber}"/>
<apex:commandButton action="{!getReturn}" value="Return to Account"
id="returnButton" reRender="msgs" rendered="{!NOT(hasNumber)}"/>
</apex:pageBlock>
</apex:form>
</apex:page>
8) Create Apex Class : Send_SMS_Controller
public class Send_SMS_Controller {
public String smsBody {get; set;}
public boolean hasNumber {get; set;}
private final String fromNumber = '+19545732804';// get it from twilio
//after login click Phone Numbers tab in left sidebar
private string dialCode = '+91'; // Add your dial Code of your country.
public Send_SMS_Controller(ApexPages.StandardController controller) {
hasNumber = true;
}
public PageReference Send()
{
String account = ‘your twilio Account SID’; // Account SID on home tab
String token = 'twilio Account AUTH Token';//AUTH Token on home tab
TwilioRestClient client = new TwilioRestClient(account, token);
Id accountId = ApexPages.currentPage().getParameters().get('id');
String baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
Account a = [select Phone from Account where Id = :accountId];
if(a.Phone != null)
{
String phoneNumber = a.Phone;
if(!phoneNumber.Contains(dialCode))
phoneNumber = dialCode+phoneNumber;// If by default dialCode is not
//on Phone number we will ad it.
System.debug('phoneNumber'+phoneNumber);
Map<String,String> params = new Map<String,String> {
'To' => phoneNumber,
'From' => fromNumber,
'Body' => smsBody
};
TwilioSMS sms = client.getAccount().getSMSMessages().create(params);
SMS__c sentSMS = new SMS__c(From__c = fromNumber,To__c = phoneNumber,
Account__c = accountId, Body__c = smsBody);
insert sentSMS;
}
else
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, 'This Account have No Phone Number Click Return to Account'));
System.debug('Message is set');
hasNumber = false;
return null;
}
pagereference redirect = new PageReference(baseUrl+'/'+accountId);
return redirect;
}
public PageReference getReturn()
{
return new PageReference(URL.getSalesforceBaseUrl().toExternalForm()+'/'+ApexPages.currentPage().getParameters().get('id'));
}
}
9) Create “Send SMS” button of type Detail Page Button on account opening
in existing window add Send SMS visualfoce page to it.
10) Add Send SMS button and related list of SMS on
Account page layout
Quick demo :
I've followed the same stepa and it showing the status code 201 in debug log. But I'm not receiving any message on mobile. Receiver number is verified in twilio.
ReplyDeleteHey anyway to do this for a lead when the lead gets updated to a working lead? Ive got it working perfectly for an account but cant seem to figure it out for that. Let me know please!
ReplyDeleteYeah!! Send SMS Attachment will help you in optimizing your campaign performance. You can send files via SMS and improve your business prospects simply by understanding the behavior of your customers. This way, you will put in efforts in working towards fulfilling the requirements of your consumers.
ReplyDeleteYeah!! Send SMS attachments within Bulk messages shall provide business houses with a new way of interacting with the target audience and sharing their business word. As the name indicates, SMS attachments are the files, images or any informative detail that can be sent in the SMS along with the regular text. These attachments majorly include PDF, word files, excels, pictures (.jpg, .png), audios, directive links, gifs (.gif), and many more.
ReplyDeleteReally Good tips and advises you have just shared. Thank you so much for taking the time to share such a piece of nice information. Looking forward for more views and ideas, Keep up the good work! Visit here for Product Engineering Services | Product Engineering Solutions
ReplyDeleteIn contemporary fast-paced digital global, effective conversation is paramount for organizations to live beforehand of the curve and connect with their clients seamlessly. Salesforce Send SMS functionality has emerged as a effective device for boosting verbal exchange efforts, permitting organizations to reach their target audience immediately via text messaging. In this complete manual, we will discover the intricacies of sending SMS using Salesforce, its blessings, and how incorporating gear like 360SMSApp can amplify communique strategies.
ReplyDelete