Best CRM with text messaging, read for consent and opt-outs
5 vendors comparedVendor claims read 2026-10-22
For the owner or sales lead who wants texting inside the CRM the team already lives in: where the customer's consent sits on the contact, whether one STOP reply stops every rep and every workflow, and whether an automation can fire a text at midnight. We read five CRMs' own help centres on 2026-10-22; every status names the page it came from. For a standalone texting tool instead, see the business texting comparison; for a phone line that texts, the OpenPhone (Quo) alternatives.
Verdict by use case
Best overall
Consent is a subscription status on the contact that a STOP updates by itself, and broadcasts, workflows and inbox replies all check it. Quiet hours run in each contact's time zone by default; plan around one gap, as double opt-in and a stored opt-in time are not documented.
Best for a small business that wants the opt-in done for it
The first marketing text to any new number is held behind an automatic opt-in request, and the record shows opted in, opted out or pending under each number. The inbox shows the opt-in and opt-out dates; one-to-one texts run on a separate line.
Best for agencies running many client accounts
A STOP sets a permanent Do Not Disturb on the contact and fails every queued message, and the log records who changed it. Workflows can hold texts to a window in the contact's time zone, once you switch it on.

Five CRMs, ten requirements
The first four rows are about the CRM itself: where consent is stored, whether a STOP reaches the record, whether it stops every sender, and whether workflows keep to the 8 a.m. to 9 p.m. window in the contact's time zone. The other six are the texting rules any sender acts on. "Our pick" marks the best-overall verdict.
A CRM stores consent; it does not create it. The wording on your form is what makes a checkbox count, so start from prior express written consent and the SMS consent form template.
| Requirement | Our pickHubSpot | Keap | HighLevel | Close | ActiveCampaign |
|---|---|---|---|---|---|
| Built-in SMS opt-in or opt-out status on the contact record | Yes | Yes | Yes | No | Yes |
| A STOP reply updates the contact record by itself | Yes | Yes | Yes | Check with the vendor | No |
| Opt-out on the contact blocks texts from every user and workflow | Yes | Check with the vendor | Yes | Yes | Yes |
| Automated workflow texts held to a window in the contact's time zone | Yes | Check with the vendor | Yes | Yes | Yes |
| Quiet-hours window by the recipient's time zone | Yes | Check with the vendor | Check with the vendor | Check with the vendor | No |
| Honours STOP and plain-language revocation automatically | Check with the vendor | Check with the vendor | Check with the vendor | Check with the vendor | No |
| 10DLC brand and campaign registration in-product | Yes | Yes | Yes | Yes | Yes |
| Double opt-in available | Check with the vendor | Yes | Check with the vendor | Check with the vendor | Yes |
| Records opt-in with a timestamp and the number | Check with the vendor | Yes | Check with the vendor | Check with the vendor | Check with the vendor |
| Consent records exportable | Check with the vendor | Check with the vendor | Check with the vendor | Check with the vendor | Check with the vendor |
- Built-in SMS opt-in or opt-out status on the contact record
- CTIA asks senders to keep every opt-in and opt-out so future messages are not attempted; a status on the record is the one place every user and workflow can check before a send.CTIA Messaging Principles and Best Practices (May 2023), 5.1.5
- A STOP reply updates the contact record by itself
- A revocation must be honoured within ten business days; a STOP that never reaches the record leaves every other sender in the business unaware of it.47 CFR § 64.1200(a)(10)
- Opt-out on the contact blocks texts from every user and workflow
- The rule speaks of a person who no longer wants texts from the sender: the business, not one rep or one sequence.47 CFR § 64.1200(a)(10)
- Automated workflow texts held to a window in the contact's time zone
- Telephone solicitations are barred before 8 a.m. or after 9 p.m. at the called party's location, and a workflow fires whenever its trigger does, at any hour.47 CFR § 64.1200(c)(1)
- Quiet-hours window by the recipient's time zone
- Telephone solicitations are barred before 8 a.m. or after 9 p.m. local time at the called party's location.47 CFR § 64.1200(c)(1)
- Honours STOP and plain-language revocation automatically
- The FCC rule names seven reply words and also counts any reply a reasonable person reads as a revocation.47 CFR § 64.1200(a)(10)
- 10DLC brand and campaign registration in-product
- US carriers route business texts on local numbers through registered brands and campaigns.
- Double opt-in available
- A confirming reply ties the consent to the handset that will receive the texts.
- Records opt-in with a timestamp and the number
- CTIA asks senders to keep the date, time, number and the words used to secure consent.CTIA Messaging Principles and Best Practices (May 2023), 5.1.2
- Consent records exportable
- CTIA asks senders to retain every opt-in and opt-out so consent can be shown later.CTIA Messaging Principles and Best Practices (May 2023), 5.1.5
Where consent lives in your CRM
Every CRM here stores SMS consent differently: a subscription type, a status under the phone number, a Do Not Disturb flag, a custom field you build, or a list. The model decides what a STOP can change and what a workflow checks before it sends. Tools that collect consent outside the CRM are in the consent capture comparison.
| CRM | Where consent is kept | What a STOP changes | What a send checks |
|---|---|---|---|
| HubSpotSubscription type | An SMS subscription type under the contact's Communication subscriptions, saved with a legal basis and a written explanation. It follows the phone number, not the contact. | The subscription flips to unsubscribed by itself on STOP, STOPALL, UNSUBSCRIBE, CANCEL, END or QUIT. | Broadcasts and workflows send only to contacts opted in to the message's subscription type; inbox replies need the same. |
| KeapStatus per number | A line under each phone number on the record: opted in, opted out, or pending opt in to your Marketing Number. | The line reads opted out and marketing texts stop. | A number with no opt-in history gets an opt-in request before the first broadcast or automated text. |
| HighLevelDo Not Disturb flag | Do Not Disturb per channel on the contact. A consent source or opt-in time is a custom field you add yourself. | SMS DND switches on and stays on until the contact texts START, YES or UNSTOP. | Upcoming and queued texts to a contact on DND fail. |
| CloseCustom fields | Contact custom fields you create, one checkbox for transactional and one for promotional texts, filled by Close Forms. | Not described for the fields. Later texts to that number are blocked and show an error label. | Close suggests filtering workflows on your consent fields; the block on the number catches texts after a STOP. |
| ActiveCampaignSMS list status | Membership of an SMS marketing list: Unconfirmed until the contact confirms by text, then Active. | Nothing you can see: ActiveCampaign says there is no way to track which contacts have unsubscribed from SMS. | Automations skip contacts who replied STOP, yet a contact unsubscribed from lists, unconfirmed or on no list at all can still receive automation texts. |
| PipedriveNone for texting | No SMS consent field: the mobile app opens your phone's own Messages app with the number filled in. | Lands on the rep's phone, outside the CRM. | Nothing in Pipedrive. Linking texts to records takes a calling tool from its Marketplace. |
Each vendor's own help page, read 2026-10-22; sources at the foot of the page.
A customer may revoke consent "by using any reasonable method to clearly express a desire not to receive further calls or text messages", and the request "must be honored within a reasonable time not to exceed ten business days from receipt" (47 CFR § 64.1200(a)(10)). The clock runs for the business, not for the one tool that heard the STOP. If your CRM keeps consent in a field nobody updates, someone has to carry each opt-out into it, and into every other tool that texts, inside that window.
The rule is still moving. The FCC's requirement to treat a revocation sent in reply to one kind of informational message as covering all future robotexts from that caller on unrelated matters is waived to January 31, 2027, and a newer order, FCC 26-67, was adopted on 30 September 2026 but is not yet in effect: it is not in the Federal Register as of 2026-10-22. The texting rules guide tracks both, and the opt-out keywords guide lists the seven reply words the rule names.
Vendor by vendor
Each card repeats the table's rows with the detail from the vendor's own page. Before you register a number through any of them, read what 10DLC is and run the 10DLC registration checklist.
HubSpot
What it is
A CRM with marketing, sales and service hubs. Texting is an add-on to Marketing Hub Professional or Enterprise: broadcasts, workflow texts and replies in the conversations inbox, sent through Twilio from one US marketing number per account.
Who it fits
Teams already running their contacts and email in HubSpot that want texting to obey the same subscription settings.
- Built-in SMS opt-in or opt-out status on the contact recordYes
An SMS subscription type under the contact's Communication subscriptions, set with a legal basis and a written explanation. The status follows the phone number, so a deleted and re-created contact keeps it.
- A STOP reply updates the contact record by itselfYes
STOP, STOPALL, UNSUBSCRIBE, CANCEL, END and QUIT update the contact's SMS subscription status automatically.
- Opt-out on the contact blocks texts from every user and workflowYes
Workflow texts go only to contacts opted in and set as marketing contacts; one-off sends need the message's subscription type too, and inbox replies go out only while the contact still meets those requirements.
- Automated workflow texts held to a window in the contact's time zoneYes
Quiet hours cover workflow texts as well as one-off sends, and they are on by default.
- Quiet-hours window by the recipient's time zoneYes
Texts are deferred from 8 p.m. to 8 a.m. in the contact's local time zone; with no time zone on file, from 8 p.m. US/Eastern to 8 a.m. US/Pacific. The switch can be turned off on a message, which HubSpot advises against.
- Honours STOP and plain-language revocation automaticallyCheck with the vendor
Six keywords opt the contact out automatically: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END and QUIT. Replies in other words are not described.
- 10DLC brand and campaign registration in-productYes
Business details and SMS details (two sample messages, every opt-in method, privacy policy and terms) are submitted under Settings > SMS. HubSpot quotes six to eight business days for a 10DLC number; sole proprietors are not supported.
- Double opt-in availableCheck with the vendor
- Records opt-in with a timestamp and the numberCheck with the vendor
Subscribing a contact by hand asks for a legal basis and an explanation, and each contact's subscriptions keep a History tab; a stored opt-in time is not named.
- Consent records exportableCheck with the vendor
Sent SMS messages export to CSV, XLS or XLSX from the SMS dashboard; an export of subscription history is not described.
Keap
What it is
A CRM and marketing automation tool for small businesses, a Thryv brand since Thryv acquired it. Marketing texts go from a toll-free Keap Marketing Number through broadcasts and automations; one-to-one calls and texts go from a separate Keap Business Line.
Who it fits
Owner-run service businesses that want the opt-in step handled for them before any marketing text goes out.
- Built-in SMS opt-in or opt-out status on the contact recordYes
Shown under each phone number on the contact record: opted in, opted out, or pending opt in to your Marketing Number. Status is kept per phone number.
- A STOP reply updates the contact record by itselfYes
A STOP reply blocks future marketing texts, and the record shows the unsubscribed status under the number.
- Opt-out on the contact blocks texts from every user and workflowCheck with the vendor
A STOP to the Marketing Number stops every broadcast and automation sent from it. One-to-one texts go from the Business Line, a separate number, and whether the opt-out carries over is not described.
- Automated workflow texts held to a window in the contact's time zoneCheck with the vendor
An automation's text step sends at once or after a delay; a time-of-day window is not described.
- Quiet-hours window by the recipient's time zoneCheck with the vendor
- Honours STOP and plain-language revocation automaticallyCheck with the vendor
STOP is the documented opt-out reply; replies in other words are not described.
- 10DLC brand and campaign registration in-productYes
A local Business Line number is verified with the carriers from Settings > Text Message Verification, which shows its status. The toll-free Marketing Number gets its own verification form the first time you broadcast.
- Double opt-in availableYes
Before the first marketing text to a number with no opt-in history, Keap sends an opt-in request and waits for the reply. Consent gathered in another system cannot be imported to skip it; a checked box on a Keap form can.
- Records opt-in with a timestamp and the numberYes
The Marketing Number inbox shows the date a contact opted in and, if they did, opted out, and which broadcast or automation they replied to.
- Consent records exportableCheck with the vendor
HighLevel
What it is
A CRM and marketing platform built for agencies that run a sub-account per client, with its own phone system (LC Phone) for calls and texts, workflows, bulk actions and a Trust Center for carrier registration.
Who it fits
Agencies and multi-location businesses that send texts for several brands from one platform.
- Built-in SMS opt-in or opt-out status on the contact recordYes
Do Not Disturb on the contact, per channel (SMS, calls, email and others) or for all channels. The log shows whether a workflow, a user or the contact changed it.
- A STOP reply updates the contact record by itselfYes
A reply with an opt-out keyword such as STOP or UNSUBSCRIBE switches SMS DND on by itself; certain carrier error codes do too.
- Opt-out on the contact blocks texts from every user and workflowYes
After STOP, all upcoming and queued messages fail and a permanent DND sits on the contact. Only the contact texting START, YES or UNSTOP lifts it.
- Automated workflow texts held to a window in the contact's time zoneYes
Each workflow can run on the contact's time zone and hold texts, emails and calls to a Time Window. Both are settings you switch on; a contact with no time zone falls back to the account's.
- Quiet-hours window by the recipient's time zoneCheck with the vendor
Workflow windows can follow the contact's time zone; the send hours on a bulk-action drip follow the account's time zone.
- Honours STOP and plain-language revocation automaticallyCheck with the vendor
STOP and UNSUBSCRIBE are the documented examples; replies in other words are not described.
- 10DLC brand and campaign registration in-productYes
Brand and campaign registration in Settings > Phone System > Trust Center; a number shows A2P Verified once it is linked to an approved campaign.
- Double opt-in availableCheck with the vendor
- Records opt-in with a timestamp and the numberCheck with the vendor
The DND guide suggests your own fields, such as a consent source and an opt-in timestamp, filled in by a workflow.
- Consent records exportableCheck with the vendor
Close
What it is
A sales CRM with calling, SMS, email and workflows built in. Texts go from the user's Close phone number, one at a time from the lead page or as steps in a workflow.
Who it fits
Inside sales teams that call and text leads from the same screen and run follow-up as workflows.
- Built-in SMS opt-in or opt-out status on the contact recordNo
Close's own guide has you create contact custom fields to mark SMS consent and fill them from Close Forms; there is no built-in SMS status.
- A STOP reply updates the contact record by itselfCheck with the vendor
Later texts to that number show an "error" label on the SMS activity; updating your consent field is not described.
- Opt-out on the contact blocks texts from every user and workflowYes
After STOP, CANCEL or UNSUBSCRIBE, any further message to that phone number is blocked.
- Automated workflow texts held to a window in the contact's time zoneYes
Workflow texts go Monday to Friday, 9 a.m. to 4 p.m. in the contact's time zone by default (set by hand, estimated from the number, or a fallback). A single step can be set to ignore the schedule.
- Quiet-hours window by the recipient's time zoneCheck with the vendor
Workflows follow the contact's time zone; a one-off "Send later" text uses your own device's time zone.
- Honours STOP and plain-language revocation automaticallyCheck with the vendor
STOP, CANCEL and UNSUBSCRIBE are the documented replies; replies in other words are not described.
- 10DLC brand and campaign registration in-productYes
Settings > Phone & Voicemail > US Compliance. Texts to US numbers are not delivered until the registration is approved.
- Double opt-in availableCheck with the vendor
- Records opt-in with a timestamp and the numberCheck with the vendor
Consent is whatever your custom fields record, so a timestamp depends on how you build them.
- Consent records exportableCheck with the vendor
A CSV export can carry all custom fields, so consent kept there leaves with it.
ActiveCampaign
What it is
Email marketing and automation with a sales CRM. Texting is a paid SMS add-on: broadcasts to SMS marketing lists, "Send SMS" steps in automations, and a two-way SMS inbox.
Who it fits
Marketing-led teams that already build automations in ActiveCampaign and want SMS forms with double opt-in.
- Built-in SMS opt-in or opt-out status on the contact recordYes
Consent sits in an SMS marketing list: a contact is Unconfirmed until they confirm by text, then Active.
- A STOP reply updates the contact record by itselfNo
ActiveCampaign says there is no way to track which contacts have unsubscribed from SMS, and staff cannot unsubscribe or re-subscribe anyone by hand.
- Opt-out on the contact blocks texts from every user and workflowYes
Once a contact replies STOP, they skip every "Send SMS" action they reach in automations.
- Automated workflow texts held to a window in the contact's time zoneYes
A "Send an SMS" automation action can be set to send during chosen hours in each contact's time zone.
- Quiet-hours window by the recipient's time zoneNo
Account quiet hours run on US Eastern time (by default 6:45 p.m. to 11 a.m. EST), not each recipient's zone; ActiveCampaign notes they may not cover the Pacific, Alaska or Hawaii-Aleutian zones.
- Honours STOP and plain-language revocation automaticallyNo
Only single-word replies trigger the block (STOP, CANCEL, END, QUIT, STOPALL, UNSUBSCRIBE); "STOP NOW" does not.
- 10DLC brand and campaign registration in-productYes
SMS > Registration takes the business, the account owner, opt-in methods, the use case and two sample texts. An EIN is required, and nothing can be edited after you submit.
- Double opt-in availableYes
On by default for new SMS forms and keywords; the contact replies 1, Y or YES. Contacts added by import, API or bulk edit skip it.
- Records opt-in with a timestamp and the numberCheck with the vendor
Double opt-in gives "a clear record" that the contact agreed; the fields stored are not listed.
- Consent records exportableCheck with the vendor
How we read the claims
Questions buyers ask
If a customer texts STOP to one rep, can another rep or a workflow still text them?
Not lawfully once the opt-out has had time to land: a revocation by any reasonable method must be honoured within ten business days (47 CFR § 64.1200(a)(10)), and it binds the business. In HubSpot and HighLevel the STOP changes the contact's status and every later send checks it; Close blocks further messages to that number, and ActiveCampaign's automations skip the contact. Keap blocks marketing texts from its Marketing Number, and its pages do not say whether the separate Business Line honours the same opt-out.
Do quiet hours apply to automated texts from a CRM workflow?
The federal rule bars telephone solicitations before 8 a.m. or after 9 p.m. at the called party's location (47 CFR § 64.1200(c)(1)), and a workflow is no exception. HubSpot holds every text between 8 p.m. and 8 a.m. in the contact's time zone by default; Close sends workflow texts 9 a.m. to 4 p.m. on weekdays; HighLevel and ActiveCampaign can hold workflow texts to a window in the contact's time zone once you set it. Some states are stricter: one window that clears every state we verified is 9 a.m. to 8 p.m. in the recipient's time zone, Monday to Saturday, and noon to 8 p.m. on Sunday.
Can we import the consent we collected in our old texting tool?
It depends on the CRM. HubSpot lets you subscribe contacts in bulk when you have their explicit and verifiable consent, with a legal basis and an explanation. Keap does not: every number goes through its own opt-in request first. ActiveCampaign takes imports, but imported contacts skip its double opt-in. Whatever you import, CTIA asks senders not to use opt-in lists that have been rented, sold or shared, and an opt-in applies only to the campaign and sender it was given for.
Is a consent checkbox on the contact record enough proof of consent?
Rarely on its own. CTIA lists what an opt-in record should hold: the timestamp, how consent was given, the wording the person saw, the campaign, the IP address, the phone number and the person's identity. A yes/no field holds none of that, so keep the form or keyword log behind it. For marketing texts sent with an autodialer, the FCC rule asks for prior express written consent, a signed agreement that names the number.
Does the CRM register our 10DLC number for us?
All five take the registration inside the product: HubSpot under Settings > SMS, Close under US Compliance, HighLevel in its Trust Center, ActiveCampaign under SMS > Registration and Keap under Text Message Verification for its local Business Line. Registration is the carriers' gate: it does not prove consent for any one contact.
What does texting without consent cost?
Under 47 U.S.C. § 227(b)(3), $500 per call or text, up to three times that ($1,500) if the court finds the violation willful or knowing. A CRM that texts a whole segment at once multiplies that by every contact in it, which is why the consent field matters more than any feature on this page.
Sources
- CTIA Messaging Principles and Best Practices (May 2023), 5.1.5fetched 2026-10-22
- 47 CFR § 64.1200(a)(10)fetched 2026-10-22
- 47 U.S.C. § 227(b)(3) (private right of action)fetched 2026-10-22
- FCC DA 26-12 (revoke-all waiver to January 31, 2027)fetched 2026-10-22
- FCC 26-67, revocation order (adopted 30 September 2026)fetched 2026-10-22
- Fla. Stat. § 501.616(6) (Florida calling hours)fetched 2026-10-22
- Conn. Gen. Stat. § 42-288a(c) (Connecticut solicitation hours)fetched 2026-10-22
- Tex. Bus. & Com. Code § 301.051 (Texas calling hours)fetched 2026-10-22
- HubSpot: Send SMS messages in the conversations inboxfetched 2026-10-22
- Keap: Text Message Broadcast & Automation FAQsfetched 2026-10-22
- Keap home page ("Keap, A Thryv, Inc. Brand")fetched 2026-10-22
- HighLevel: How to Use Do Not Disturb (DND)fetched 2026-10-22
- HighLevel: Drip Mode for Bulk Actionsfetched 2026-10-22
- Close: Exporting datafetched 2026-10-22
- ActiveCampaign: Can an unsubscribed (inactive) contact receive SMS from an automation?fetched 2026-10-22
- ActiveCampaign: SMS STOP clause requirementsfetched 2026-10-22
- Pipedrive: Texting contacts from the mobile appfetched 2026-10-22
- HubSpot: Manage SMS subscription consentfetched 2026-10-22
- HubSpot: Send automated SMS messages using workflowsfetched 2026-10-22
- HubSpot: Understand SMS quiet hoursfetched 2026-10-22
- HubSpot: Set up SMS messaging for marketing communicationsfetched 2026-10-22
- Keap: Check Your Keap Business Line SMS Verification Statusfetched 2026-10-22
- Keap: How to Send Automated Text Messages Using Easy Automationsfetched 2026-10-22
- Keap: How to Manage Text Marketing Replies in Keapfetched 2026-10-22
- HighLevel: LC Phone Messaging Policyfetched 2026-10-22
- HighLevel: Workflow Settings Overviewfetched 2026-10-22
- HighLevel: What is A2P 10DLC Brand and Campaign Registrationfetched 2026-10-22
- Close: A2P 10DLCfetched 2026-10-22
- Close: SMS and MMSfetched 2026-10-22
- Close: Workflowsfetched 2026-10-22
- ActiveCampaign: Create an SMS marketing listfetched 2026-10-22
- ActiveCampaign: How do contacts unsubscribe from SMS messages?fetched 2026-10-22
- ActiveCampaign: About SMS quiet hoursfetched 2026-10-22
- ActiveCampaign: How to register for A2P 10DLCfetched 2026-10-22
- ActiveCampaign: Use SMS double opt-infetched 2026-10-22