Skip to content
Integrations and automation

Set up SignalWire SMS in Farin

Register an SMS campaign, connect the SignalWire sender, set Farin’s webhooks and consent rules, then test delivery and replies.

7 min read Updated Owners and managers setting up SMS for a tenant

Connect the SignalWire account that will send Farin messages. Start in SMS Marketing, then register the campaign and sender number before enabling any automation.

Register each message purpose and its sample content accurately. Keep interview reminders separate from loyalty promotions when they use different campaign purposes.

Quick facts

Start here

  • Choose Low Volume Mixed as the default SignalWire campaign category for Farin, then select accurate sub-use cases and samples.
  • You need the SignalWire Space URL, Project ID, API token, Signing Key, and approved sender number(s).
  • Farin verifies signed inbound and delivery callbacks, handles STOP/START/HELP, and stores non-command replies in the tenant SMS inbox.
  • Marketing SMS requires explicit marketing consent. Interview-reminder consent does not automatically opt someone into loyalty promotions.
  • The default cap is one regular marketing message per recipient number every rolling seven days; a new-member welcome may include one 48-hour follow-up.

Step 1: Register the SignalWire campaign

Register the brand first

In SignalWire, register the legal business brand and connect the website customers will see. Wait for the brand to be available before creating the campaign.

Create a Low Volume Mixed campaign

Create a campaign under the registered brand and choose Low Volume Mixed. Select only the sub-use cases that match the messages this campaign will send. Use one campaign for interview/account notifications and another for loyalty or other promotional marketing when the purposes differ.

  • Use the actual Farin website CTA or Square Loyalty POS prompt in the opt-in description.
  • Include message frequency, “message and data rates may apply,” STOP instructions, HELP instructions, and realistic sample messages. If cadence varies, write “Message frequency varies” in both the CTA and the opt-in confirmation message.
  • Use the tenant privacy-policy URL. Careers sites publish it at /{companySlug}/privacy-policy (or /privacy-policy on a tenant domain).

Step 2: Connect SignalWire in Farin

Enter tenant-owned credentials

Open SMS Marketing, choose Provider setup, and enter the tenant’s Space URL, Project ID, API token, and Signing Key.

Click Verify and save encrypted credentials. Farin verifies the token with SignalWire, encrypts the token and Signing Key, and shows only masked hints afterward.

Add the registered sending number

Enter the registered marketing number in E.164 format, such as +16025551234, set the tenant’s IANA timezone, and save the settings. If the tenant also sends interview reminders, enter the number assigned to the interview/account-notification campaign in the separate interview-reminder field. Leaving it blank preserves the legacy fallback to the marketing number. Keep sending disabled while registration or callback testing is still in progress.

Step 3: Point the SignalWire number at Farin

Do not skip the callbacks

Without the inbound callback, Farin cannot honor custom STOP/START/HELP behavior or save applicant/customer replies. Without the status callback, delivery state in Farin can become stale.

In SignalWire’s phone-number messaging settings, use these handlers for every sender that Farin will operate:

- Inbound messages: POST https://farin.app/api/public/sms/signalwire/inbound

- Delivery status callbacks: POST https://farin.app/api/public/sms/signalwire/status

Keep the Signing Key in Farin matched to the Project ID that owns the number. In SignalWire, also confirm that the number is assigned to the approved campaign. The inbound handler returns cXML confirmations for STOP, START, HELP, and SUPPORT; cXML is the webhook response format and does not replace Campaign Registry approval.

Step 4: Configure consent and messages

Turn on interview reminders safely

For careers, open Jobs settings, select notification recipients, and enable interview SMS only after the applicant form includes SMS consent. A reminder is sent about one hour before an opted-in interview and includes the time, address when available, and a secure manage link.

Sync and review loyalty consent

For loyalty marketing, open the Audience & consent tab and sync Square contacts. Square Loyalty POS enrollment is recorded as marketing opt-in; ordinary directory phone numbers remain unknown until a customer explicitly opts in.

  • Never treat interview-reminder consent as loyalty-marketing consent.
  • A later STOP always wins and is not overwritten by a Square sync.
  • Keep every message branded, useful, and consistent with the approved campaign samples.

Step 5: Use the unified SMS inbox

Reply without leaving Farin

When an applicant asks to reschedule or a customer has a question, open the email’s inbox link and reply from the thread. Duplicate SignalWire webhook deliveries are ignored so a retry does not send a second email.

Open SMS inbox to read replies that are not STOP, START, HELP, SUPPORT, or a supported birthday response. Farin groups messages by phone number, shows unread counts, and lets staff mark, close, reopen, and reply to a conversation from the configured SignalWire number.

Farin emails the notification recipients selected in Jobs settings. If none are selected, active tenant managers receive the alert. The email is tenant branded, includes a plain-text fallback, escapes the incoming message content, and links directly to the conversation.

Personalization and frequency controls

Farin refreshes a tenant-scoped snapshot of qualifying Square order history before evaluating enabled campaigns. It can safely personalize messages with a recent item, a repeated favorite, a strong co-purchase suggestion, a usual daypart, and visit count. Missing history uses a neutral fallback, and the values used for a delivery are retained for auditability.

All enabled campaigns share a phone-number frequency gate. Regular campaigns are hard-capped at one message in a rolling seven-day window. The welcome journey can send the initial reward message and, if the member has not purchased, one follow-up after 48 hours. Optional second-visit, favorite-item, basket-building, and routine-reminder campaigns start inactive so a manager can enable them deliberately.

Step 6: Test before enabling production sends

  • Send one test message and confirm SignalWire reports a delivery callback.
  • Reply STOP, START, and HELP and confirm the branded cXML responses and consent changes.
  • Send a normal question and confirm the branded email and the conversation under SMS inbox.
  • Retry the same webhook and confirm that the inbox and email remain single-entry.
  • Confirm the number is assigned to the approved Low Volume Mixed campaign and that the live copy matches the registered opt-in, privacy, HELP, and STOP disclosures.
  • Only then enable the tenant and the individual automations.

Compliance essentials

Keep the registration and the message behavior aligned

Campaign category, sub-use cases, CTA, opt-in source, privacy URL, sample messages, sender assignment, and live message content must describe the same program. If you add a new promotional purpose, create or update the appropriate registered campaign before sending it.

  • Honor STOP-like keywords immediately and provide START and HELP instructions.
  • Use a direct privacy-policy link and include the statement that mobile opt-in data and consent are not shared with third parties for marketing or promotional purposes.
  • Keep provider credentials tenant-scoped and never paste them into a message, article, or ticket.
  • If SignalWire requires a different category because of volume or carrier review, follow the provider’s written instruction and document the exception before enabling the tenant.

Related guides

Keep going