Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Multi-tenant agent CRM. Chat preview, leads with form fields, HITL inbox, JSON flows interpreted in-process (nudges via Inngest). WhatsApp via Zernio.
Design: docs/architecture.md (overview), AGENTS.md (for coding agents), docs/agent-runtime.md, docs/agent-flow-as-data.md.
Full walkthrough (Postgres on Mac, Inngest, ngrok / NEXT_PUBLIC_APP_URL): docs/setup.md.
npm install
npx prisma migrate deploy && npx prisma generate && npm run db:seed
npm run dev
Open http://localhost:3000/demo and talk as a customer. Pick the same lead on the left to continue that conversation.
Add to .env and restart npm run dev:
OPENAI_API_KEY=sk-...
OPENAI_CHAT_MODEL=gpt-4o-mini
Gemini/Anthropic still work if those keys are set and OpenAI is not. Without any key, classify/extract use heuristics.
Set zerino_api_key (or ZERNIO_API_KEY) and zerino_sandbox_number (or ZERNIO_SANDBOX_NUMBER). Seed / Channels binds that sandbox number to the dev tenant.
Inbound: POST /api/webhooks/zernio (message.received). The URL must be public HTTPS. Set ZERNIO_WEBHOOK_SECRET (and the same secret on the Zernio webhook) for X-Zernio-Signature - required in production; optional only for local dev.
Outbound replies use the Zernio inbox API once a WhatsApp conversation id is stored from the inbound webhook. Chat preview does not send to WhatsApp.
Inngest is only required for delayed nudges (npx inngest-cli@latest dev). Full behavior: docs/nudges.md.
Nudge timing is NUDGE_AFTER_OVERRIDE or PT1H after the lead’s last message (not after the agent reply). With a second Zernio webhook to production, nudges may run on Inngest Cloud while you watch local :8288 - use one webhook + local stack when debugging, or open the Inngest Cloud dashboard for production.
For local testing, set NUDGE_AFTER_OVERRIDE=PT5M in .env. Talk stages already include a catalog nudge; you do not need to re-seed unless the agent flow was built without one.
Register a second Zernio webhook for ngrok (production webhook can stay - you may get duplicate replies while both are active):
pnpm proxy # set NEXT_PUBLIC_APP_URL from banner, restart pnpm dev
pnpm zernio:webhook:dev
npm test covers flow validation and the interpreter.
pnpm dev # terminal 1
pnpm proxy # terminal 2 - ngrok tunnel, prints NEXT_PUBLIC_APP_URL banner
brew install ngrok/ngrok/ngrokNGROK_AUTHTOKEN=… to .env (dashboard)https://… URL from the banner into NEXT_PUBLIC_APP_URL, restart pnpm dev/admin or /channels from any deviceFor a stable URL across restarts, set NGROK_DOMAIN=your-name.ngrok.app (reserved domain on a paid ngrok plan).
pnpm proxy:stop
pnpm proxy:status
Production on a VPS with your own domain: see nginx/zapidly-ssl.example.conf.