This guide will walk you through how to use the PowerSMS add-on for Microsoft Dynamics 365. It will go over various ways to send an SMS message, how to track if the SMS has been successfully sent, and where to view past sent SMS messages. It will also go over (if you are using Twilio as your gateway) where SMS replies are tracked in the system. Please note that this guide has two parts – one for those using CallFire as their third party provider and the other for clients using Twilio. Please make sure you are reading the right section.

SMS Compliance

PowerSMS users are responsible for making sure that the SMS recipient has opted in to receive SMS messages, are complying by any and all SMS laws, and must agree to the terms of service of the gateway they’ve chosen to use (which users will be presented with when they sign up for an SMS gateway account).

Choosing a Service Provider

PowerSMS is integrated with 2 third-party SMS providers, CallFire and Twilio.  To send SMS messages from D365 with PowerSMS, you will need to use a new or existing account from one of the providers.

Getting Started with your Provider

Creating an Account with CallFire

To create an account with CallFire navigate to http://www.callfire.com and click on “Sign up for free” on their homepage.

Note: CallFire only supports US based phone numbers at this time.

On the next page, you will be asked to create a username and password. Remember to save your username and password somewhere safe, so you will be able to login to CallFire again, should the need arise. Then click on “Create Account.”

On the next page, you will have the ability to add credits to your account. Once you’re done adding your credits click on “Start using CallFire” at the bottom right of the page.

Note: If you ever need to add credits to your CallFire account in the future, log in to your account and click on Billing > Purchase, and purchase more credits.

You will then be prompted to log in to CallFire again, using the username and password you just created.

Generating an API Key

In order to connect your CallFire account with your CRM using PowerSMS, you will need to generate an API key. In your CallFire account, navigate to Settings and click on API Access.

Then click on “Add API Access”

Input “PowerSMS” into the App Name area and enter the password you used to login to your CallFire account. CallFire will then give you an App Login and App Password, copy both of these items to your clipboard and click Save. Note: Make sure to write down your API Login and Password right away, because once you exit out of this screen, that information will be masked.

Creating an Account with Twilio

If you would like to use Twilio as your SMS provider, please navigate to https://www.twilio.com and click on “Sign Up” in the upper right corner.

In the next screen Twilio will ask some general information for your account. Please remember to save your username and password somewhere safe, so you will be able to login to Twilio again, should the need arise. Then click on “Get Started.”

Next, Twilio will take you through a verification process, you will need to provide a phone number that they can call or text you a verification code.

Once you get the verification code, enter it into the field provided and select “Submit.”

Once you have completed the verification process for Twilio, they will give you a Twilio based phone number, you can choose to use the one provided or choose your own number by clicking the link at the bottom of the page. Clicking "Get Started" will provide you with a Twilio number.

**Note: The following steps for configuring the "Programmable SMS Dashboard" is one of two ways you can set up your messaging service for PowerSMS. The other option starts with Twilio Settings. Please configure your messaging service either with the directions provided below or with the Twilio Settings options. If you use both sets of instructions the relationship between your Twilio number and messaging service will not work properly. Only use one set of instructions for configuring.


If you choose to get a Twilio based phone number click the red “Choose this Number” button. Make sure you copy this phone number to your clipboard as you will need it later. Clicking this button brings you to the Getting started screen. On this screen you can configure your number, view your API credentials and test the functionality around Twilio’s different services.

The dashboard is another screen where you can find your API Credentials, please copy the Account SID and Auth Token to your clipboard you will need this information for the PowerSMS solution. This is also the section where you can upgrade your account from the trial version.

Next, click on “Active Numbers” at the top of the screen, and click on the number displayed there to set the properties.

Twilio Messaging Service

When you log into Twilio you will want to click on the link "Explore Products" to pin the Phone Numbers and Messaging service on the Main page for initial setup.

This will open a new menu of Programmable communications to pin on the left side window pane. You will want to select the pin icon for "Messaging" and scroll down to Super Network and select "Phone numbers"

Now you will want to select "Services" under the Messaging tab on the left side of the window.



In order to receive messages in your D365 system, you will need to set up a Twilio Messaging service. Simply click on the blue

"Create Messaging Service" button.

When you click to create this will take you to a new screen. From here, you will have the optional step to add senders. You can skip the add sender step. Then click on the "Setup Integration" button, to finish setting up your messaging service.

This takes you to step 4 of the Twilio service setup process.  Scroll down to the Send webhook option and Request URL field, where you will need to select "Send a webhook" and enter the cloud URL that you want to use from the below in the Request URL field of the Inbound Settings section.

Then in the drop-down select HTTP GET.

North America https://powersmscentralusv2.crm.powerobjects.net/IncomingSMS.aspx
South America https://powersmsbrazilsouthv2.crm.powerobjects.net/IncomingSMS.aspx
Europe https://powersmswesteuropev2.crm.powerobjects.net/IncomingSMS.aspx
Asia https://powersmseastasiav2.crm.powerobjects.net/IncomingSMS.aspx

Scroll down and select the "Step 4: Add compliance info" button. This will bring you to the final setup page to complete the Messaging Service setup scroll down and click the "Complete Message service" button.

A small pop window will appear and click "View my new Messaging Service" to finish.

After the above is completed, click on "Phone Numbers" on the left side > then click the drop-down arrow next to Manage" > select Active Numbers. Configure your Twilio number. 

Click save and your Twilio Messaging service will be completed. You now can track SMS replies.

Configuring PowerSMS

Once you’ve finished setting up your CallFire or Twilio account, navigate back to CRM to Settings > Solutions > and double click on PowerSMS to reopen the configuration screen. Once the Profile tab has fully downloaded, select the Setup tab. Here you will see a number of values that need to be entered, please note these values will change based on what Service Provider you have chosen to work with.



If the URL is not already there, please double click in the blank space under the “value” column, next to SMS URL, and put https://www.callfire.com/api/1.0/soap12/text in the value area.

API Username

This is the App username that was given to you when you set up the API key in your CallFire account.

API Password

This is the App password that was given to you when you set up the API key in your CallFire account.


Phone Number

This is where you will want to add the Phone Number that Twilio assigned to your account when you initially registered for the service.

**Each International Twilio phone number will be assigned a different country code. You will want to place the appropriate country code in front of the Twilio phone number in the phone number field. For example, if you are using a US  based Twilio Phone number you will need to put a "1" in front of the phone number. If your number is "234567890" you would enter "1234567890" in the phone number field of the solution (without any dashes or spaces). 

Account SID

This is the Account SID that was given to you on the dashboard of your Twilio account.

**Note: Your Twilio SID can only be configured with one CRM org. Configuring two CRM orgs with the same Twilio SID will cause inconsistencies with SMS replies.

Auth Token

This is the Token that was given to you on the dashboard of your Twilio account.


Connect your PowerSMS solution with Bitly so that you can text short links to records in your system. To get an access token from your Bitly account, please login to your Bitly account and navigate to https://bitly.com/a/oauth_apps, here you will be able to generate your token.

  1. To generate your access token from Bitly simply navigate to the Bitly Dashboard and click on the options tab.

  2. Next, click on your profile icon to see a list of options for 'Edit Profile'

  3. Click on the 'Generic Access Token' tile to generate your Access Token. 


Country Code

This is the country code that will be attached to the beginning of any number. If you plan on only messaging to numbers within the same country you will want to enter that country code in this field. The solution will add the country code to the front of any number that doesn't have a country code saved in CRM**. This is useful if you know all your messaging will be within one country. Otherwise, this may cause issues when sending to numbers with a different country code than the one provided here.

**Note: If the phone number saved on a CRM record does have a country code included then entering a country code in the solution set up may have an impact.

Cloud Provider

Choose what cloud you would like PowerSMS to be hosted through. For best performance, choose the region that you are geographically closest to. This selection serves two purposes. First, if you choose to attach photos to messages this is where your photos will be processed before being sent. If you do not select a cloud, you will not be able to send outbound photos**. Second, this provides the Cloud URL that you will need to provide to Twilio for inbound messages. If you have not configured your Twilio account for inbound messages, use the provided Cloud URL to complete the above instructions for “Twilio Settings.”

**Note that you must be using PowerPhoto, alongside PowerSMS, to send outbound photos. Check the PowerPhoto user guide for more details.

Configuring PowerSMS with multiple Twilio numbers

Twilio Configuration

1) Configure number/numbers in Twilio

Start by opening up Twilio and clicking on "programmable SMS"

Next, click on "messaging services" and select your messaging service (For example: PowerSMS here)

Then, select the "Numbers" option and click on the "+" sign

On the Following dialog, select ‘Buy Number’

Note: You will need a paid account for this feature. In the beginning, Twilio gives you a credit of $20, therefore when you buy a number the amount is deducted from those $20 while your card is not charged.

Once the number is bought, make sure that it is utilizing the configured message service

PowerSMS solution configuration in CRM

After configuring all the required data on the setup page, configure Twilio numbers in CRM by using one of the following methods.

Note: This can be done from either the configuration page or from the sitemap


Create a Twilio Number record. Give a friendly name and the Twilio number here. Also, you can mark the number to be default by checking the box.

Sending SMS

Create SMS activity. Select the number that you need to send message from. If no number is selected, it will be sent from the number that was marked as default.

Receiving SMS

If multiple numbers are configured, then the Twilio Number field will be populated automatically, depending on which number the SMS was replied to

Authenticating PowerSMS

To receive inbound SMS messages to your D365 environment, one of the two below forms of authentication is required. From November 9th onwards, PowerPack add-ons will be supporting ServertoServer authentication (recommended and supported for CRM online) along with IFD authentication (supported for on-premises). If you are on version or above of Dynamics 365, you will not be able to authenticate using username and password at all. Instead, you will be required to use ServertoServer authentication, as Microsoft turned off authentication using App password starting with this version.

Configuring PowerSMS using servertoserver authentication

Check out this blog for instructions on how to set up servertoserver authentication. Then, navigate to the PowerSMS configuration page authentication tab, and select “server-to-server” as your authentication method. Add your App ID, App Secret, and Tenant ID, and click on “save.”

Configuring PowerSMS using username and password

If your CRM is on-premise or you have a version of Dynamics 365 online that is below, you can still authenticate using username and password. If you have MFA enabled, you will need to create an app password and then enter in your username and app password into the PowerSMS configuration page as usual

Received SMS Match

If you are using the Twillio SMS gateway, you will be able to track SMS replies back inside of CRM as well. To configure how SMS replies are tracked, navigate to the “Received SMS Match” tab in the PowerSMS solution. When an SMS message is replied to, PowerSMS will search through the entities configured here, search through the defined “SMS Match” phone numbers, and set the message regarding the first record it finds.

To add an Entity to be searched in, Click “+ Add Entity”. To remove an entity to be searched in, select the dropdown, and click on “X” next to the entity you’d like to remove.

Next, choose an entity in the dropdown, and configure which phone number fields you’d like to search in. You can add fields by dragging them from the right-hand list, under the “SMS Match” section. You can remove fields by clicking on the “X” next to the field name. Search order defines, when an SMS message comes back in, which entities are searched in first. The SMS message will be set regarding the first record that is found with a matching phone number.

After you’re done with your configuration, remember to click Save.


Security Roles

After you import PowerSMS, you will see several new security roles in your Dynamics 365 system. In order to be able to use the PowerSMS add-on to send and receive SMS messages, users will need to be assigned the PowerSMS user or the PowerSMS administrator security role. They will also need to be assigned the PowerSMS AppUser role to access the PowerSMS model driven app.

If you are using server to server authentication, the above roles will need to be applied, along with a role that allows you to read/write (for example, a sales admin role).

System Administrators will automatically be able to use PowerSMS and no additional security roles are required.

Navigating PowerSMS

Once you have PowerSMS imported and registered for your CRM, you will see a new section under the PowerPack section that will show SMS Messages.

Additionally, there will be a new activity created in your system called “SMS Message” which can be found in any activity section of your CRM system.

Sending PowerSMS

A SMS message can be sent to any CRM record that allows activities to be added to it. There are a number of different ways to send a PowerSMS from your CRM.

You can not set SMS messages regarding an entity that is not enabled for activities. 

Sending a SMS to One Person

If you would like to send a SMS to just one person, navigate to their record in CRM and open their record. From the ellipsis select ‘Other Activities’ and then ‘SMS Message.’

If that person has a mobile phone number on their record, that phone number will automatically be populated into the “Phone Number” field on the SMS activity record. The regarding field of the message will be filled in with the name of the person you are sending the SMS to. Type your message in the “SMS Message” field, and click on “Mark Complete” to send the message. Clicking “Save” or “Save & Close” will not send the message.

Note: The user who is trying to send the SMS message must either be a system administrator or have the PowerSMS security role assigned to them.

Sending a SMS via Workflow

Another option for sending a PowerSMS message would be by using a workflow, which automatically fires off the SMS when something happens in your CRM. To send a SMS message through a workflow, you would build the workflow as usual, setting up what trigger you would like to send the SMS message. For example, send a SMS message when a case is closed, or when an opportunity is set to won. Then add a “Create Record” step, and choose SMS Message.

Click on Set Properties, to the right of where you selected to create an SMS Message, and use the Form Assistant on the right hand side of the screen to dynamically fill in the phone number field with a cell phone number, and type the SMS message.

Then Save and Close. Next, add another step, a “Change Status” step, that will change the status of the SMS to “Pending Sent.” This will actually send the SMS message.

Finally, Save, Activate and test your workflow.

Sending to a Marketing List

To send a SMS to a marketing list of accounts, contacts or leads, you first need to create a workflow that can be run manually. To do this, navigate to CRM Settings > Processes and click New. Name the process, and choose the type of entity that your marketing list will be made up of (either contacts, leads or accounts). Then click OK.

Finally, Save, Activate and test your workflow.

Next, uncheck the box that says “Start when: Record is created”, and check the box that says “Available to Run: As an on-demand process.”

Finally, Save, Activate and test your workflow.

Add a Step, choose “Create Record” and choose “SMS Message” in the drop down. Then click on Set Properties.

Finally, Save, Activate and test your workflow.

Use the form assistant on the right side to dynamically insert the mobile number of the lead, contact, or account. Type the SMS message you would like to send, and click Save and Close.

Note: You can also use the form assistant on the right-hand side to insert dynamic values (such as the person’s name) into the text message.

Finally, Save, Activate and test your workflow.

Now, add a step that will change the status of the SMS message to “Pending Sent”, which will send the message. To do this, click on “Add Step” and add a “Change Status” step. Choose “SMS Message” in the first dropdown and “Pending Sent” in the second dropdown, so that your workflow steps look similar to the below.

Finally, Save, Activate and test your workflow.

Then Save and Activate your workflow.

Next, create a marketing list, as you normally would in CRM. Once you have pulled together your marketing list members, click on marketing list members on the left hand side, and click to select all members at the top of the view. Click on Run Workflow at the top of the window, and select the workflow you just created. Then click OK.

Finally, Save, Activate and test your workflow.

Remember to repeat this with each page of marketing list members.

Note: It is your responsibility as the user to comply with mass SMS laws.


It is the CRM user’s responsibility to ensure that people they are sending SMS messages to have opted into receive text messages. There are a number of ways to keep track of opt-ins in CRM. One option to keep track of SMS opt-ins would be to add a radio button to the contact/lead form called “Allow SMS Message” and set that to radio button to “yes” or “no” depending on that person’s SMS preference.


If someone would like to unsubscribe to your SMS messages, all they have to do is reply “stop” to your message. This ensures that they will not receive your messages any longer. If you try to send an SMS message to someone who has unsubscribed, they will never receive your message, and you will not be charged for that SMS message. If you are using Twilio as your SMS gateway, that “stop” response will be tracked back in CRM.

If someone unsubscribes by replying “STOP”, they will receive a message letting them know they have unsubscribed.

Twilio’s unsubscribe message:“You have been successfully unsubscribed. You will not receive any more messages from this number. Reply START to re-subscribe.”

PowerSMS Send Results

After your SMS message is sent, you will get a message in the “Status Reason” field, letting you know either that your message was sent successfully, that it’s pending send, or that the sending failed. You will also get a message in the “Results” field on the message, letting you know if the message was sent successfully and, if it was not, why not.

Finally, Save, Activate and test your workflow.

Under the PowerPack tab, you will also find an SMS Message area that lists all SMS messages that were sent, what the message was and who it was sent to. You can change this view to see all SMS messages, all failed SMS messages, all successful SMS messages, all SMS message sent today or in the last 7 days, or you can create your own SMS view.

Twilio Users

If you’re using Twilio as your SMS provider, not only will you be able to send messages to international phone numbers, but will also be able to track SMS replies back in CRM.


If someone replies to your SMS message, their message will also be tracked back in CRM. If the phone number coming back in matches a phone number on a record in your system, the SMS message will automatically be set regarding that record. The status reason of the SMS message will be “Received”. Even if the recipient replies “STOP” to unsubscribe, this will also be tracked in CRM.

Responses can be found in the PowerPack section of CRM under SMS Messages. This section will give you a list of all sent and received SMS messages. If a received SMS message does not match a phone number format in CRM it’s regarding will not be set, as shown in the second SMS record below:

Finally, Save, Activate and test your workflow.

Additionally, you will be able to see sent and received SMS messages on the individual contact or lead records that you send the SMS messages to under closed activities.

Finally, Save, Activate and test your workflow.

Uninstalling PowerSMS

To uninstall PowerSMS, navigate to the solutions list, select PowerSMS and delete the solution. Deleting this solution will remove all SMS messages that were created with PowerSMS. If you would like to keep this information simply unsubscribe in the configuration screen and leave the solution in your system.

Uninstalling the solution does not unsubscribe the solution.  If you're discontinuing use of the add-on, you must first unsubscribe in the solution.

Thank you for your interest in PowerSMS, should you choose to subscribe you will be charged $1.50/enabled CRM user/month. If you have any questions or run into any issues with PowerSMS, our friendly support team is here to help!

PowerSMS User Guide