Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Sales CRM for Skyroad Holidays
Translation pending
BusinessTypeScript · CSSGitHub @skyroadholidays-cpuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A private web app that tracks every enquiry from new query → supplier mail → quote → follow-up → booking → payments → travel → completed. It works on Mac, Windows, iPad and phone in any browser, with no installation.
It is built the same way as your Cash Management System (Next.js + Supabase/PostgreSQL + Vercel), but it is a separate site with its own database and its own password.
| Area | What you get |
|---|---|
| Dashboard | 10 stage cards (+ Lost) with counts, open enquiries, new and confirmed this month, conversion %, client balances due, follow-ups due, suppliers keeping you waiting (24 hrs+), departures in the next 30 days, who is travelling now, enquiries vs bookings chart, lead sources, recent activity |
| Pipeline | Kanban board – one column per stage, one card per enquiry, with a "Move to next stage" button |
| New enquiry | Quick add: paste the client's message (e.g. Thailand / 1 dec to 6 Dec / 2 adults / 2N Krabi, 3N Phuket) and press Fill the form. It fills destination, dates, travellers, nights split, hotel category, budget, package and inclusions. It also captures lead source, priority, hotel category, budget, the Tour / Land package (hotel + transfers + full sightseeing) option, inclusions and the follow-up date |
| Enquiry page | Progress stepper with a "next step" hint, trip details, suppliers & quotes side by side (with Gmail / WhatsApp / Copy buttons that open a ready-made standard rate request), your selling price vs the selected supplier's cost = margin, share quote and itinerary link (Canva), confirm booking, client payments with balance due, follow-up, a log for calls and WhatsApps, and a full timeline |
| Follow-ups | Overdue / today / next 7 days / open enquiries with no follow-up. One-tap WhatsApp follow-up or payment-reminder message, and "Done → next date" |
| Suppliers | Your DMCs and hotels with email, WhatsApp, destinations covered, response rate and the enquiries sent to each |
| Reports | Pipeline by stage, lead sources & conversion, destinations (with margin), monthly enquiries vs bookings, lost reasons, client balances due, supplier response times, and the full enquiry register. All export to Excel/CSV or print/PDF |
| Settings | Change password, signed-in devices, full backup download, deleted-enquiry trash with restore, audit trail |
| When you… | The stage becomes |
|---|---|
| record a rate request to a supplier | Supplier mail sent |
| enter a supplier's quoted price | Quote received |
| save your selling price / itinerary as shared | Quote / itinerary shared (and a follow-up is set for 2 days later) |
| log a call / WhatsApp / email with the client after the quote | Follow-up |
| press Confirm booking | Booking confirmed |
| record an advance | Advance received |
| record the final payment (or payments reach the full price) | Final payment received |
| the travel start date arrives | Travelling |
| the travel end date passes | Travel completed |
Stages only move forward automatically. If you delete a payment, the stage steps back to match. A Lost enquiry is never revived automatically; pressing Confirm booking reopens it. You can always correct a stage yourself with Change stage.
You've done this once already for the cash system; these are the same steps with new names.
skyroad-crm, choose region Mumbai (ap-south-1), and set a strong database password (save it in your password manager).db/migrations/001_init.sql and press Run. You should see "Success". It is safe to run again.[YOUR-PASSWORD] with your database password. This is your DATABASE_URL.skyroad-crm → Private → Create.skyroad-crm folder: app, components, db, lib, public, scripts, tests and the files package.json, tsconfig.json, next.config.mjs, vercel.json, README.md, .gitignore, .env.example → Commit changes.skyroad-crm.| Name | Value |
|---|---|
DATABASE_URL | the pooler URI from Step 1 |
SETUP_TOKEN | any long random text, e.g. skyroad-crm-setup-8h3k29dk3 |
crm.skyroadholidays.comcrm.skyroadholidays.com.CNAME, Name crm, Value the copied value. Don't touch any other records.Open https://crm.skyroadholidays.com. You'll see Set your password. Type the SETUP_TOKEN value and your new password (8+ characters). The username is Skyroadholidays. You can change the password any time in Settings.
Check:
https://crm.skyroadholidays.com/api/healthshould say"status":"ok".
Add your suppliers once (Suppliers → Add a supplier) with email, WhatsApp and the destinations they cover. That is what makes the one-click requests work.
Tip: on your phone, open the site and choose Share → Add to Home Screen to get an app icon.
crm schema with row-level security on and public API access revoked.On your computer, in the project folder, with DATABASE_URL in .env.local: npm install then npm run set-password.
npm run dev runs locally (put DATABASE_URL and SETUP_TOKEN in .env.local).npm run db:migrate applies migrations from the command line instead of the SQL Editor.npm test runs against a separate, empty database in TEST_DATABASE_URL: 25 database rule checks plus 21 application tests.The CRM is ready for the automated flow you described ("new q / Thailand / 1–6 Dec / 2 adults / 2N Krabi, 3N Phuket" → Canva itinerary + supplier mail + CRM update). That needs a secure connection so Claude can create and update enquiries for you, plus Gmail access to send and read supplier mail. It will be added as the next step.