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.