Sam's Cab is a premium premium shuttle service connecting people to events across the LA and USC corridor. This SOP covers the digital infrastructure that runs the business โ the public website, the staff portal, and all connected tools and integrations.
This is a living document. When something changes โ a new password, a new process, a new tool โ update this file and re-upload it to Netlify so the team always has the current version.
๐
Key Principle
When in doubt, check this document first. If the answer isn't here, update it once you find out so the next person doesn't have to ask.
Sam's Cab runs on a collection of tools that work together. Here's a plain-language overview of what each one does and why it's there.
| Tool | What It Does | Who Manages It |
| Netlify | Hosts the public website and all staff pages. Every time you upload HTML files, they go live instantly. | Marques |
| GoDaddy | Owns the domain name (e.g. samscab.com). Points it to Netlify. Only touched once during setup. | Marques |
| Google Sheets | Shared spreadsheet where all booking and venue inquiry data lives. The booking dashboard reads from and writes to this. | Marques |
| Zapier | Automation tool. Watches for new website form submissions and automatically adds them to Google Sheets. No manual data entry needed. | Marques |
| Claude API | The AI engine behind the Event Intelligence tracker. When staff clicks Search All Sources, it calls Claude in real time to find upcoming events at all venues. | Anthropic (automatic) |
| Google Calendar | Used for confirmed bookings. The dashboard generates a pre-filled calendar link staff can click to add rides and meetings in one tap. | Each staff member |
โ ๏ธ
Security Note
Update the staff password in this document whenever it changes. Never share passwords via text or email โ share this document directly with new staff members instead.
| Page / Tool | URL | Access Code |
| Staff Portal | samscab.com/staff | samscab2025 |
| Event Intelligence | samscab.com/events | Same as above |
| Booking Dashboard | samscab.com/bookings | Same as above |
| Netlify | app.netlify.com | Marques's account |
| Google Sheets | Via Google Drive | Marques's Google account |
| Zapier | zapier.com | Marques's account |
| GoDaddy | godaddy.com | Marques's account |
The Sam's Cab public website has four pages, each with a specific purpose. All four are HTML files hosted on Netlify.
| Page | File | Purpose |
| Home | index.html | Landing page. Tells the story, directs riders and venues to the right place. |
| Book a Ride | riders.html | Rider-facing page with ride options, venues, and the booking form. |
| Venue Partners | venues.html | B2B page for venue managers and event organizers to submit partnership inquiries. |
| Our Story | about.html | Sam's story, the brand mission, and the Sam's Gifts tease. |
โน๏ธ
Note
The staff pages (staff.html, events.html, bookings.html, sop.html) are also hosted on Netlify but are not linked from the public site. They are hidden from Google and only accessible if you know the URL.
For small text changes โ contact info, phone numbers, venue names, copy updates โ you can edit the HTML files directly using a text editor. For larger design or layout changes, work with your web developer or return to Claude (the AI tool used to build the site).
Small Text Changes (DIY)
1
Open the HTML file
On a laptop, right-click the HTML file โ Open With โ TextEdit (Mac) or Notepad (Windows).
2
Use Find & Replace
Press Cmd+H (Mac) or Ctrl+H (Windows). Type the old text in the Find field, the new text in Replace, and click Replace All.
3
Save the file
Press Cmd+S (Mac) or Ctrl+S (Windows). The file is ready to upload.
4
Upload to Netlify
Follow Section 03 to redeploy. The change goes live in about 10 seconds.
Updating Contact Information
Search for the placeholder values below and replace with real information:
| Search For | Replace With | Pages |
(323) 555 โ 0SAM | Real phone number | riders.html, venues.html |
@SamsCabLA | Real Instagram handle | riders.html, venues.html |
samscab2025 | New staff password | staff.html, events.html, bookings.html |
Netlify is where the website lives. Every time you make a change to any HTML file, you re-upload it to Netlify and the live site updates within seconds.
How to Redeploy
1
Go to app.netlify.com
Log in with Marques's account and find the Sam's Cab site.
2
Click the Deploys tab
You'll see the deployment history and a drag-and-drop upload area.
3
Drag all HTML files onto the deploy area
Always upload all 8 files together โ index.html, riders.html, venues.html, about.html, staff.html, events.html, bookings.html, sop.html. Never upload just one file.
4
Wait ~10 seconds
Netlify will show a green "Published" badge when the new version is live.
โ ๏ธ
Important
Always upload all files at once. If you upload only one file, Netlify will remove all the others and the site will break. Select all 8 HTML files together before dragging.
Connecting the GoDaddy Domain
This is a one-time setup. Once done, samscab.com points to Netlify permanently and never needs to be touched again.
1
In Netlify โ Add Custom Domain
Go to Site Settings โ Domain Management โ Add Custom Domain. Type in your GoDaddy domain.
2
Copy Netlify's nameservers
Netlify will give you two nameserver addresses. Copy them โ they look like dns1.p01.nsone.net
3
Update GoDaddy nameservers
Log into GoDaddy โ My Domains โ Manage DNS โ Nameservers โ Change. Paste in Netlify's nameservers and save.
4
Wait up to 48 hours
DNS changes can take time to propagate. Usually under an hour but can take up to 2 days.
5
Enable HTTPS in Netlify
Once the domain is connected, click Verify DNS Configuration then Provision Certificate. This makes the site secure (https://) for free.
The Staff Portal is the internal home base for the Sam's Cab team. It is not linked from the public website and does not appear in Google search results.
URL: samscab.com/staff ยท Password: samscab2025
What's on the Portal
| Section | What It Contains |
| Mission & Vision | The company mission, vision, and standard โ visible on the dark right panel of the portal hero. |
| Staff Tools | Links to Event Intelligence and Booking Dashboard. |
| Marketing Materials | Links to the 90-Day Launch Plan, public website, and coming-soon materials (business cards, flyer, one-pager). |
Adding Marketing Materials
When new materials are ready (business cards, flyers, venue one-pager), add them to the portal by uploading the files to Google Drive and updating the links in staff.html. Search for Coming Soon in the file and replace with the Google Drive share link.
๐ก
Best Practice
Use Google Drive for all marketing materials. Upload the file to Drive, set sharing to Anyone with the link โ Viewer, copy the link, and paste it into staff.html. When you update a file in Drive, the link stays the same โ no website changes needed.
The Event Intelligence Tracker is a live AI-powered tool that finds upcoming events at all Sam's Cab venues. It helps staff plan staffing, anticipate demand, and stay ahead of the event calendar.
URL: samscab.com/events ยท Password: samscab2025
First Time Setup
1
Delete the demo events
The tracker comes pre-loaded with 24 sample events for demonstration. Delete them all before starting real use. Use the delete button on each card or the clear all option.
2
Click "Search All Sources"
This triggers a live AI search across all Sam's Cab venues โ Crypto.com Arena, BMO Stadium, The Coliseum, LA Convention Center, Exposition Park Museums, and USC Campus.
3
Review results and import
The search panel shows upcoming events found. Click "+ Import NEW Events" to add relevant ones to your tracker.
4
Events save automatically
Anything imported saves to the browser automatically. It will be there next time you open the page on the same browser and device.
Weekly Workflow
1
Check the "Last Searched" timestamp
Visible in the top header bar. If it shows amber or says "Not searched in X days" โ it's time to refresh.
2
Click "Search All Sources"
Runs a fresh AI search. Takes 10โ20 seconds. New events will be flagged as NEW in the results.
3
Import new events
Click "+ Import NEW Events" to add them. The tracker automatically avoids duplicates.
4
Use the AI Assistant for planning
Type questions in the AI Assistant panel โ "How many carts do I need next weekend?" or "Which events have the highest demand this month?" The AI reads your event calendar and responds with specific recommendations.
5
Export to Calendar
Use the ๐
Export Calendar button to export selected events as a .ics file. Import it into Google Calendar or Apple Calendar so the whole team sees the schedule.
Understanding Demand Levels
| Level | What It Means | Action |
| High | Major event, large attendance expected. Crypto.com sellout, USC graduation, etc. | Ensure maximum availability. Pre-book as many rides as possible before the event. |
| Medium | Regular event, moderate attendance. | Standard staffing. Monitor bookings as the date approaches. |
| Low | Smaller event or museum visit. | Normal operations. No special preparation needed. |
โ ๏ธ
Storage Limitation
Event data saves to the browser on the device used. Clearing your browser history will erase saved events. If you switch devices, you'll need to search and import again. A shared Google Sheets integration for events is a future upgrade.
All rider bookings and payments are managed through Square Appointments. Access the Square dashboard from the Bookings link in the staff portal nav. Venue inquiries are managed separately via Gmail โ once a venue partnership is confirmed it can be added as a service in Square.
URL: samscab.com/bookings ยท Password: samscab2025
Rider Booking Workflow
Rider bookings come in two ways โ through the website form or by phone. Both end up in the dashboard.
1
Receive the inquiry
Website form submissions arrive via email (once Netlify Forms is connected). Phone inquiries come directly to Marques.
2
Log it in the dashboard
Click "+ Add Booking". Fill in the fields in the same order as the email โ First Name, Last Name, Phone, Passengers, Ride Type, Venue, Service, Date, Pickup Time, Details. Status defaults to Inquiry.
3
Confirm with the rider
Call or text to confirm the booking. Once confirmed, change status to Booked using the dropdown in the log row.
4
Add to Google Calendar
Once status is set to Booked, a green ๐
Add button appears in that row. Click it โ Google Calendar opens pre-filled with all ride details. Click Save.
5
After the ride
Change status to Completed. If it didn't happen, change to Cancelled.
Rider Booking Status Guide
| Status | Meaning | When to Use |
| Inquiry | Request received, not yet confirmed | Default when logging any new request |
| Booked | Confirmed โ rider contacted, time set | After calling and confirming |
| Completed | Ride delivered successfully | After the ride happens |
| Cancelled | Booking didn't proceed | If rider cancels or no-shows |
Venue Inquiry Workflow
1
Receive the inquiry
Venue inquiries come via the website form (email) or direct outreach. Log it immediately so nothing falls through the cracks.
2
Log in the Venue Inquiries tab
Click the Venue Inquiries tab then "+ Add Inquiry". Fill in contact details, org type, partnership type, and estimated guests. Status defaults to New.
3
Progress through statuses
Update the status as the conversation moves forward. When In Discussion or Contracted, the ๐
Add calendar button appears for scheduling meetings.
Venue Inquiry Status Guide
| Status | Meaning |
| New | Just came in โ not yet responded to |
| In Discussion | Active conversation in progress |
| Proposal Sent | Pricing/terms sent, awaiting response |
| Contracted | Agreement signed โ active partner |
| Declined | Did not proceed |
Google Sheets is the shared data layer for the booking dashboard. Once connected, all booking data is visible to the whole team from any device โ not just the browser it was entered on.
1
Create the spreadsheet
Go to sheet.new in your browser. Name the sheet Sam's Cab Bookings.
2
Add two tabs
At the bottom of the sheet, create two tabs: Rider Bookings and Venue Inquiries.
3
Add column headers โ Rider Bookings tab
Row 1: Date, First Name, Last Name, Phone, Passengers, Ride Type, Venue, Service, Pickup Time, Details, Status, Timestamp
4
Add column headers โ Venue Inquiries tab
Row 1: Contact Name, Organization, Title, Phone, Email, Org Type, Partnership Type, Est. Guests, First Date, Frequency, Notes, Status, Timestamp
5
Share the sheet
Click Share โ Anyone with the link โ Editor. This allows the booking dashboard to read and write to it.
6
Copy the Sheet ID
From the URL bar, copy the long string between /d/ and /edit. Example: 1BxiMVs0XRA5nFMdKvBdBZjgm...
7
Connect in the Dashboard
Open samscab.com/bookings โ click "Connect Google Sheets" โ paste the Sheet ID โ Save. Do this once on each device the team uses.
Zapier connects the public website booking forms to Google Sheets automatically. When a rider or venue fills out a form on the website, Zapier catches the submission and adds it as a new row in the correct Google Sheet tab โ no manual data entry needed.
โก
How the Automation Works
Rider fills out form โ Netlify captures submission โ Zapier detects it โ New row added to Google Sheets โ Staff opens dashboard and sees it already there. Staff only needs to log the status updates and phone call inquiries manually.
Setting Up Zapier
1
Create a free Zapier account
Go to zapier.com and sign up. The free tier supports up to 100 tasks per month which is plenty to start.
2
Create first Zap โ Rider Bookings
Trigger: Netlify โ New Form Submission โ select your site โ select the rider booking form. Action: Google Sheets โ Create Spreadsheet Row โ select Sam's Cab Bookings โ Rider Bookings tab โ map each form field to the matching column.
3
Create second Zap โ Venue Inquiries
Same process. Trigger: Netlify โ New Form Submission โ venue inquiry form. Action: Google Sheets โ Create Spreadsheet Row โ Venue Inquiries tab โ map fields.
4
Enable Netlify Forms first
Before Zapier works, the forms on the public website need the Netlify Forms attribute added. Add data-netlify="true" to each form tag in riders.html and venues.html, then redeploy.
5
Test with a real submission
Fill out the public booking form as a test. Within a minute, the row should appear in Google Sheets and show up in the booking dashboard when you refresh.
โน๏ธ
Phone Call Bookings
Zapier only handles form submissions. For inquiries that come in by phone or text, staff still manually clicks "+ Add Booking" in the dashboard. This is by design โ not everything comes through the website.
The booking dashboard generates a one-click Google Calendar link for confirmed bookings and active venue partnerships. No API setup needed โ it works automatically.
For Rider Bookings
Once a rider booking status is set to Booked or Completed, a green ๐
Add button appears in the Calendar column of that row. Clicking it opens Google Calendar in a new tab with all ride details pre-filled โ rider name, venue, pickup time, passengers, ride type. Staff just clicks Save.
For Venue Inquiries
Once a venue inquiry is set to In Discussion or Contracted, a purple ๐
Add button appears. Clicking it opens Google Calendar pre-filled with the partner meeting details โ contact name, organization, and notes.
๐ก
Best Practice
Add all confirmed bookings to a shared Sam's Cab Operations Google Calendar that all staff members can see. This way everyone knows what rides are scheduled without having to check the dashboard individually.
You'll hear the word "API" used throughout these systems. Here's what it means in plain language and how it applies to Sam's Cab.
What is an API?
An API (Application Programming Interface) is a way for two pieces of software to talk to each other. Think of it like a waiter at a restaurant โ you tell the waiter what you want, the waiter goes to the kitchen, and comes back with your order. You never go into the kitchen yourself.
In Sam's Cab, APIs are used in two places:
| API | What It Does for Sam's Cab | When It's Called |
| Claude API (Anthropic) | Powers the Event Intelligence search. When staff clicks "Search All Sources," the app sends a request to Claude asking it to find upcoming events at all venues. Claude searches the web in real time and returns the results. | Every time staff clicks Search All Sources or asks the AI Assistant a question |
| Google Sheets API | Allows the booking dashboard to read and write data to and from the Google Sheet. When staff adds a booking, it appears in Sheets. When staff opens the dashboard, it reads from Sheets. | Every time the dashboard loads or a booking is added/updated |
What Automation Is Built In
| Automation | What Happens | Status |
| Event Search | Claude API searches all venue sources in real time when triggered by staff. Not automatic โ requires a manual click. | Live |
| AI Staffing Assistant | Claude API analyzes the event calendar and answers staffing questions in natural language. | Live |
| Last Searched Timestamp | Tracks when staff last ran a search and displays a color-coded reminder if it's been too long. | Live |
| Calendar Export | One-click Google Calendar link generated automatically when a booking is confirmed. | Live |
| Form โ Google Sheets | Zapier automatically adds website form submissions to Google Sheets. Requires Zapier setup. | Pending Setup |
| Netlify Forms Email | Website forms email Marques on every submission. Requires Netlify Forms attribute added to HTML. | Pending Setup |
| Event Sync to Sheets | Sharing event tracker data across all devices via Google Sheets. | Future Upgrade |
๐
API Key Note
The Claude API that powers the Event Intelligence tracker uses an API key that is embedded in the events.html file. This key has usage costs associated with it โ each search uses a small amount of API credits. For normal weekly use this cost is minimal, but avoid running repeated unnecessary searches. If the search ever stops working, the API key may need to be refreshed.
This document is a living file. Every time a process changes, a tool is added, or a password is updated, this SOP should be updated the same day so the team always has accurate information. Here's exactly how to do it.
How to Edit This Document
1
Download sop.html from Netlify or your files
The file is called sop.html. Find it in the same folder as the other Sam's Cab HTML files on your computer.
2
Open in a text editor
Right-click sop.html โ Open With โ TextEdit (Mac) or Notepad (Windows). Do not open in a browser โ open in the text editor so you can see and edit the code.
3
Find the section to update
Use Find & Replace โ press Cmd+F (Mac) or Ctrl+F (Windows). Search for a word or phrase from the section you need to change. This jumps you straight to the right spot in the file.
4
Make your change
Edit the text directly. Be careful not to accidentally delete any HTML tags like <div>, <p>, or </div> โ only edit the visible words between the tags.
5
Update the version number and date
Search for Version 1.0 and update the number. Search for Last Updated and update the date. This tells the team they're reading the current version. Use a simple numbering system โ 1.1 for minor changes, 2.0 for major rewrites.
6
Save the file
Press Cmd+S (Mac) or Ctrl+S (Windows). The file is ready to publish.
Publishing the Updated SOP
1
Go to app.netlify.com
Log in with Marques's account and find the Sam's Cab site.
2
Click the Deploys tab
Find the drag-and-drop deploy area.
3
Upload all 9 files together
Always upload all files at once โ index.html, riders.html, venues.html, about.html, staff.html, events.html, bookings.html, sop.html plus the launch plan. Never upload sop.html alone or Netlify will remove the other pages.
4
Confirm it's live
Wait about 10 seconds for the green "Published" badge. Open samscab.com/sop in a new tab and check the version number and date in the document header to confirm the update is live.
What to Update and When
| Change | Section to Update | How Often |
| Staff password changed | Access & Passwords table (Overview) | Immediately when changed |
| Phone number or social handle updated | Section 02 โ Contact Information table | Immediately when changed |
| New tool or integration added | Technology Stack table + new section if needed | When tool goes live |
| Zapier or Sheets connected | Section 07 and 08 โ update status from Pending to Live | When setup is complete |
| New staff member joins | No edits needed โ just share the URL and password | On onboarding |
| Process changes how a tool works | Relevant section workflow steps | When process changes |
| New marketing material added | Section 04 โ Staff Portal materials | When material is ready |
๐ก
Pro Tip
Keep a copy of all 9 HTML files in a shared Google Drive folder named Sam's Cab Website Files. That way any team member can access the latest versions, make edits, and re-upload to Netlify without needing to track down the files.
๐
Need Bigger Changes?
For layout changes, new sections, or design updates to the SOP or any other page โ return to the Claude conversation where everything was built. The full context is saved there. Describe what you need and the AI will update the files and provide new versions to upload.