Getting started with Powerpack

Sending SMS messages using regular 10-digit phone numbers (a.k.a long codes) is heavily regulated in the US and Canada. Long codes, however, remain the medium of choice for businesses seeking to engage with their customers via SMS. The personalized touch long codes lend to a conversation, their price advantage, and the easy procurement process makes long codes a natural choice for most use cases.

Powerpack makes SMS communication using long codes effective and reliable at scale. It is designed to meet your overall SMS throughput and volume requirements, regardless of scale.

By automatically distributing your overall SMS traffic across a pool of source numbers, Powerpack keeps you compliant with per day and per second throughput limits defined by the CTIA (Cellular Telecommunications Industry Association).

Powerpack Features

  • Number pool - Powerpack intelligently distributes your outbound SMS traffic over a pool of source numbers optimal for your overall SMS volumes. Setting up a pool of source numbers that is just right for your SMS volumes only takes a few seconds.
  • Smart Sender - If your use case requires you to contact the same subscriber more than once, Smart Sender helps maintain a single thread of conversation by always sending messages to the subscriber from the same source number in the pool.
  • Local Connect - Keeping with the theme of making SMS communication personal, Local Connect helps prioritize phone numbers in the pool which belong to the region and/or area code of the subscriber.

Local Connect

Local Connect is designed to make SMS communication personal. It ensures that SMS messages get sent via a local phone number of the same area code or region as the destination number.

Enabling Local Connect

Local Connect preferences can be managed from the Powerpack management console.

Local Connect preferences can be updated for existing Powerpacks at anytime. Any update to your Local Connect preference will reflect in the source number resolution logic instantaneously.

How Region Based Source Number Resolution Works

For Example –

If you’re sending an SMS message to a San Francisco number beginning with 415:

  • If a phone number with prefix 415 is present in the Number pool, Powerpack will use it to send the outbound SMS

  • If a phone number with 415 prefix is not found in the number pool, or if all the phone numbers with 415 prefix in the pool have already been used to recommended capacity (150 messages/day), Powerpack will deliver the SMS through any other phone number of the same region as the destination number (California in this case).

  • If no phone numbers of the same region are found in the Powerpack, the SMS would be sent via a random US phone number.

  • If no US phone numbers are found in the pool, the SMS would be sent via a Canada number.

Creating a New Powerpack

To create a new powerpack

  1. Login to your Plivo Console dashboard.
  2. Navigate to the SMS Powerpack management console.

  3. On the SMS Powerpacks page, click Add New Powerpack.

  4. In the Properties section, enter a name for the new Powerpack.
  5. Enable Smart Sender if you would like to ensure that messages to a particular destination number are always sent from the same Powerpack source number.
  6. Enable Local Connect if you would like to ensure that Powerpack prioritzes source number belonging to same region or area code as the destination number for an outbound SMS.
  7. In the Configure Number Pool section, enter the count of phone numbers at a country and/or region level.
    • To configure your Number Pool at a country level: Enter your daily SMS volume for US and Canada. Plivo will recommend the optimal phone number pool size based on your input.

    • To configure your Number Pool at an area code or region level: Use the Advanced settings option to add Phone numbers to the Number Pool at a more granular level as shown below.

    Pro Tip:

    If you don't need to get more granular than state level region matching, simply specify the total count of numbers against any one prefix of that State.

  8. Specify the Pool Size, and click Add Powerpack. This will initiate the purchasing and provisioning of phone numbers.

Sending messages using Powerpack

To send messages using Powerpack

  1. On the SMS Powerpack page, click All Powerpacks to view all of your Powerpacks.
  2. Copy the Powerpack ID for the powerpack you wish to use.

  3. Enter your Powerpack ID for powerpack_uuid in the Send SMS API request.

Code Samples

1
2
3
4
5
6
7
8
9
import plivo

client = plivo.RestClient()
message_created = client.messages.create(
    powerpack_uuid='the_powerpack_uuid',
    dst='the_destination_number',
    text='Hello, world!'
)
        
1
2
3
4
5
6
7
8
9
10
11
12
13
require 'rubygems'
require 'plivo'

include Plivo

client = RestClient.new
message_created = client.messages.create(
  nil,
  %w[your_destination_number_1 your_destination_number_2],
  'Hello, world!',
  powerpack_uuid: 'your_powerpack_uuid'
)
        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let plivo = require('plivo');
let client = new plivo.Client();

client.messages.create(
  null,
  'your_destination_number',
  'Hello, world!',
  {},
  'your_powerpack_uuid'
).then(function(message_created) {
  console.log(message_created)
})
    
        
1
2
3
4
5
6
7
8
9
10
11
12
require 'vendor/autoload.php';
use Plivo\RestClient;

$client = new RestClient();
$message_created = $client->messages->create(
    null,
    ['the_destination_number'],
    'Hello, world!',
    [],
    'the_powerpack_uuid'
);
        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import com.plivo.api.Plivo;
import com.plivo.api.PlivoClient;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.node.MultiPartyCall;
import com.plivo.api.models.node.MultiPartyCallActionType;
import com.plivo.api.models.node.MultiPartyCallUpdateResponse;
import com.plivo.api.models.phlo.Phlo;
import java.io.IOException;

class Example {
  public static void main(String [] args) {
    Plivo.init();
    Message.creator(Collections.singletonList("the_destination_number"), "Hello, world!", "the_powerpack_uuid")
                    .create();
  }
}
        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import "github.com/plivo/plivo-go"

func main()  {
  client, err := plivo.NewClient("", "", &plivo.ClientOptions{})
  if err != nil {
    panic(err)
  }
  client.Messages.Create(plivo.MessageCreateParams{
    PowerpackUUID: "the_powerpack_uuid",
    Dst: "the_destination_number",
    Text: "Hello, world!",
  })
}
        

Updating a Powerpack

To modify or update your Powerpack

  1. On the SMS Powerpacks page, click All Powerpacks to view all of your Powerpacks.
  2. Select the Powerpack you wish to modify or update.
  3. In the Properties section, modify Smart Sender by enabling or disabling it, and then click Update.

  4. In the Properties section, modify Local Connect by enabling or disabling it, and then click Update.

  1. In the Number Pool Composition section, total count of phone numbers in the Number Pool are displayed for each country.
    • To update your Number Pool composition at a country level: Update the number count for the country and click on Update

    • To update your Number Pool composition at an area code or region level: Open Advanced settings and update the number count for the region or area code and click on Update

    • If you are increasing the pool size, a dialogue box will prompt you to confirm the purchase of new numbers.
  2. You can also manually remove phone numbers from your number pool by clicking on View Numbers.

  3. Select Delete & Unrent against the number you wish to remove from your number pool.