P2P Frequently Asked Questions

  • Updated

Welcome to our Peer to Peer FAQ page! Thank you for reviewing this article. If you're still unable to find an answer to your question or issue, please contact us at support@impactive.io!

1. Calculating Costs

Managing a budget is an important part of running an efficient campaign. Read on to understand how you're being billed for your messages, as we offer full transparency into how messages are being delivered by the carriers.

The fastest way to get a high level insight into your billing is using the My Campaigns dashboard and the new Billing tab. Using the dashboard, you can filter for activity between any two dates to see how many message segments you're being charge for during the given period.

You can look at the SMS column and multiply it by the "per SMS" rate in your contract or at your current license tier, and you can do the same for the MMS column.

A common point of confusion is thinking all messages will be charged equally. Carriers charge based on the size of messages generally determined by character count. This means that if your message scripts exceed a certain size, you'll be charged extra.

At Impactive, messages are billed in segments of 160 characters for every SMS or MMS message. If emojis are included in a script, messages are instead billed in segments of 67 characters for every SMS or MMS. Messages exceeding these character limits will be billed as multiple messages based on the number of segments.

  • Admins can estimate the number of message segments in their texting actions with the segment counter on our script templates. When creating scripts for their Peer-to-Peer and Broadcast Texting activities, admins will see their message broken down into a count of 160 character (or 67 character for scripts with emojis) segments. To calculate the cost of a texting activity, admins can multiply the number of segments on the action by the number of contacts they are messaging and their contractual texting rate.


If you want to dig further into your messages to understand how they're being charged and delivered, you can easily do so by exporting them.

Once exported, you can see every message sent by your campaign and its status and error code (if applicable). You can use the "twilio_segments" column to see how many segments you're being charged for on your invoice and the "twilio_status" column to see whether your message was successfully delivered. Any messages Impactive attempts to send via carriers will incur a charge.

2. Phone Numbers and Area Codes

Phone numbers are provisioned in real-time during text banks, often being rotated every few hundred messages or less. Numbers are chosen either at random, or based on the preferred area codes configured in Settings.

Area code coverage is not guaranteed in real-time and is based on availability of the carriers. If you'd like to ensure area code coverage for a text bank of over 250K messages, please contact support@impactive.io with the following information:* which area codes you'll be needing for the event,* and when you'll need them provisioned by.

If you want to see which numbers are being provisioned and sent from, you can easily export your messages and have a look at the sender phone number columns.

The pool of numbers for your campaign remain the same such that recipients who reply can have sticky numbers to your campaign volunteers. This ensures your volunteers and recipients easily continue their conversation. While new numbers may be provisioned, old numbers will only be discarded if Impactive encounters errors successfully sending new messages using that number. This means you'll see your older numbers still being used in subsequent text banks.

3. What does "Campaign Not Allowing Texting at This Time" mean?

As administrators, you can set up the time that volunteers can reach voters. The time frame default is 9am-5pm EST. You can change this in the CAMPAIGN > Settings tab - Texting. Once that time period is over, volunteers will get the "Your Campaign is Not Allowing Texting at this Time" warning. Be aware that legally you cannot allow texting after 9pm in local time zones.

IMPORTANT NOTE: Sometimes the error message appears as “Unable to send message. Please check your internet connection and try again” when follow up texts are happening past campaign texting hours, which triggers the error. Expand your texting end time, and follow up texts should no longer error out.

4. What are “Twilio errors”, “Impactive safeguards”, "Carrier filtering"?

To help you feel confident about the success of your text banks, Impactive offers transparency into text message delivery results. Most of the time messages are delivered successfully, and you can see these metrics under "Initials" and "Follow up messages".

On the other hand, sometimes messages are not delivered to a contact's phone. While this can feel concerning, Impactive helps you draw better conclusions from these texting efforts by listing three metrics for undelivered text messages.

  • Twilio errors
  • Impactive safeguards
  • Carrier filtering

Twilio Errors

These are the total number of messages that Twilio (our carrier) encountered an error when attempting to deliver the message to the receiver. You can see the total under the "Twilio errors" box.

If you want to explore more context, you can try exporting messages under the "export messages" button at the bottom of your "view results" screen.

On the messages export, these messages are listed with a 5-digit error code in the "error_code" column. For example, the error code 30003 means that the device that you texted was switched off when the message was received.

Twilio has more context on these in their documentation; however, if you're pressed for time, you can simply navigate to the "aasm_message" column to get a human-readable error message like "Contact has unsubscribed".

Impactive Safeguards

These are the total number of messages that were prevented from being sent by Impactive to protect your texting reputation and save you money.

If you want to explore more context, you can try exporting messages under "export messages".

On the messages export, they’re listed by the 4-digit error code, for example, 1302 (aka contact is unsubscribed).

Carrier filtering

These are the total number of messages that were filtered by the carriers (ATT, T-Mobile, etc…) prior to being delivered to the receiver. On the messages export, they’re listed as a Twilio 5-digit error code, specifically, 30007.

As a best practice, we typically encourage campaigns to cease the text bank if messages start to get filtered. You can email support@impactive.io or your client strategy advisor for more direction on how to respond to carrier filtering.

In the meantime, we're working with our texting provider to ensure that campaigns maintain high deliverability in light of carrier 10DLC updates. Please stay tuned for more updates from Impactive on how to continue to stay up to date with 10DLC best practices.

5. What do Message Error Codes mean?

In order to safeguard your campaign from things like duplicate texts, unauthenticated texts, and spamming the same voter repeatedly, Impactive has a series of safeguards that are conducted before the actual sending of an SMS message to the carriers.

Should the message encounter one of these safeguards, the message will either not send (in these cases you will not be billed for the SMS) or the message will attempt to send and fail (in these cases you will be billed for the SMS).

To better understand the errors encountered in your texting lists, you can pull a report with “Export Messages” and match the "error_code" column to the table below:

Impactive Error Codes

  • 1001 identical message already sent
    • A message with the exact same copy has been sent to this recipient already within the last 24 hours.
    • Alternatively, it could mean you have messaged this recipient with any message within the last 6 hours. This settings is called "Outbound Message Lock Protection" and it can be disabled but is not recommended.
    • The phone numbers of Administrator accounts will bypass the outbound message lock protection so their numbers can be used for testing purposes.
  • 1002 messages cannot be blank
    • A message with no copy was attempted and therefore rejected.
  • 1101 can only be sent from user to contact
    • This is to prevent the unauthorized sending of messages.
  • 1102 only user can do this
    • This is to prevent the unauthorized sending of messages.
  • 1103 cannot send broadcast to user contacts
    • This is to prevent the unauthorized sending of messages.
  • 1104 only user can send message with twilio
    • This is to prevent the unauthorized sending of messages.
  • 1105 user campaign must match contact campaign
    • This is to prevent the the campaign from contacting numbers they have not explicitly uploaded
  • 1106 twilio messages must be sent to campaign contact
    • This is to prevent the the campaign from contacting numbers they have not explicitly uploaded
  • 1107 message can only be sent from a user to a contact
    • This is to prevent the unauthorized sending of messages.
  • 1108 only user can send canvasser messages
    • This is to prevent the unauthorized sending of messages.
  • 1109 receiver must belong to campaign to be canvassed
    • This is to prevent the the campaign from contacting numbers that do not belong to their campaign.
  • 1110 receiver must belong to user
    • This is to prevent the unauthorized sending of messages.
  • 1111 can only be sent between users
    • This is to prevent the unauthorized sending of messages.
  • 1201 broadcast has not been properly setup
    • This feature require an enterprise tier account and custom configuration.
  • 1202 campaign not allowing texting
    • This is to prevent messages being sent outside of allowed texting windows.
  • 1203 unable to find available twilio number
    • This means Impactive was unable to provision a number using Twilio for this message.
  • 1204
    • This text was blocked because the Impactive platform recently encountered an error attempting to message this number and expects to encounter the same error if we try again.
  • 1205
    • Unable to send message because this is an invalid mobile number.
  • 1301 contact is not subscribed to broadcast engagement
    • This is to prevent recipients from being contacted via broadcast who have not opted into the service.
  • 1302 contact is already unsubscribed
    • This is to prevent recipients from being contacted who have opted out of the service either via broadcast explicit unsubscribe or via industry standard stop words such as "STOP", "REMOVE", "UNSUBSCRIBE", among others.
  • 1303 contact must be assigned
    • This is to prevent the unauthorized sending of messages by volunteers who have not been assigned this contact to message.
  • 1304 contact already been canvassed
    • This is to prevent the duplicate messaging of previously canvassed contacts.
  • 1305 contact has already been invited
    • This is to prevent the duplicate inviting of previously invited contacts.
  • 9000 Unable to create record the “To” number is not a valid phone number.
    • Double check that the phone number is not a landline, that the phone number is not blank, and that the formatting is correct
  • 9001
    • message_locked_lock_false
    • message_locked_lock_true

Twilio Error Codes

If the Twilio response status is listed as "delivered", your message has been successfully delivered. If it is listed as "undelivered", it has encountered an error either via Twilio or the Carrier.

Any error codes listed above 10000 are Twilio error codes, you can look them up on the Twilio website. Here is an example of the documentation for error code 30004:



Check out our support article, What Do Message Error Codes mean? to learn more about your action's results.

6. I uploaded a custom dynamic variable, but when I try to use it in the action, nothing shows up. What gives?

  • Check to see if you have a custom field for the dynamic variable created. A custom dynamic variable needs to have a corresponding custom field.
  • Check your upload and ensure that the column headers were named correctly. The column header for the custom dynamic variable needs to use the custom field slug. For example, if the custom field is called "target_district", the header needs to be called "custom_field_target_district". Reupload your list with the correct headers if this was done incorrectly the first time.
  • On your action script, make sure you are calling the custom field correctly. For a custom field called "target_district", that variable needs to look like {{custom_field_target_district}}.

Can I refer to specific voting information in my scripts?

If you have the Voter Registration Feature turned on, you can use the below variable to populate a contact's voting information or take them to the appropriate next step in the voter registration flow on Impactive.

  • {{impactive_check_registration_link}} - This will take the contact directly to your Impactive registration link to confirm their current registration status.

7. Can I choose who is assigned to which volunteer ahead of time?

Answer: Not yet. We are working to make this easily assignable and will be offering a separate option for contact assignment in the future.

8. Is it worth texting contacts who have never replied?

We get it: not all peer-to-peer contacts will respond to initial action messages. So what do you do with them? A follow-up message or two is probably fine when reaching out to these unresponsive voters. But beyond that, it's probably worth removing these folks from your actions and lists moving forward.

Text messages currently get through the morass of campaign email and social media messages because they are personal and relevant. Send too many texts, and you risk people treating them just like any other spam email. Additionally, too much follow-up to unresponsive contacts can confuse volunteers into thinking they're sending duplicate messages: don't confuse your volunteers!

Encourage opt-outs

Opt-outs are good! They help your campaign stay compliant with communications laws and ensure higher delivery rates for peer-to-peer messages.

Impactive has also introduced a setting to include opt-out language in every peer-to-peer text message. This additional language lives at the end of every initial outbound script and does not count towards the 160 character limit per text. It reads as follows:

“Reply STOP to unsubscribe.”

Was this article helpful?