Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AI Revenue Operations Agent for Small B2B Businesses
Know what needs attention and act on it faster.
OpsPilot helps the owner or operations lead of a small B2B service business (roughly 2–20 people) see which customers, invoices, tasks and meetings need attention today, prepare the follow-up, and execute it only after explicit human approval, with every step recorded in an audit trail.
• Live dashboard:
• Theme: Productivity & Smart Business
• Data note: all data in the demo is synthetic demonstration data, not real customer or business data.README 전문 보기 ↗AI Revenue Operations Agent for Small B2B Businesses
Know what needs attention and act on it faster.
OpsPilot helps the owner or operations lead of a small B2B service business (roughly 2–20 people) see which customers, invoices, tasks and meetings need attention today, prepare the follow-up, and execute it only after explicit human approval, with every step recorded in an audit trail.
In a small B2B business, customer follow-ups, invoices, tasks, deadlines and meetings live in different places. The operator keeps repeating the same loop by hand:
Things slip: a lead goes quiet, an invoice stays unpaid, a follow-up is sent twice or not at all.
OpsPilot turns that loop into a single, explainable flow:
Operational Data → Analysis → Prioritization → Recommendation
→ Human Approval → External Action → Audit Trail
It is made of two cooperating parts:
| Part | What it does | Where it lives |
|---|---|---|
| OpsPilot Dashboard | Operational visibility, priority monitoring, decision support, action lifecycle and audit history. Read-only: it never sends email or creates calendar events. | This repository (Next.js on Vercel) |
| OpsPilot Agent | Analyses the data, verifies entity context, recommends actions, prepares Gmail drafts, and runs approved actions through separate execution tools. | IBM Bob + MCP + Langflow (configured outside this repository) |
Handle INV-017.SEND INV-017, CREATE TASK-025). IBM Bob asks for human approval before the separate execution tool runs.action_log. The dashboard then shows the item as Executed, together with the evidence.| Page | What it shows |
|---|---|
| Overview | Revenue at risk, attention items, open tasks, active opportunities, revenue-exposure and invoice-state charts, top priorities, recent activity |
| Priorities | Ranked operational queue across invoices, leads, tasks and meetings with deterministic severity, detail drawer and IBM Bob handoff |
| Customers | Account status, last contact, opportunity value, follow-up state and related invoices, tasks and meetings |
| Invoices | Paid/unpaid status, overdue state calculated from the due date, payment exposure, follow-up handoff |
| Tasks & Meetings | Open and overdue tasks, schedule state, meeting readiness, calendar handoff |
| Action Center | Lifecycle of each recommended action: Recommended → Prepared → Executed, plus Approval Required. Derived from the live data and the action_log |
| Activity | Audit trail of drafts, emails, calendar events, recommendations and execution issues, with human approval shown only when it was actually recorded |
Also: responsive layout with a mobile navigation drawer, a manual Refresh data control, and friendly error states.
flowchart TD
subgraph DATA["Data & Audit layer"]
SHEETS["Google Sheets<br/>customers, invoices, tasks, meetings, action_log"]
APPS["Google Apps Script<br/>JSON endpoint"]
SHEETS --> APPS
end
subgraph WEB["Experience layer (read-only)"]
NEXT["OpsPilot Dashboard<br/>Next.js on Vercel"]
end
subgraph AGENT["Agent and reasoning layer"]
BOB["IBM Bob"]
MCP["MCP"]
MAIN["Langflow: opspilot<br/>analyze, verify, recommend, draft"]
BOB --> MCP
MCP --> MAIN
end
subgraph EXEC["Execution and human-control layer"]
APPROVAL{{"IBM Bob<br/>human approval"}}
MAIL["Langflow: opspilot_send_email"]
CAL["Langflow: opspilot_calendar"]
GMAIL["Gmail via Composio"]
GCAL["Google Calendar via Composio"]
APPROVAL --> MAIL
APPROVAL --> CAL
MAIL --> GMAIL
CAL --> GCAL
end
APPS -->|"server-side read"| NEXT
APPS -->|"verified data"| MAIN
NEXT -.->|"copy command, no execution"| BOB
MAIN -->|"prepared action: Gmail draft"| BOB
BOB -->|"explicit SEND or CREATE command"| APPROVAL
MAIL -->|"write result"| APPS
CAL -->|"write result"| APPS
MAIN -->|"write recommendation and draft"| APPS
The dashboard has no path to Gmail, Calendar, Langflow or MCP. It only reads data and copies commands. See docs/architecture.md for the full description.
OpsPilot is designed so that the AI can analyze and recommend, but cannot act consequentially on its own.
opspilot flow can analyse, recommend and create Gmail drafts. It cannot send email or create calendar events. Those actions exist only in two separate MCP tools, opspilot_send_email and opspilot_calendar, for which IBM Bob keeps approval enabled.INV-017) checked against the operational data before it recommends or prepares anything.action_log and shown on the Activity page. Human approval is displayed only when the log actually records it; success is never used to infer approval.Historical test records, including an old malformed failure entry, are intentionally kept visible in the audit log instead of being silently removed.
The Langflow flows and IBM Bob configuration are not stored in this repository. The behaviors listed under the agent and execution layers above are properties of that configuration; the dashboard in this repository only displays their results.
Early, directional validation with 10 respondents (not statistically representative):
| Finding | Result |
|---|---|
| Identified late customer follow-up as a pain point | 8 / 10 |
| Experienced late customer follow-up in the prior 3 months | 6 / 10 |
| Relevant respondents reporting invoice follow-up delay | 5 / 9 |
| Check operations at least twice per day | 8 / 10 |
| Average interest in AI assistance | about 3.8 / 5 (60% rated 4–5) |
| Would allow external AI messaging when rules or approval exist | 9 / 10 |
These numbers are early signals that the problem is real and that approval-gated AI is acceptable to this audience. They are not proof of market size or impact.
Dashboard: Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4, Radix UI primitives with shadcn-style components, Recharts, Framer Motion, Lucide icons. AI / orchestration: IBM Bob, Model Context Protocol (MCP), Langflow. External execution: Composio, Gmail, Google Calendar. Operational data: Google Sheets exposed through Google Apps Script. Deployment: Vercel.
https://opspilot-snowy.vercel.app/
The first request after a quiet period can take several seconds because the Apps Script endpoint is slow on cold requests; later requests are served from a short server-side cache.
Snapshot taken on 2026-10-02 (values change as the data changes):
| Area | Snapshot |
|---|---|
| Revenue at risk | Rp16.5 jt |
| Attention items | 8 |
| Open tasks | 5 |
| Active opportunities | Rp27 jt |
| Action Center | Recommended 5 · Prepared 0 · Executed 6 · Approval Required 3 |
| Activity | 17 records · 7 drafts created · 7 external actions executed · 1 historical execution issue |
Invoice follow-up: INV-017 (overdue, PT Delta Konsultan, Rp5 jt)
INV-017. The drawer shows the overdue context and the command Handle INV-017.Handle INV-017. The agent verifies the invoice and prepares a Gmail draft. Nothing is sent.SEND INV-017. IBM Bob asks for human approval before opspilot_send_email runs.action_log.INV-017 as Executed with its receipt, and Activity shows the draft and the send with the approval evidence.Calendar reminder: TASK-025 (follow up revised proposal, PT Beta Kreatif)
TASK-025.CREATE TASK-025. IBM Bob asks for human approval before opspilot_calendar runs.Because these items are already executed, the dashboard offers no further execution command for them, and the Activity page serves as the evidence.
app/ Routes: overview, priorities, customers, invoices, tasks, actions, activity
components/ UI by feature (overview, priorities, actions, activity, layout, shared, ui)
lib/opspilot/
api.ts Server-side data fetching (cache, timeout, bounded retry, fail-closed)
metrics.ts Deterministic business logic: KPIs, priorities, Action Center lifecycle
activity.ts Audit-log normalization and approval/status labels
dates.ts Asia/Jakarta date helpers
types.ts Domain and view-model types
refresh.ts Server Action that only refreshes cached dashboard data
docs/ Architecture, demo script, screenshot plan, submission copy, demo checklist
npm install
npm run dev
Create .env.local with:
OPSPILOT_DATA_URL=<your Google Apps Script web app /exec URL returning the operational dataset as JSON>
The URL is read on the server only and must never be committed. The endpoint must return a JSON object with the arrays customers, invoices, tasks, meetings and action_log.
Other commands: npm run lint, npm run build, npm run start.
Execution of anything involving money is out of scope; OpsPilot's design keeps a human approving every consequential action.