Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 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.