Professional services advisory session scheduler with anonymous availability

Starting promptUse this prompt as a starting point to build your workflow.

Build a passwordless meeting-scheduling workflow that lets external customers book time with an internal team (e.g. a Services/Solutions Engineering team) without ever exposing which individual engineer they're booking or that person's real calendar. The whole thing is served as a single public web app plus a set of supporting API endpoints under one route prefix (e.g. /scheduler). How it's triggered: entirely over HTTP. A public webpage route serves a single-page app that a requester opens in their browser; that app calls several public route_type = "api" endpoints via fetch. There is no cron or email trigger. Because the pages are reached by external/anonymous users, gate access through the app's own one-time-passcode (OTP) flow rather than platform session auth. Main steps / flow: Scheduler web page — a single-page app that walks the requester through three stages: enter email → enter emailed code → see available times and book. It calls the API steps below and should keep working correctly on draft branches. Request OTP — validate the requester's email against an allow-list (support both whole-domain access and specific users with an expiry), generate a 6-digit code and a session record, sign a capture bundle with a server-side HMAC secret, persist the session to durable storage, and email the code to the requester. Never leak why an email was rejected. Verify OTP — look up the unused session, enforce expiry and a max-attempt count, compare the code in constant time, and mark the session verified. Anonymize users — for a verified session, take the internal team roster and mint an opaque UUID and fake email per engineer, store the anon→real mapping server-side on the session, and return only anonymized identities so real names/emails never reach the browser. Availability — for a verified, anonymized session, compute one consolidated master schedule for the coming week: pull each engineer's real busy blocks from their calendar in one batched call, build working-hour slots in each engineer's own timezone (DST-aware, skipping weekends and holidays), apply a focus-time protection rule, and offer a slot only when a minimum number of engineers are free. Never invent availability — if the calendar call fails, error out; if one engineer's calendar errors, treat them as unavailable. Pre-assign each offered slot to one engineer (round-robin) behind an opaque UUID and sign it with an HMAC slot signature. The requester sees one schedule in their local timezone and never learns the engineer. Book — the HMAC-verified booking submission (rate-limited per IP). Re-verify the session and slot signature to reject tampered or never-offered slots, resolve the opaque UUID back to the real engineer server-side, consume the single-use OTP under an exclusive lock to prevent double-booking, optionally cross-reference your CRM to find the customer's account and assigned project manager, create a video-meeting link and a real calendar event inviting the engineer, requester, and PM, and email confirmations. On any failure, roll back created resources, release the OTP for retry, and email a failure notice. Use a durable named volume for session records, the HMAC key, and rate-limit counters, mounted exclusive where read-modify-write safety matters (booking, OTP consumption). Connectors / external services — name these but let the builder swap them: a calendar API for free/busy lookups and event creation (I used Google Calendar via a domain-wide service account — or your team's calendar), a transactional email sender (I used Gmail — or any email/notification tool), a video-meeting provider (I used Zoom via user-managed OAuth — or your meeting tool), and a CRM for account/PM lookup (I used Salesforce, read-only — or your CRM). Keep all credentials in connectors; never put secrets in code. Tools used: Google Calendar, Gmail, Zoom, Salesforce

New to Tines?Sign up free for Tines 3B Explore Edition

What this prompt builds

A passwordless scheduler that allows external customers to book advisory sessions with internal professional services engineers without exposing individual calendars or engineer identities. The workflow aggregates team availability, enforces focus-time rules, and automatically creates video meetings with the customer, assigned engineer, and their project manager. Built with HMAC-signed sessions, OTP authentication, and one-time slot consumption to prevent double-booking.

The problem

Customers who have purchased professional services hours need a frictionless way to book advisory sessions, but coordinating schedules across multiple engineers, project managers, and customers creates significant overhead. Manual coordination requires back-and-forth between PMs, PSE managers, and individual engineers, delays scheduling, and forces the customer to separately communicate meeting topics and preferences. This scheduler solves the problem by aggregating real-time availability across all professional services engineers, presenting a unified schedule to the customer without exposing individual calendars or engineer identities, and automatically creating Zoom meetings with the selected engineer, customer, and their assigned project manager at the chosen time.

Solution and impact

Customers gain instant self-service scheduling without waiting for coordination, while project managers save hours previously spent orchestrating availability between PSE managers, engineers, and customers. The workflow eliminates scheduling friction by automatically cross-referencing the CRM to identify the customer's account and assigned PM, creating the video meeting, and sending confirmations to all participants. Built with enterprise-grade security through OTP authentication, HMAC-signed sessions, and exclusive locks that prevent double-booking, it delivers a professional booking experience while protecting engineer privacy and calendar data.