Skip to main content

Overview

Tenzo enforces candidate consent before sending SMS or email messages. This ensures compliance with TCPA regulations and respects candidate communication preferences. Every outbound message passes through a consent check before it reaches the candidate. There are two levels of consent:
  1. Call consent — a switch that gates AI-driven calls. When disabled, calls are not attempted with this candidate. It does not gate SMS (controlled solely by SMS consent) or email (controlled solely by email consent). The app labels it Call; Bullhorn/Innova expose the same preference as their “all AI communications” field.
  2. Per-channel consent — SMS consent and email consent control whether each individual channel is available.

ATS Sync

Consent preferences can be imported from the ATS when candidates are synced. Bullhorn organizations can map candidate opt-out fields so that email, SMS, call, and call-consent preferences reflect the candidate’s choices in the ATS, and consent changes captured by Tenzo are written back to those fields. See Candidate Consent Fields for the available mappings. Workday integrations can optionally treat SMS consent as application-scoped. When Enable application SMS consent is on and both questionnaire Yes/No answer IDs are set, Tenzo stores that ATS answer on the matching candidate-job record and requires both global candidate consent and application consent before sending SMS for that job. A verbal SMS refusal still turns off candidate-level SMS consent, so a later questionnaire Yes cannot resume texts. Other Workday and non-Bullhorn integrations leave those columns unset and keep candidate-level SMS consent.
Candidate-level consent field import and write-back are Bullhorn-only. Workday can read application-level SMS consent from a questionnaire when that integration is configured, but does not write it back. In particular, RecruitCRM does not support consent / opt-out sync in either direction — for RecruitCRM organizations, consent lives only in Tenzo and must be set there (or gathered from the candidate directly).
During a phone screen, Morgan reads a TCPA disclosure and asks the candidate for permission to send text messages. If the candidate opts in, Morgan enables SMS for the candidate. If the candidate declines, Tenzo disables SMS for the candidate (every job), the same class of signal as STOP. On Workday integrations with application SMS consent enabled, that job’s candidate-job record is also set to declined so the questionnaire Yes does not look like this-job consent while the person has opted out. Verbal consent gathering is gated per organization: it only happens when the ON_CALL_SMS_CONSENT feature flag is enabled for the org (off by default, so it is off for all orgs until explicitly turned on). It also only applies to phone calls — Morgan never gathers verbal SMS consent during web call interviews, even for orgs that have the flag enabled. For Bullhorn organizations, verbal consent changes are written back to the ATS automatically. For other ATSes, verbal consent is stored in Tenzo and may be overwritten if the ATS syncs different values later.
Non bullhorn orgs should not use this feature until consent write back is built
Verbal consent only affects SMS. It does not change the candidate’s overall communication preference or their email consent.

Inbound Contact

A candidate reaching out to Tenzo on a channel is treated as consent for that channel:
  • An inbound SMS grants SMS consent.
  • An inbound email grants email consent.
  • An inbound call grants call consent.
The grant is awaited before the inbound message is routed, so the reply that follows is always evaluated against the refreshed consent. For Bullhorn organizations the grant is written back to the ATS in the background (test candidates skip the ATS write); other ATSes store it in Tenzo only. The grant is skipped when the inbound message may itself be an opt-out answer: for SMS, a carrier STOP keyword or a reply mid opt-in confirmation; for email, a reply while the not-interested flow has a question pending. The candidate drawer header shows read-only Call / Text / Email chips backed by the candidate’s three consent columns, with the outreach gates’ own verdict for texts and email so a Workday application-level decline shows as blocked even when candidate-level SMS consent is on. A blocked chip’s tooltip carries the newest provenance row for that channel (source and time); granted chips have no tooltip. Every consent write appends a provenance row, and the History tab renders the rows created since the candidate-job record was created as Consent entries (consent itself is candidate-global, so an earlier change on another job still governs the chips) under their own filter and inside Key activity. Rows that changed nothing are not shown. Application-scoped SMS answers live on the candidate-job record and are not logged, so they affect the Text chip’s gate verdict but never appear in History. Public transcript and submittal share links receive neither the chips’ data nor the history. Customer-facing description: Consent on the Candidate Record. When a candidate has not granted SMS consent, SMS messages are not sent. For Workday integrations with application SMS consent enabled, SMS is also blocked when the matching application has declined consent or has no questionnaire answer. A candidate-level opt-out always blocks every application. A declined questionnaire is SMS-only: it does not revoke call or email consent, does not move the application to Consent Revoked, and does not stop voice or email outreach on that job. There is no automatic conversion of SMS content into email. Email outreach to the same candidate uses dedicated email tasks instead — for example voicemail/no-answer template emails (failedCallEmail), virtual interview invites, companion first-touch outreach emails, or email-only outreach when call and SMS consent are both missing.
Email consent is a separate candidate field from SMS consent. It can be imported from the ATS during candidate sync for Bullhorn organizations only; for every other ATS it is set in Tenzo. There is no verbal consent flow for email, but a candidate’s own inbound email grants email consent (see Inbound Contact).
If call consent is disabled, calls are blocked entirely. SMS is not affected — it is gated solely by SMS consent. Email is not affected either — it is still allowed and gated solely by email consent.
Tenzo sends several types of email directly to candidates: thank-you emails, rejection emails, resume feedback emails, virtual interview links, job description emails, and job paused/resumed notifications. All of these check email consent before sending. When a candidate has not granted email consent, the email is silently skipped — there is no fallback to SMS or any other channel. Email is not gated by call consent; only email consent governs whether these emails send. A candidate’s own inbound email restores email consent for that candidate.
For scheduled emails (rejection and resume feedback), a consent denial clears the scheduled send so it is not retried.

Line-Type Detection

Even when a candidate has granted SMS consent, Tenzo may still block SMS delivery based on the candidate’s phone line type. Before sending, the system checks the number against Twilio’s Lookup API and blocks messages to:
  • Landlines
  • Pagers
  • Fixed VoIP numbers (non-fixed VoIP, e.g. Google Voice, can receive SMS and is allowed)
  • Premium and shared-cost numbers
This check runs after the consent gate. If the line type is unknown or the lookup fails, the message is allowed through. Line-type results are cached for 30 days.
Line-type blocking only affects the SMS send step. It does not trigger email delivery.

SMS send

Direct email send

Inbound email reply