Skip to content
Running the day

Online booking & portal

Servtide's public-facing booking system lets customers request service online through a branded booking form or AI chat assistant. Customers can track their jobs, approve estimates, and pay invoices through personalized portal links sent via email. Setup takes 5 minutes and works out of the box—no code required.

All guides
1

Step 1: Sign Up & Create Your Organization

Signup page (initial account creation)
  1. Go to the signup page and fill in 'Business name' (e.g., Acme Plumbing)
  2. Enter 'URL slug' (auto-generated from your name, e.g., acme-plumbing). This becomes your booking URL: book.servtide.app/book/acme-plumbing
  3. Select your 'Trade' (HVAC, Plumbing, Electrical, or General) — this populates your default service types
  4. Enter 'Your email' and create a 'Password' (minimum 8 characters)
  5. Click 'Create organization' and you'll be logged in to your dashboard

What to enter

  • Business name — your legal company name
  • URL slug — lowercase letters, numbers, hyphens only; drives your booking URL
  • Trade — HVAC, Plumbing, Electrical, or General (determines your pricebook template)
  • Your email — your login email; must be unique per account
  • Password — at least 8 characters

Tips

  • The slug can't be changed later, so choose carefully (e.g., 'acme-plumbing' instead of 'acmeplumbing123').
  • You can change your business name anytime in Settings → Branding.

Watch out

  • If the slug is already taken or email exists, you'll see an error — try a different slug or email.
  • Password is hashed and never stored in plain text.
2

Step 2: Brand Your Booking & Customer Pages

Settings → Branding
  1. Click your name/profile (top-right) → Settings → Branding
  2. Under 'Company & colours', update 'Company name' if needed (leave blank to keep signup name)
  3. Click the 'Primary colour' swatch and pick your brand color (used for buttons, headers on booking/payment pages)
  4. Click the 'Accent colour' swatch for a secondary brand color
  5. Click 'Save' to apply across the app and all customer-facing pages

What to enter

  • Company name — appears on booking page, estimates, invoices, and mobile app
  • Primary colour — hex code (e.g., #2563eb); defaults to blue
  • Accent colour — hex code (e.g., #f97316); defaults to orange

Tips

  • The preview pane on the right shows how your colors look on booking pages and the mobile app.
  • These colors also apply to the estimate approval page, invoice payment page, and customer portal.
  • You can add a logo below to show on all customer-facing pages.

Watch out

  • Color changes are live immediately — customers will see them on their next page refresh.
3

Step 3: Upload Your Logo (Optional)

Settings → Branding → Logo section
  1. In the 'Logo' card, click 'Upload logo' to select a PNG or JPG from your computer
  2. Or paste a URL to an existing logo (e.g., https://yourcompany.com/logo.png) in the 'or paste a logo URL' field and click 'Save URL'
  3. The logo appears on booking pages, customer portal, estimate/invoice pages, and the mobile app

What to enter

  • Logo file — PNG or JPG, recommended 200×200px or larger
  • Logo URL — direct link to your logo image (must be publicly accessible)

Tips

  • Use a square or slightly-wide format (avoid tall logos).
  • Test your logo on the preview pane to see how it looks on customer pages.
  • You can change this anytime — just re-upload or paste a new URL.

Watch out

  • If you paste a URL, make sure the image stays online permanently. If the URL breaks, the logo disappears from all customer pages.
  • File uploads are stored securely; you can't download them later (only URLs are retained).
4

Step 4: Set Up Email Sender (Optional but Recommended)

Settings → Branding → Customer email sender
  1. In the 'Customer email sender' card, enter 'From name' (e.g., 'Acme Plumbing') and 'From email' (e.g., 'hello@acme.com')
  2. Click 'Save sender'
  3. (Optional) Add a custom domain below to verify your email address for reliability; without it, Servtide uses a default sender address

What to enter

  • From name — how your company name appears in customer inboxes (e.g., 'Acme Plumbing')
  • From email — the reply-to address (must be from your domain or a verified custom domain)

Tips

  • Emails go to customers for appointment reminders, estimate requests, invoice payments, and more.
  • Using your own domain (vs. a generic 'hello@servtide.app') builds trust.
  • If you don't have a custom email address yet, leave both fields blank to use Servtide's default.

Watch out

  • The email address must match a verified domain (see next step for custom domain setup).
  • Without a custom domain, the email may land in spam; adding a domain dramatically improves deliverability.
5

Step 5: Verify a Custom Email Domain (Optional for Email Reliability)

Settings → Branding → Email sending domain
  1. Scroll to 'Email sending domain' and enter your domain (e.g., 'acme.com')
  2. Click 'Add domain'
  3. You'll see a table with DNS records (CNAME, MX, TXT). Copy these records.
  4. Log into your domain registrar (GoDaddy, Namecheap, etc.) and add the DNS records to your domain settings
  5. Return to Servtide and click 'Check status' until the status shows 'Verified'
  6. Once verified, emails from your domain reliably land in customer inboxes

What to enter

  • Domain — your business domain (e.g., acme.com, not hello@acme.com)

Tips

  • This step is optional but highly recommended; it takes 5–30 minutes depending on your DNS provider.
  • DNS propagation can take up to 48 hours, but Servtide checks every few minutes.
  • Once verified, you can use any email address on that domain as your 'From email' above.

Watch out

  • DNS must be managed by your domain registrar (not a web hosting provider alone).
  • If the status stays 'pending_verification' after 1 hour, double-check the DNS records were added correctly.
  • If email provider is not configured on your Servtide server (no RESEND_API_KEY), the domain section shows 'not_configured' — contact support.
  • You can only add one custom domain per organization.
6

Step 6: Ensure Your Services Are Listed (Job Types)

No dedicated UI — services are seeded from your Trade selection
  1. During signup, you chose a Trade (HVAC, Plumbing, Electrical, General). This automatically created default service types.
  2. On your booking page (book.servtide.app/book/YOUR-SLUG), customers will see a 'Service needed' dropdown with options like 'Service Call', 'Maintenance', 'Install', and 'Inspection'.
  3. If you need custom services beyond the defaults, contact support or manually create Job Types via the backend (not yet exposed in the UI).

Tips

  • The default services ('Service Call', 'Maintenance', 'Install', 'Inspection') cover most trades.
  • Each service has a default duration (Service Call = 60 min, Maintenance = 90 min, Install = 240 min, Inspection = 45 min) used for scheduling.
  • Customers see all active job types in the booking form dropdown.

Watch out

  • You can't edit job types in the current UI. If you need to rename or add services, request them via your dashboard or contact support.
  • The pricebook is also based on your Trade choice; custom pricing requires a Pro or Business plan.
7

Step 7: Share Your Booking Link with Customers

Your booking URL (public, no login needed)
  1. Your booking page is automatically live at: book.servtide.app/book/YOUR-SLUG (e.g., book.servtide.app/book/acme-plumbing)
  2. Share this link on your website, Google Business Profile, social media, or email signature
  3. Customers click the link, fill out the form, and submit a request (no login required)
  4. You can also tell customers to use the 'Book by chat' assistant at the bottom of the booking page

Tips

  • The URL is short and memorable — easy to print on business cards or ads.
  • The booking page is fully branded with your logo, name, and colors.
  • Mobile-friendly design works on phones, tablets, and desktops.
  • You can add this URL to your website's 'Book Now' button or embed it as a hidden redirect.

Watch out

  • If your slug is misspelled in the URL, customers see 'Business not found'. Double-check the slug during signup.
  • The page is public and unauthenticated — no login required, which is intentional for customer convenience.
  • Rate limiting prevents spam: 5 bookings per email per hour per your organization.
8

Step 8: Understand the Booking Form Fields

book.servtide.app/book/YOUR-SLUG
  1. Customers see a 'Book an appointment' form with these fields:
  2. Service needed — dropdown with your job types (required)
  3. Your name — text input (required)
  4. Phone — tel input (optional)
  5. Email — email input (required)
  6. Service address — autocomplete address field (optional)
  7. Preferred date / time — text input, e.g., 'Next Tue morning' (optional)
  8. Anything we should know? — text area for notes (optional)
  9. Request appointment — submit button

What to enter

  • Service needed — must pick from your job types
  • Your name — e.g., Jane Doe
  • Phone — formatted as (555) 123-4567 or similar
  • Email — must be a valid email
  • Service address — autocomplete helps with address lookup
  • Preferred date / time — free-form text, e.g., 'Tomorrow afternoon', '2 PM', 'Next week'
  • Anything we should know? — describe the problem, ask questions, etc.

Tips

  • Phone, service address, preferred time, and notes are optional — customers can submit with just name, email, and service.
  • The address autocomplete uses Google Maps; customers just start typing.
  • Preferred time is free-form text, not a date picker — customers can write naturally like 'weekend' or 'ASAP'.
  • All bookings create an unscheduled job in your system; you can approve, reschedule, or estimate from there.

Watch out

  • Email is required; without it, you can't follow up with the customer.
  • The form doesn't accept attachments (e.g., photos of the problem) — only text in the notes field.
  • After submission, customers see a success message; they're redirected back to the form to book again or use the chat.
9

Step 9: Use the AI Receptionist to Book by Chat

book.servtide.app/book/YOUR-SLUG (bottom section, 'Book by chat')
  1. Below the booking form, customers see a chat widget titled 'Book by chat' with a message from your AI assistant
  2. The assistant introduces itself: 'Hi! I'm the [Your Company] booking assistant. Tell me your name, phone number, and what you need — I'll get you scheduled.'
  3. Customers type their request naturally, e.g., 'Hi, I need HVAC maintenance next Tuesday afternoon, my name is John'
  4. The AI extracts their details (name, phone, service, date) from the conversation
  5. Once it has name, phone, and service, it offers to book. Customer types confirmation, e.g., 'Yes, book it'
  6. A success message appears: 'Booked — reference #[JOB-NUMBER]'. The booking is live in your system.

What to enter

  • Chat input — free-form text, no special formatting required
  • Message history — scrollable conversation log showing the assistant's replies

Tips

  • The AI is conversational and forgiving — customers don't need to know the exact job-type name, just describe the problem.
  • If the AI is unsure, it asks follow-up questions: 'Can I get your phone number?' or 'What service do you need?'
  • The chat is live when your organization has an API key configured; without it, a simpler fallback version guides customers step-by-step.
  • Customers can still use the form above the chat if they prefer not to chat.
  • The booking reference is immediately shown to the customer; they can use it to track the job later.

Watch out

  • Phone number is required to book (the AI won't confirm without it).
  • The AI doesn't set an appointment time — it only collects the customer's preferred time as a note. You still need to call/email to confirm the exact time.
  • If the chat interface isn't loading, check that JavaScript is enabled in the customer's browser and there are no network errors.
  • Rate limiting: 30 messages per session per minute, 1200 global messages per minute.
10

Step 10: Create Customer Records from Bookings

Your dashboard (after customers submit bookings)
  1. When a customer submits a booking (form or chat), Servtide automatically creates a new customer and an unscheduled job.
  2. Go to Customers or Jobs in your dashboard to see the new record.
  3. The customer record includes their name, email, phone, and service address from the booking.
  4. The job record shows the service type, preferred time, and notes.
  5. You can now schedule the job, create an estimate, send a quote, or invoice the customer.

Tips

  • If the same customer books again, they're recognized by email and added to the same customer record.
  • Bookings are marked with source = 'online_booking' so you can report on online vs. phone bookings.
  • The customer's email and phone are optional but recommended — you'll use them to send estimates, invoices, and portal links.

Watch out

  • If a customer provides a wrong email, you'll have trouble following up. You can edit the customer record to fix it.
  • Duplicate customers (same email, slightly different name) are not auto-merged. Check Customers periodically and merge manually if needed.
11

Step 11: Send Customer Portal Links to Customers

Customers page → select a customer → portal link
  1. Go to Customers and find or create a customer record (e.g., from a booking).
  2. Click the customer's name to open their profile.
  3. Look for a 'Portal link' button or section. Click to generate (or view existing) link.
  4. The link looks like: portal.servtide.app/portal/[64-char-token]
  5. Copy and send this link to the customer via email or SMS.
  6. Customer clicks the link (no login required) and sees their jobs, estimates, and invoices in one place.

What to enter

  • Portal link — long, unique token; keep this private (it's a capability URL, so treat it like a password)

Tips

  • Each customer gets a unique, permanent token. You only generate it once; subsequent visits use the same link.
  • Include the link in estimates and invoices so customers can see their full account.
  • The portal is mobile-friendly and requires no login — very customer-friendly.
  • You can resend this link anytime; it never expires.

Watch out

  • If you share the link with the wrong person, they can see that customer's jobs, estimates, and invoices. Handle it like a password.
  • The link is not a login — it's a capability URL that directly opens that customer's portal. Anyone with the URL can access it.
  • Customers can't sign up for a password-protected account; the link access is the only way to view their account online.
12

Step 12: Customer Portal — What Customers See

portal.servtide.app/portal/[TOKEN] (customer-facing)
  1. Customer visits their portal link.
  2. They see a welcome header: 'Welcome back, [Name]'
  3. Below, they see three cards:
  4. Your estimates — list of estimates sent to them with status (sent, approved, declined) and a 'Review' button if pending approval
  5. Your invoices — list of invoices with balance due and a 'Pay' button if not fully paid
  6. Service history — list of past jobs with their status (unscheduled, scheduled, complete, etc.)
  7. Customer clicks 'Review' on an estimate to approve it, 'Pay' on an invoice to make a payment, or views past jobs for reference.

Tips

  • Customers can see their full history without logging in — fast and convenient.
  • The portal is branded with your logo, name, and colors.
  • Estimates show status badges (Sent, Approved, Declined) so customers know what they've done.
  • Invoices show the total and balance due; they can see payment status at a glance.

Watch out

  • Customer can't message you directly from the portal; they'd need to reply to an email or call.
  • The portal is read-only — customers can't edit their address or contact info. They'd contact you to change details.
  • If a customer loses the portal link, you'll need to resend it; there's no 'forgot password' option.
13

Step 13: Estimates — Approval & Signing

Estimates → click 'Send' → customer receives link → approve/[TOKEN]
  1. You create an estimate in your back office (Estimates page).
  2. Add line items, options (good/better/best), and pricing.
  3. Click 'Send estimate' — Servtide generates a unique approval link and emails it to the customer.
  4. Customer clicks the link → approval.servtide.app/approve/[TOKEN]
  5. They see the estimate with multiple options (if you created them) and pricing for each.
  6. To approve, customer types their full name as their electronic signature and clicks 'Approve this option'.
  7. Estimate status changes to 'approved' and you're notified.
  8. Customer can also click 'Decline estimate' to reject the quote.

What to enter

  • Customer name (for signature) — customer types their name when approving
  • Estimate number — auto-generated, e.g., E-1000
  • Option name — e.g., 'Basic', 'Standard', 'Premium'
  • Option total — sum of items in that option
  • Status — sent, approved, declined

Tips

  • Multiple options let customers compare prices (good/better/best approach).
  • The approval link is public — no login. Anyone with the URL can approve; it's a capability URL.
  • Typing a name counts as an electronic signature; no need for pen-and-paper or DocuSign.
  • Once approved, the estimate can't be unapproved. You can only decline or re-send.

Watch out

  • The approval page shows the estimate as sent/approved/declined — a customer seeing an already-approved estimate can't change their choice.
  • If you send multiple estimates to the same customer, each has its own link. Make sure the customer approves the right one.
  • There's no 'request revision' flow — if the customer asks for a price change, you'd create a new estimate.
14

Step 14: Invoices — Payment & Signing

Invoices → click 'Send' → customer receives link → pay/[TOKEN]
  1. You create an invoice in your back office (Invoices page).
  2. Add line items, tax, and click 'Send invoice' — Servtide emails the payment link to the customer.
  3. Customer clicks the link → pay.servtide.app/pay/[TOKEN]
  4. They see the invoice with itemized charges, subtotal, tax, and total amount due.
  5. If you've set up payment processing (Stripe or Moneris), they click 'Pay [amount] by card' and enter their card details.
  6. Payment is processed and the invoice status changes to 'paid'.
  7. Below the payment form, there's a 'Sign' section where the customer can type their name to confirm job completion (optional).
  8. If the invoice is over $500, a 'Or pay over time' financing option appears (optional, requires API integration).

What to enter

  • Invoice number — auto-generated, e.g., INV-1000
  • Total amount — sum of items, tax, subtotal
  • Balance due — total minus any partial payments
  • Status — sent, partial, paid, overdue
  • Customer name (for signature) — customer types their name to sign

Tips

  • If you don't have payment processing configured, customers see a 'Demo mode' message; payments are simulated (no real charge).
  • Payment links are public and use capability URLs (no login required).
  • Customers can pay partial amounts; the invoice shows 'partial' status and remaining balance.
  • Financing (pay-over-time) is optional and requires extra setup; it appears only for invoices over $500.
  • The 'Sign' section is optional — customers don't have to sign, but it's a simple way to confirm job completion.

Watch out

  • If payment processing isn't enabled, you'll see 'Demo mode' and no real payments are taken. Set up Stripe or Moneris in Settings → Payments to accept real card payments.
  • Card details are never stored by Servtide — they go directly to Stripe or Moneris for PCI compliance.
  • A customer who forgets to pay will see 'overdue' status in your system. Send a reminder email manually or via an automation rule.
15

Step 15: Configure Payment Processing (Optional but Highly Recommended)

Settings → Payments
  1. Go to Settings → Payments.
  2. You'll see two options: Stripe (credit/debit cards) or Moneris (Canadian gateway, more payment methods).
  3. For Stripe: Click 'Connect with Stripe'. You'll be directed to Stripe's site to log in or create an account. Grant Servtide permission to process payments on your behalf. After approval, you're redirected back with a connected account.
  4. For Moneris: Enter your Store ID, Checkout ID, and API Token (from your Moneris account). Check the 'Enabled' box and click 'Save'. You can test the connection with 'Test connection' button.
  5. Once connected, customers will see a real 'Pay [amount] by card' button on invoice pages instead of 'Demo mode'.

What to enter

  • For Stripe: OAuth connection (no manual entry needed)
  • For Moneris: Store ID (6-8 digits), Checkout ID (alphanumeric), API Token (encrypted, never shown again), Environment (QA or Prod)

Tips

  • Stripe is the easiest setup — just click 'Connect'. Moneris requires manual API credentials.
  • Both are PCI-Level 1 compliant, so card data never touches your servers.
  • You can switch between Stripe and Moneris or use both (though only one is active at a time).
  • Test mode in both platforms lets you verify payments without real charges.
  • Servtide charges a percentage + per-transaction fee on every payment (see pricing page for rates).

Watch out

  • You must have a Stripe or Moneris account before connecting. Sign up free at stripe.com or moneris.com.
  • Test transactions use test card numbers (e.g., Stripe's 4242 4242 4242 4242). Real payments require live credentials.
  • If you have both Stripe and Moneris enabled, only one will be used for invoices. Check Settings → Payments to see which is active.
  • Refunds must be issued from your Stripe/Moneris dashboard, not from Servtide.
16

Step 16: Webhook Integration (Optional) — Notify External Systems

Settings → Webhooks (or contact support for setup)
  1. Servtide sends webhook events when bookings, jobs, or estimates are created/updated.
  2. Go to Settings → Webhooks to view and configure (if enabled on your plan).
  3. Typical integrations: send booking data to your CRM, notify Slack when a booking arrives, or sync jobs to accounting software.
  4. Each webhook event has a JSON payload with job number, customer details, service type, and source (online_booking, ai_web, ai_sms).
  5. You can use Zapier, Make, or a custom API to forward webhooks to other apps.

What to enter

  • Webhook URL — where Servtide sends the event (your backend API endpoint)
  • Event type — booking.created, job.created, estimate.sent, etc.
  • Payload — JSON with job, customer, and org details

Tips

  • Webhook payloads include the job number so you can tie it back to your system.
  • Events are sent in real-time; no polling needed.
  • You can test webhooks in the UI by sending a sample event.
  • Webhooks are only available on Pro and Business plans; Starter plans don't support webhooks.

Watch out

  • If your webhook endpoint is down, Servtide retries for 24 hours. Reconnect your endpoint to resume delivery.
  • Webhook payloads are not encrypted in transit — use HTTPS endpoints and validate the request signature.
17

Step 17: AI Receptionist SMS & Voice (Optional, Advanced)

Requires API integration (contact support for details)
  1. The AI receptionist can also handle SMS and voice calls, not just web chat.
  2. SMS: Customers text a phone number (you'll get a dedicated number from Twilio) with their booking request. The AI responds conversationally and books them.
  3. Voice: Customers call the same number and speak to the AI. Same flow as SMS.
  4. This requires SMS/voice provider setup (Twilio, etc.) and is not default. Contact Servtide support to enable.
  5. Once enabled, customers can book via web, chat, SMS, or voice — all feeding into your jobs list.

Tips

  • SMS and voice save customer service time — customers don't wait on hold.
  • The AI can book without human intervention if the booking is straightforward.
  • All channels (web, chat, SMS, voice) log bookings with source tags so you can track which channel drives conversions.

Watch out

  • SMS and voice are premium features requiring provider setup. Not included in Starter plan.
  • The AI is less effective on voice (speech recognition errors are more common than text).
  • Each SMS/voice interaction counts toward rate limits (30 messages/min per session, 1200 global/min).
18

Step 18: Troubleshooting & Best Practices

General tips for daily use
  1. Booking form not showing: Check your booking URL spelling (book.servtide.app/book/YOUR-SLUG). If you misspelled the slug during signup, contact support.
  2. Customer doesn't see estimate/invoice: Verify you clicked 'Send' and the email was delivered. Check the customer's spam folder. Resend the link if needed.
  3. Payment page shows 'Demo mode': You haven't connected Stripe or Moneris yet. Go to Settings → Payments and set up one of them.
  4. AI receptionist not responding: Ensure JavaScript is enabled. Check for network errors in the browser console. If it persists, contact support.
  5. Customer gets wrong contact after booking: Review the booking and fix the customer record (name, email, phone) before sending an estimate.

Tips

  • Brand your pages early (logo, colors, name) so customers see your company, not a generic Servtide form.
  • Share your booking link prominently: website, Google Business, email signature, business cards.
  • Send estimates within 24 hours of a booking to maximize approval rates.
  • Enable automation rules (Settings → Automations) to send appointment reminders and follow-ups automatically.
  • Monitor the 'Book by chat' transcripts to understand what customers are asking for; refine your service descriptions or job types accordingly.

Watch out

  • Changing your slug after signup is not possible. Choose carefully during sign-up.
  • Deleting a customer also deletes their jobs, estimates, and invoices. Archive instead if you need to hide them.
  • The portal link is a capability URL — anyone with it can see that customer's account. Handle it like a password.
  • Rate limiting on bookings (5 per email per hour) can block spam but also legitimate bulk requests. Contact support if a customer needs more than 5 bookings in an hour.

Done when

  • Sign up with business name and unique URL slug
  • Brand your pages (logo, colors, company name) in Settings → Branding
  • Verify your email sending domain (optional, recommended for email deliverability)
  • Share your booking link (book.servtide.app/book/YOUR-SLUG) on your website and marketing channels
  • Test the booking form and AI chat as a customer
  • Create a customer from a test booking to verify the flow
  • Send a test estimate and have a team member approve it
  • Configure payment processing (Stripe or Moneris) in Settings → Payments
  • Test a payment on a test invoice
  • Automate follow-ups (Settings → Automations) for appointment reminders and reviews
  • Monitor bookings and respond within 24 hours to convert them to scheduled jobs