Key Takeaways
- Store people, not spreadsheets. Consent, opted_out, locale, and message class live on the contact so the next import cannot wipe them.
- Never delete a STOP record to “make room” under the contact cap. Archive with the flag intact.
- Free includes 300 contacts and 300 SMS lifetime. That is burn-in, not a license to keep a dirty CRM dump.
- OTP recipients can sit in the same directory. They must not sit on the same send list or the same SIM as campaigns.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. Bad numbers still cost airtime when you send them.
A directory is not a blast list
Best practice for Android SMS gateway contacts is boring on purpose. You keep one record per MSISDN, you attach facts that survive the next intern’s Excel, and you send from lists that are slices — not from “Sheet1.” The pillar is contacts, lists, and segments. How to cut slices in the app is how to segment contact lists. This page is the hygiene that makes those slices mean something.
If deleting STOP records is how you stay under the contact cap, you do not have a list problem. You have a compliance problem you are optimizing for.
Fields you actually need
E.164, consent source, consent time, opted_out, language, timezone, message class, last inbound, last DLR. Nickname is optional. “VIP” as a boolean with no owner is how someone blasts the CEO’s personal number from the promotional SIM.
Practice vs anti-practice
| Topic | Do | Do not |
|---|---|---|
| Identity | One E.164 key | Match on “name + last four digits” |
| STOP | Sticky flag, all devices | A separate spreadsheet tab |
| OTP vs promo | Same person, different lists/SIMs | One “all customers” send |
| Imports | Skip counts on dry-run | Replace-all from CRM |
| Cap pressure | Archive with flag | Delete opted-out to free slots |
| Bodies | Template id + DLR | Full OTP plaintext in CRM |
Name an owner
Marketing may request a list. Engineering owns device mapping. Someone with a spine owns consent. When those three are “the intern this month,” STOP will leak. Write names in the runbook next to STOP handling.
CRM sync without resurrection
Nightly HubSpot or Salesforce dumps are the usual murder weapon. Map on E.164. Refuse to set opted_out=false from the CRM unless the CRM itself recorded a documented START. Prefer CSV import dry-runs even when the pipe is an API — the rule is the same.
How to keep lists honest
- Define the record. E.164, consent source + time, opted_out, language, timezone, message class, last DLR.
- Ban mystery columns. If nobody can say why a field exists, drop it. Extra PII is extra incident surface.
- Make opted_out sticky. Imports and CRM sync cannot clear it from a spreadsheet.
- Split send lists, not the person. One contact, many lists. OTP list ≠ campaign list. Device map is required.
- Review stale reachability. No successful DLR in 90 days is a review, not another blast.
- Name the human. Who may import, who may export, who is paged when STOP is ignored.
Two-way replies that update the record (STOP, new mobile number in free text) need the two-way inbox plus a human for anything that is not a token.
What not to store
Government IDs, full card numbers, health detail, and plaintext OTP do not belong next to an MSISDN in a messaging directory. GDPR-minded handling is a separate how-to; the practice here is: if a field is not required to send or to honor STOP, leave it out.
Directory cost
Service pricing is based on device count and total SMS sent through the gateway. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance. Contacts are not a second billing dimension we invent — Free’s 300 cap is a plan limit, not a per-contact fee. Sending still meters volume plus your carrier bill. Paid from $19/month. Device and SMS volume pricing.
Next steps
Start at contacts and lists, import only on plans that include Excel/CSV, and keep promotional keywords on auto-reply and STOP.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- contacts, lists, and segmentsAudience hygiene
- Android SMS gateway product guideDefinition, product, and how to buy





