SMS: Short Message Service. SMS is limited to precisely 140 bytes (or 1120 bits), which translates to 160 characters in the standard encoding language for English, GSM-7. When you send an SMS message over 160 characters, the message will be split. Large messages are segmented into 153 character segments and sent individually, then rebuilt by the recipient's device: this is called concatenation. For example, a 161-character message will be sent as two segments, one with 153 characters and the second with 8 characters.
If you include non-GSM characters, such as Chinese script or letters with accents (as common in the Spanish language) in SMS messages, those messages have to be sent via UCS-2 encoding. Messages containing any UCS-2 characters are limited to 70 characters and will be concatenated as 67 character message segments, even if the messages contain fewer than 160 characters.
MMS: Multimedia Messaging Service. MMS allows users to send a message that contains media such as pictures, videos, or audio to other users.
Segments are the small pieces of text that together create a message.
A send is an outbound messaging event. Most typically, sends require three elements: a contact list, messages for recipients, and a programmed flow that has been QAed (see “Quality assurance,” below).
Contacts are the clients or constituents you want to outreach with a campaign. Lists of contacts can be uploaded via spreadsheet by clicking import contacts or by open API. Once contacts are imported, they are automatically added to a group with the same name as the file you imported. Once in the platform, different groups can receive different messages or “flows.”
Flows are the basis of CCL’s platform: once programmed, flows are sequences of technical actions in order. As an example, many flows begin by sorting imported contacts so that if a contact has previously opted out, they are “exited” from the flow and will not receive any messages that are part of the flow.
Flow design determines the end-user journey by sorting contacts, mapping the order of messages, determining the logic of messages (e.g. “if a user responds Y, then they move to [this step]”), and handling opt-out or opt-in requests.
Programming is the process of writing flows (see above).
Campaigns initiate a sequence of events based on specified timelines. Most often, we use campaigns when we want users to receive a standard cadence of SMS messages. E.g. “One day after opting-in, we want to text Message A. Four days after opting-in, we want to text Message B.”
Triggers initiate flows based on user actions or schedules. For e.g. Texting “Join” to a specific number can be a trigger.
Variables are created and used within flows as a way of tagging or labeling certain contacts. (Note: All variables are saved under and can be accessed by typing @results. Because of this, variables are sometimes referred to as “results” within the platform.) Typically, variables are useful during programming to meet requirements for reporting.
Groups are created during flows to captured contacts as they are sorted. Common groups include opt-outs, opt-ins, or all contacts within a target demographic.
QA or Quality Assurance is conducted internally by members of the CCL team, whose role is to test for the optimal user experience, as well as the optimal technical experience. Here is a shortlist of common items reviewed during our QA process:
Flow design: every programming step yields the intended outcome
Message and/or media delivery (includes special characters/multiple languages)
Inbound messages and/or media
Contact field settings
Flyers or other marketing materials
Any other applicable element
See the appendix for more detail.
Opt-outs and opt-ins are groups of contacts who have indicated that they want to have opted in to communications or opted out of communications. Depending on the scope of the project and the nature of the contact list(s) in use, federal and/or state regulations on how to handle opt-ins and opt-outs may apply. For more information, review materials on TCPA compliance and opt outs.
Commonly used phrases about chatbots
Chatbots like CCL’s HelpDesk solution are computer programs designed to simulate and process human conversation. Chatbots like ours are designed to receive questions, assign intent using natural language processing, and then provide an appropriate answer or response. Chatbots are equipped with training data (see definition below) that is specific to the given topic.
Chatbots can be optimized for web access (accessed through a browser on a computer, tablet, or smart phone) or SMS access (accessed through text message interactions).
Start words initiate chatbot interactions. Examples include texting VACCINE/VACUNA to a phone number to initiate an interaction with a mobile chatbot, typing QUESTION/PREGUNTA on a web-based chatbot, or texting ZIP to access a zip code look-up feature via SMS.
Training data sets are used to determine the behavior of a chatbot. They have multiple critical features to ensure that the user experience is optimized; most commonly referenced are the answer bank, question set, and intents.
An answer bank is a spreadsheet of answers pre-determined to be acceptable. At CCL, we often provide clients with a crowdsourced, generalized answer bank, and then work with our clients to develop more specific answers that provide information relevant to their constituents. As an example, we often provide answers to questions like: “What is the census?” or “When is the census due?” and work with clients to draft answers to questions like: “Will a census worker come to my neighborhood?” or “How can I become a census worker for [City]?”
A question set is a spreadsheet of questions that have been or may be asked of the chatbot. Each question variation is paired with an answer from the answer bank. As an example, a user might ask the question “When is the census due?” in the following ways: “Is there a deadline?” “Am I too late to turn in the census?” “What’s the due date?” In each case, the answer provided by the chatbot might be identical even though the questions are very different. The question set is used to ensure that variations of a user’s inquiry are programmed to match the appropriate answer.
Intents are short phrases used like tags in chatbot programming to increase the likelihood of providing a correct answer. Referencing the intent behind a user question rather than an exact match for the words in a question increases accuracy.
Maintenance or chatbot maintenance refers to the ongoing, iterative process of updating the training data set to a chatbot so that information remains current and relevant to users.
Commonly used phrases about phone numbers
A2P messaging is “Application to Person” texting: it is the most common and cost-effective way for businesses to send SMS messages to customers. It removes the manual labor of texting and enables businesses to send text messages in bulk. The CCL platform is an A2P messaging platform.
A 10DLC number is a local 10-digit phone number that can support high volumes of text messages. 10DLC numbers are designed and sanctioned by the termination vendors for A2P SMS messaging. Currently, 10DLC messaging can send messages at a rate of 5 to 15 messages per second, and that number may go up in the future. (Source: What is 10DLC?)
Long codes are 10 digit numbers (in the US) and are optimized for person-to-person communications. These codes can send 1 message per second. There are different concepts associated with a long code:
Local numbers are numbers that are assigned to a specific geographic region. These numbers are typically used by individuals and local businesses.
A mobile number refers to the 10-digit unique number that a wireless carrier uses to identify a mobile phone.
VoIP (Voice over IP) numbers are virtual numbers that get allocated to a user instead of a dedicated phone line. A virtual number is not locked down to a specific phone. You can use these numbers to route voice calls or text messages to any phone or workflow. A popular example is Google Voice.
Toll-free numbers are numbers with preassigned 3-digit codes in place of an area code that are not tied to any geography. In the US, they are often used for domestic inbound calls and are free for customers to dial. The most recognizable of these are 1-800-xxx-xxxx and 1-877-xxx-xxxx.
Short codes are unique 5 or 6 digit numbers that can be used to send two-way SMS and MMS messages. Because short codes can send high volumes of messages, wireless carriers individually approve every short code for its intended use. The short code application process requires many pages of documentation and authentication, which are then reviewed by phone carriers. Provisioning a short code typically takes 8-12 weeks in the US.
Carriers refers to the owners of wireless networks. In the US, there are four Tier 1 phone carriers (AT&T, Verizon, TMobile, and Sprint), two Tier 2 phone carriers (US Cellular and C spire), and many smaller regional tier 3 carriers. Carriers have unique infrastructure, operating rules, technical requirements, regulation practices, and monitoring technologies.
Mobile Virtual Network Operators (MVNOs) piggyback on the major carriers to provide their services. Popular MVNOs include MetroPCS, Boost Mobile, Cricket Wireless, GoogleFi, USMobile, and Virgin Mobile.
Carriers are subject to regulation through the Federal Communications Commission (FCC), and more specifically, the Wireless Telecommunications Bureau within the FCC oversees the national wireless telecommunications programs and policies. Carriers are also subject to regulations set by state agencies (typically consumer protections).
Phone validation is the process of verifying a phone number's status as active or inactive. Using the Twilio API, CCL checks every phone number for its status, type (landline, mobile, or VoIP), and carrier (i.e. T-Mobile, Verizon, etc.)
Commonly used phrases about contact centers
Twilio Flex is a product developed to create cloud-based contact centers.
Omnichannel contact center infrastructure supports traditional voice (telephone) calls in addition to other channels, like SMS, webchat, Whats App, Facebook(Meta) Messenger, email, etc.
Channels are determined by contract; see CCL team for clarification on channel usage.
Tickets are generated by incoming requests to the contact center and then assigned to the appropriate individual for handling based on user availability status, skills, and their role.
Roles (similar to permissions) determine an individual’s access to the contact center. The Flex platform has three unique roles:
Agents log in to the platform, set their availability, and use an intuitive inbox interface (called the “agent desktop”) to engage with consumers.
Supervisors can see the inbox (“agent desktop”), queue stats, and insights reporting, which provides team-level visibility into agent workflows.
Administrators can do it all! This includes developing new features, configuration tasks, and changing custom settings. In most cases, CCL will maintain admin status.
Task router is a feature that sets rules about how agents receive consumer inquiries. These rules are always determined in conjunction with the project team and may change over time.
Customization is the process of tailoring the contact center for a particular use case. Options for customization include those related to User Interface (UI) changes like logo, color, font, and menu options for Ticket Status, Ticket Priority, and Category.
User Interface (UI) describes anything a user may interact with to use a digital product or service.
User Experience (UX) encompasses all aspects of the end-user's interaction with the company, its services, and its products. Sometimes the ideal state of a user experience is captured in a “user journey” or journey map.
Below is an abbreviated version of the aspects reviewed during CCL’s standard Quality Assurance process.
For sends of a standard scope, we typically allow 2 days for QA. For more complicated projects, including chatbots, we typically anticipate turnarounds closer to two weeks, depending on the number of languages and sophistication.
Verify that all start words are working and start the correct language in case of multi-language flow
Verify that the flow can be run on intended channels that it will be taken
Verify that the flow will be started when adding a contact to the flow
Verify that no existing keyword triggers are interfering with possible flow answers contacts will send
Verify that there are no typos, misspellings
Verify that translations on multi-language flow are correct
Verify that variations are added in the response rules for Yes or No questions Yes: Y, Yes, Yeah, Yup (and any other synonyms added in the response rules)
No: N, No, Nah, Nope (and any other synonyms added in the response rules)
Verify that the response rules include variations of possible answers
Verify that responses are categorized correctly
Verify that sending valid answers per response rules will advance contact to the next step
Verify that sending invalid responses will send validation messages to contact
Verify that all rule sets, e.g. ‘split by expression’, and logic work correctly
Verify that all action sets, e.g. ‘update the contact’, work correctly
Verify that variables in messages are replaced with correct values
Verify that inbound messages are received on time by the application
Verify that all outbound messages are delivered and received
Verify that outbound messages are received on time
Verify that the same flow message is not received more than once (duplicate message)
Verify that inbound messages, including those with unicode and special characters, are saved and displayed correctly on the application
Verify that outbound messages, including those with unicode and special characters, displays correctly on messaging app
Verify that all flow messages are not cut off when received
Verify that all flow messages are not garbled or corrupted when received
Verify that links are not split into two messages
Verify that inactive contacts expiration of the flow is correct
Verify that the data are saved correctly in the downloadable flow results file
Verify that flow runs are saved and viewable on the Flow Results page
Verify that campaigns are set up to trigger on the correct schedule
Verify that the flow campaign triggers the correct flow
Verify that the flow campaign triggers for the correct contact groups
Twilio Inbound Numbers
Verify that all inbound phone numbers can send and receive messages
Twilio Copilot Numbers
Verify that all the Twilio Copilot numbers are set up for the organization account
Verify that the copilot numbers can send and receive messages
Verify that all start words to trigger the flow have been added
Verify that sending unsubscribe keywords will opt-out contact
Verify that sending restart keywords will opt-in contact again
Verify that the lookup database was uploaded to back4app correctly
Verify that the applicable contact fields created on contact import correspond to the contact variable names used in the flows
Verify that custom contact fields used in the flow are set to the correct field type
Verify that the organization account has enough credits to send messages
Verify that the organization account has the correct timezone