This guide focuses on texting with Movement Labs’ “Self Service” Spoke using EMS as the interface between VAN and Spoke. Users must have an Active Spoke account with Owner privileges and a VAN profile code of 1, 2, or 3. This is an alternative to the Movement Labs Portal only when the portal cannot do what you want it to do.
1. Plan the Campaign
1a. Work with the county DEC to define the target audience, objective, and the ask. (e.g., text all Democrats in the county with textable phone numbers who are not enrolled in Vote by Mail to ask them to enroll or re-enroll)
1b. Collect the following information and submit to county chairperson for approval:
- Description of the intended recipients and projected numbers (determined from the search LIST in VAN)
- Proposed text script, and the number of characters in each type message (allow 7 characters for first name).
- Cost (1.25 cents/recipient for each 153-character segment sent SMS; single segment text can be 160 characters – after first segment it becomes just 153 per segment); if your text contains an image or a symbol like a tilde it must be sent MMS= 3.375 cents).
- Confirm the launch date and time, duration of the campaign and the end date.
1c. Finalize scripts, survey questions and answers, canned responses, and tags to record the “disposition” of each conversation in VAN in a Google doc or WORD doc so you can copy and paste. Record the full url for any websites you want to link to, save any other digital materials on your computer for use in EMS.
Scripts should
- Address voter by name – Hi Dave!
- Identify organization sending the text (Lee Dems here or Paid4byLeeDEC)
- Provide required opt-out option (STOP2END)
- Provide information and always an ASK (action)
- Link to Supervisor of Elections – to enroll in Vote by Mail
- Question – Will you enroll? Will you vote in Novemeber?
1d. Create Tags and Canned Responses to go with each text campaign that will be associated with your Spoke account.
Standard tags are:
wrong number confirmed ID hostile moved not supporting dems volunteer deceased
Canned Responses tell texters what to text if a voter replies. Some will be standard; others will be campaign-specific. Each canned response can have an “auto-tag” in Spoke. Canned responses and associated tags can be saved in a .CSV file and uploaded to Movement Labs Spoke. These tags become the canvass results in VAN after the campaign

2. In VAN, update VAN, Create Survey Question, Create EMS Texting Template
2a. If there is a survey question in the script, add the question and responses in VAN.
2b. In VAN, set up a one-time EMS Texting Template as an Export Format. Click Exports =>Export Formats in the Administrative Menu. Click Add New Export Format and select all the VAN fields to export (see list below). SAVE.


For efficiency, include ALL fields potentially needed by EMS for the template even if all fields are not needed in every campaign.
3. Create or Edit a Search and Export VAN Voter List and Phone Type List
3a. Create your targeted List of Voters to be texted. Remove people who have opted out of being texted previously – in our county it is an activist code 2020DNT. You may include additional demographics or Activist Codes to create a “User Defined” element, for instance, to distinguish voters previously enrolled in VBM (ReEnroll) versus those never enrolled (NewEnroll). The User Defined Element should be created using a simple formula in excel before submitting to EMS.
3b. Submit your list for export. Once the export is approved (takes minutes to a couple of days), download the file. Use the EMS Export Template and the Custom Export tab and save as a .csv file.
Export a 2nd time using the Phone Type List template. Save as a .csv file. (Not required but enables EMS to select the “best” number for texting.) Export requires VAN profile 1A, 1, 2, or 3 otherwise it is not visible.

4. Use EMS to Create the Campaign and Spoke Input-File
https://fldems.us/EMS (contact Renard Biltgen for access at rlbiltgen@me.com)
Use EMS to enhance your targeted texting if the Movement Labs portal platform cannot accommodate your needs. The advantages of EMS are:
- Selects best phone number to text for each voter
- Converts the VAN voter file and phone type list to a Spoke-ready file
- Generates short trackable links – saves characters, tracks voter’s response
- Enables sending targeted messages to different audiences in one texting campaign (can use VAN demographics, slate card IDs, or a User Defined identifier like enrolled vs. never enrolled in VBM)
- Allows storage of html “landing pages” with extra information and graphics that text recipients can see by clicking that link in a short text
4a. Go to the EMS Home page at https://fldems.us/EMS and log in.

4b. Set up a Campaign – from the Home page click EMS Campaigns
Create a one letter code. Add a description, start date and end date. SAVE Update and you should see you campaign appear in the column on the left. Later you can track the activity of your campaign in real time on this page.

4c. If using links in your text message: add redirect links like your Supervisor of Elections or county DEC website. Go to Digital Content=>Local Redirect. Assign a 2-character code, title, and enter the full url. Save Link. Check that the link works after saving. Note title for later.

4d. If you want to include digital images in your text message or landing page, click on Digital Content and ADD images. (For slate cards, see separate slate card instructions that explain how to bulk upload those images.)
- To VIEW existing digital material in the library, click the content description in the left-hand column. Then click Display Image.
- To ADD digital material (jpeg, png): Click Digital Content <Local Content. Assign a two-character code and description (plan codes and naming conventions for ease of finding materials later). Select the digital material file stored on your computer. Upload and SAVE.

4e. If using short links that track the response of each voter, return to the Home page, click on EMS Campaigns. Assign a one-character campaign ID code and description. Enter start and end dates for the campaign and the name or initials of the person updating the campaign information.
Click Save/Update

To send targeted messages to different audiences in one campaign you need to use one additional feature of EMS: Digital Content => Local Messages
- To add local messages (dynamic content substitutions for different target audiences), assign a two-character code and description. Type the message in the text box. Save Message. You can update previous messages or delete later. The following example shows a targeted message for school board district 1, 4, and 5. You can see S1, S2, S3, S4, and S5 have different messages for candidates specific to different school board districts.

5. Prepare the Voter File for Spoke
5a. Click on Voter File Enhancement
Without a Redirect Link, use this tool simply to format your VAN voter file for Spoke.
If using a redirect Link, complete step 4c then use the voter file enhancement tool.
Select “Spoke Text File” in the first dialogue box. Select the .csv VAN Voter Data File saved on your computer. If you also exported a Phone Type list file from VAN, select that .csv file. Click Start Upload. Recheck the required elements/headers listed in the Appendix if it does not load. Hint: name both files with campaign name, voter or phone, and date to prevent an error when selecting for uploading.

5b. After the upload is complete, if you have no redirect links, on the Dynamic Links screen, just click on Convert File with no EMS links.

The next page has statistics about your file and the option to download. Save as.csv

5c. If you have redirect links
Select the campaign code created for this texting campaign, then click Add Columns.

This takes you to the Target Message by Demographic Values screen.
For inserting a column with a redirect link:
Basis for Targeting = Voter Demographics
Track Voter ID = Yes if you want to see which voters click your redirect link
Select Content = Local Redirect
Redirect Link = select the link you want included in your text message from Step 4b.
If you are sending the same message to each recipient, select one demographic criterion (e,g, gender was used in the example below) and click all the options.
Click Save Current Definition and you will see it appear on the Content Menu.
When finished with all your “definitions” click DONE – Convert File.

If you are targeting different audiences, select your campaign code, click add column. On the Target Message by Demographic Values screen
Basis for Targeting = Voter Demographics
Track Voter ID = Yes if you want to track which voters click your redirect link
Select Content = Local Messages
Choose the grouping criteria FOR EACH MESSAGE – e.g. age, gender, slate card ID
Click Save Current Definition and you will see it appear on the Content Menu.
Repeat for each target group and the related message.
When finished with all your “definitions” click DONE – Convert File.

This example uses different messages for voters previously enrolled and voters NEVER enrolled in Vote by Mail {EMS_Msg1} but uses the same redirect link {EMS_Link2} to the SOE. Note the tracking code for each voter after the @. A User Defined variable was created using an Excel formula (enroll first time vs reenroll) based on the VAN voter data and that variable (E or R) was included in the VAN voter file that was fed into EMS.
6. Setting up a Texting Campaign in Movement Labs Spoke
https://florida.spoke.movementlabs.com
Before you start setting up a new campaign you need:
- A working Movement Labs Spoke account
- Owner privileges in that account
- All desired tags decide on and set in that account
- Campaign “Interactions” developed in Google or WORD document
- Initial text
- Questions, answers with scripted responses (if any)
- Contacts: CSV Voter file from EMS
- Canned responses – preferably as a CSV file
- Campaign timing – starting day and time
- Texters email addresses
In Spoke – SAVE every step!
6a. Set Tags
This is a one-time effort for your Spoke account. If already completed skip to step 6b.
Agree as a DEC and data team on the tags texters will use to transfer pertinent information about the text recipient into VAN (as canvass status). Set up one universal set of tags in Spoke to be used for all your campaigns.
Create a Tag with this form:

6b. Set Up a New Spoke Campaign


6c. Add Contacts
Click Upload Contacts and select the enhanced .csv Voter file from EMS. Click SAVE and Go to the Next Section – and the Contacts bar will turn green.
6d. Set up Interactions: Initial Text
Select Interactions and click Script in the lower left corn. Copy and paste your script into the dialogue box. Check the character count (average of 7 characters for firstName).

6e. Interactions – Questions, Answers, Responses
Enter the question that appears in the text if there is one.
Click Add Response to add a scripted response to anticipated answers to your question.

Add additional scripts for each of the other answers, e.g., no, no moved elsewhere in Florida; moved out of state, moved (ambiguous). Click SAVE after each step. When completed, the Interactions bar should turn green.
6f. Add Canned Responses either by uploading a .csv spreadsheet or entering them one-by-one. Click the up arrow in lower right corner to upload the .csv file. The canned responses file should have column headers: Title /Text /Tags

6g. Dynamic Assignment
Toggle to “allow texters with a link to join”
Copy the link to send to texters.
Set the batch size (for bulk send) and expected response time. SAVE.


6h. Set Texting Hours
Default hours: 9am to 9 pm- modify as desired. Texters can only respond during those hours. DO NOT CLICK THE BULK SEND BUTTON OUTSIDE THOSE HOURS!

6i. Texter Experience

7. Run the Campaign
7a. Prepare Texters to Respond
- Train texters what to expect (there is a training video on the FDDC wiki)
- Send them the script and canned responses
- Send the campaign link – use the same link to “join” Spoke to respond to texts
- If they had not already joined Movement Labs, they can join any time BEFORE the texting campaign starts
-
- Once they join, they appear on your “People” list
- They won’t be offered texts until the campaign is running
7b. Start the Campaign

7c. Start Bulk Send – make sure texters are ready; not too late in the day
Click STATS to see the progress screen
Click Bulk Send – when you are sure the texters are ready.

7d. Follow the Campaign
The statistics in Spoke are updated in real time.


Check that all responses have been sent out. After the campaign is complete, make sure the Opt-Outs, wrong numbers and other disposition data are uploaded to VAN. EMS will automate this as “Spoke Analysis” early Fall 2024. (automatic in the portal)

