Connect Square Appointments

Square OAuth setup. Once VoxReach admin sets the Square OAuth client_id + secret, tenants click 'Connect via OAuth' — 30 seconds, no token paste.

01

Step 1 — VoxReach admin: register a Square OAuth app (one-time, platform-wide)

  • Sign in at developer.squareup.com → My Applications → New Application.
  • Name it 'VoxReach AI'. Production environment.
  • Set OAuth redirect URI: https://app.voxreach.com.au/integrations/square_appointments/oauth/callback
  • Required scopes: APPOINTMENTS_ALL_READ, APPOINTMENTS_ALL_WRITE, APPOINTMENTS_READ, APPOINTMENTS_WRITE, CUSTOMERS_READ, CUSTOMERS_WRITE, EMPLOYEES_READ, MERCHANT_PROFILE_READ, ITEMS_READ.
  • Copy the Application ID and Application Secret from the OAuth tab.
  • In VoxReach Admin → Secrets, add: SQUARE_CLIENT_ID = , SQUARE_CLIENT_SECRET = .
02

Step 2 — Tenant: connect via OAuth

  • Tenant goes to Integrations → Square Appointments → Connect via OAuth.
  • Redirected to Square's authorisation screen.
  • Tenant clicks 'Allow' to grant the listed scopes.
  • Square redirects back to VoxReach with a code; we exchange it for an access_token + refresh_token automatically.
  • Tools attach to all AI agents within seconds.
03

Step 3 — Configure workflow

  • Set as default booking provider, configure SMS confirmation + staff notification, set default duration matching your typical service length.
  • Square Appointments stores customer phone numbers — make sure your customers have a phone number on their Square Customer record so the AI can match incoming calls.
04

Step 4 — Test with a real call

  • Add a Square Customer with your mobile in their Phone Number field.
  • Ring your VoxReach number — AI should greet you by name.
  • Book a service — appears in Square Appointments dashboard within seconds.
05

Troubleshoot

  • OAuth not configured — VoxReach admin hasn't set SQUARE_CLIENT_ID/SECRET in /admin/secrets yet.
  • Tenant sees 401 mid-call — token expired and refresh failed. Check /api/cron/oauth-refresh logs in admin/audit.
  • No location found — multi-location merchants: AI uses the first location in your account. To pin to a specific location, set 'location_id' in the integration config (advanced).

Still stuck?

Email hello@voxreach.com.au — we reply within 2 business hours during AEST hours.

Open a ticket