Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 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.