Control add-on-only services in online scheduler

Objective

Let operators hide specific services from the online scheduler’s manual service search while still allowing those services as add-ons, and ensure the “call office to finish booking” escape hatch only fires when an excluded service is chosen as the primary online selection.

Background

  • Today excludeFromScheduler removes a service from AI and from primary search (attik-frontend/src/app/scheduler/services/SearchServices.tsx) but checkEscapeHatch in attik-frontend/src/app/scheduler/utils/checkEscapeHatch.ts still blocks checkout whenever the flag is true, even if the service arrived as an add-on.
  • Service authors manage the flag through attik-frontend/src/app/tools/settings/services/[id]/ServiceForm.tsx, so any new nuance needs a clear setting and copy.
  • Backend AI service search pipelines also filter on excludeFromScheduler, for example attik-backend/src/routes/aiEndpoints.ts during Atlas search.

Scope

Frontend

  • Split the concepts of “hidden from primary online picker” versus “never allow online completion” per the product note on the ticket, updating SearchServices, add-on pickers, and checkEscapeHatch consumers such as SlotsStep as needed.

Backend

  • Align any server-side validation or AI recommendations with the new semantics so mobile and web schedulers stay consistent.

References

  • attik-frontend/src/app/scheduler/utils/checkEscapeHatch.ts
  • attik-frontend/src/app/scheduler/services/SearchServices.tsx
  • attik-frontend/src/app/tools/settings/services/[id]/ServiceForm.tsx
  • attik-backend/src/routes/aiEndpoints.ts

Transcript notes (Apr 16 feature sync)

  • Southeast surfaced a concrete day-one case: a service should be allowed as an add-on but not discoverable as a standalone primary booking in the online scheduler.
  • The current behavior couples search visibility and checkout blocking too tightly: disabling the service hides it from search, but still triggers the "please call us to finish your order" step when that service is later added as an add-on.
  • Product direction from the sync: excluded services should only block continuation when they are the primary selected service.
  • Keep recommended add-on behavior intact so services can still appear as add-on suggestions even when they are hidden from the primary service picker.
  • This was discussed as a meaningful workflow and data-integrity improvement, not just a one-off edge case.

Please authenticate to join the conversation.

Upvoters
Status

Canceled

Board
🏠

Main App

Date

About 2 months ago

Author

Linear

Subscribe to post

Get notified by email when there are changes.