CASL, suppressions & data handling.
Sales Outreach sends commercial messages on your behalf. CASL (Canada), CAN-SPAM (US) and GDPR all require legitimate opt-out paths and sender identification. Tenlo handles this automatically — but you should understand what’s happening.
Tenlo’s P02 compliance posture covers five layers:
- Identification — every outbound email carries CASL §6(2) sender-ID info (your business + “Sent on behalf of Tenlo AI Inc.”).
- Consent — every prospect is stamped with a CASL consent basis at import, attested by you in the UI, and held alongside an audit log.
- Opt-out — unsubscribe footer + one-click headers on every email; unsubscribes go on your business’s own suppression list; spam complaints and repeat bounces go on a global abuse list shared across all Tenlo customers.
- Pre-send filters — at import, contacts already suppressed, on the abuse list, or in Quebec are rejected.
- Lifecycle — provider tokens are nulled on cancellation; imported prospects from disconnected integrations are deleted; full account purge after 90 days.
The full suppression-model explainer lives at app.tenloai.com/legal/suppression-model (counsel-aligned wording, updated 2026-05-24).
What’s in every outreach email
- CASL §6(2) sender-identification footer — auto-injected on every send. Includes your business legal name, your mailing address, an owner/contact line, and a “Sent on behalf of Tenlo AI Inc.” block. The render-time gate blocks the send if your mailing address is missing or looks like a placeholder. You can’t disable this footer.
- Unsubscribe footer link → branded
https://www.tenloai.com/unsubscribe?email=...page (one-click confirm) - One-click unsubscribe headers (
List-Unsubscribe,List-Unsubscribe-Post) — Gmail, Yahoo, and Outlook show an Unsubscribe button at the top of the message. The header points athttps://app.tenloai.com/api/unsubscribewhich accepts the one-clickPOSTper RFC 8058.
If your business mailing address is blank, or the field rejected your input as a placeholder (TBD, 123 Main St, N/A), the render-time gate blocks every send. You’ll see the error in the failed step’s last_error. Set the address at Settings → Account → Business mailing address to unblock.
What happens on unsubscribe
Two paths land in the same place — your business’s suppression list:
- Recipient clicks the unsubscribe footer → confirmation page → suppression added
- Recipient hits the one-click button in their mail client → suppression added
The unsubscribe link carries a token that identifies the sending business, so the opt-out is scoped to you — it doesn’t stop other Tenlo customers from emailing that person. (An older unsubscribe link without a token can’t be tied to one business, so it falls back to a platform-wide suppression — the safe direction.)
In both cases:
- All in-flight sequences for that recipient stop
- All future sends are blocked
- Reply classification of
unsubscribecontent also adds to suppressions (defence in depth)
The two-list suppression model
There are two complementary lists. Both are checked before every send (and at import preview time). A match in either blocks the send.
| List | Scope | When used |
|---|---|---|
| Per-business suppressions | Your account only | Anyone you sent to who unsubscribed (footer link or one-click button), replied with unsubscribe intent, or whom you manually added. These belong to you and aren’t shared across Tenlo customers. |
| Global abuse list | Across all Tenlo customers | Spam complaints and repeat bounces. Defends every customer’s deliverability. |
For the full policy, see app.tenloai.com/legal/suppression-model .
Consent basis on import
You must select a consent basis for every import — see Importing prospects. Tenlo stamps the basis on every contact in the batch and stores it with the attestation. If a recipient ever complains, your defence is “I asserted basis X on date Y” — and Tenlo can produce that record.
Manually suppressing a prospect
If you know a prospect is wrong (left the company, complained directly to you, etc.), you can manually add them. Today this is a support request — email support@tenloai.com with the email address. Self-serve is on the roadmap.
Removing a suppression
Tenlo only removes a suppression after the recipient has confirmed they want messages again, in writing. CASL/CAN-SPAM violations carry significant penalties — Tenlo errs on the side of compliance.
Bounces
- Repeat bounces — the address goes on the global abuse list, which blocks sends to it from every Tenlo account.
- Soft bounces (mailbox full, temporary reject) — retried before the step is marked failed.
Domain warmup
If you’re sending from a brand-new domain, your delivery rate will be poor regardless of platform. Best practice:
- Send from the connected mailbox manually for 1–2 weeks before automating
- Start automated outreach at low volume (5–10/day) and ramp slowly
- Don’t import 500 prospects on day one of a new domain — ramp first
Cancellation, data retention & privacy
Updated 2026-05-21. Tenlo automates content cleanup so you don’t have to file a deletion request to leave cleanly.
What happens when you cancel your subscription
The moment Stripe confirms a cancellation:
- Provider tokens are nulled — Gmail, Microsoft 365, Calendly, HubSpot, Pipedrive OAuth/API tokens are wiped from the database.
- Microsoft Graph subscriptions are deleted — the reply-watch webhooks are unregistered upstream.
- In-flight sequences stop — no further sends fire on your account.
- Account status flips to
inactive— dashboards still load (read-only). There’s no self-serve export; email support@tenloai.com if you want a copy of your data before it’s deleted. cancelled_atis stamped on your account.- A daily cron deletes the full account 90 days after
cancelled_at— prospects, sequences, replies, attestation records, the lot. This grace window exists so you can resubscribe and pick up where you left off if you change your mind.
What happens when you disconnect a single integration
Disconnects are integration-scoped — only data tied to that integration is affected.
| Integration | Tokens wiped? | Imported content deleted? |
|---|---|---|
| Gmail | Yes | No (sent history stays for your records) |
| Microsoft 365 | Yes (Graph subscription deleted) | No |
| Calendly | Yes | No |
| HubSpot | Yes | Yes — prospects imported from HubSpot are removed; their in-flight sequences stop |
| Pipedrive | Yes | Yes — same pattern as HubSpot |
Every deletion writes an audit row to data_deletion_log (timestamp, scope, row counts).
What’s retained vs deleted
- Audit-trail data (consent attestations, suppression list, abuse-list entries) is retained even after deletion — it’s how Tenlo proves compliance to a regulator if challenged.
- Suppressions are never removed without written confirmation from the recipient.
- ROI report archives stay accessible for 12 months after cancellation in case you need them for an end-of-year summary; the underlying raw prospects/replies are gone after 90 days.
If you want an immediate deletion
Email support@tenloai.com and ask for an immediate purge. Tenlo actions it manually, logs the request, and emails you a confirmation. This is the path to use if you have a regulatory deadline (GDPR right-to-erasure, etc.) you can’t wait 90 days for.
AI training
Tenlo uses Anthropic’s and OpenAI’s enterprise endpoints, which prohibit training on customer data. Your prospects, replies, templates, and attestation records are never used to train AI models — Anthropic’s, OpenAI’s, Tenlo’s, or anyone else’s.
Where to look
| Topic | Where it lives |
|---|---|
| Sender-ID footer mechanics | This page (above) |
| Two-phase import flow | Importing prospects |
| What gets stored and for how long | This page (above) |
| Data after cancellation | Pricing, caps & billing |
| AI training stance | This page (above) and FAQ |