Rezept: Mobile Cockpit — TaskMonkey + n8n
TaskMonkey als mobile, konversationale Schicht über bestehenden n8n-Workflows.
n8n läuft auf eurem Server. Eure Workflows sind Klasse. Aber wann habt ihr zuletzt unterwegs einen n8n-Workflow ausgelöst — vom Handy, mit der Stimme, im Auto? Genau das macht TaskMonkey: TM ist die mobile, konversationale Hülle für eure n8n-Backends. n8n orchestriert weiter wie gewohnt — TM bringt Sprache, iOS-App, Voice und Knowledge Base dazu.
Was TM beisteuert
| Fähigkeit | n8n alleine | n8n + TM |
|---|---|---|
| Workflow-Orchestrierung | ✅ | ✅ (n8n bleibt zuständig) |
| Native iOS-App | ❌ | ✅ |
| Konversation mit persistentem Kontext | ❌ | ✅ |
| Voice-Input unterwegs | ❌ | ✅ |
| Push als interaktiver Dialog | ❌ | ✅ (Roadmap) |
| Knowledge Base / RAG | teilweise | ✅ (built-in) |
n8n bleibt verantwortlich für: Orchestrierung, API-Integration, Persistenz, Multi-Step-Logik. TM übernimmt: Sprache verstehen, Mobile-UX, Voice, Knowledge-Retrieval, Antwort formulieren.
Architektur
iPhone (TaskMonkey iOS-App)
↕ Voice · Chat
TaskMonkey (LLM, Tool-Runner, KB)
↓ Tool-Call (HTTPS-Webhook)
n8n Workflow
↓
Datenquellen (Helpdesk, Time-Tracking, …)
Der Trick: Jedes n8n-Workflow-Webhook wird in TM als ein Tool registriert. Das Modell entscheidet, welches Tool zur User-Frage passt, ruft den Webhook auf und formuliert die Antwort.
Use Case: Zeitbuchung per Voice
Eine Agentur-Mitarbeiterin ist unterwegs. Statt Laptop aufzuklappen:
„Trag mir 30 Minuten auf Projekt Alpha ein, war Bug-Fixing."
TM versteht, ruft logTime auf, n8n schreibt in die Time-Tracking-API, TM bestätigt in der App. Folgefrage — gleiche Session, voller Kontext:
„Was hab ich heute insgesamt auf Alpha?"
1. n8n-Workflow
Ein schlanker Webhook-Workflow, der die Buchung durchreicht:
- Webhook-Node —
POST /webhook/log-time, Header-Auth (z. B.X-TM-Secret) - HTTP-Request-Node — ruft deine Time-Tracking-API mit den Felder aus
{{ $json.body }} - Respond-to-Webhook-Node — gibt
{"ok": true, "total_today_minutes": 270}zurück
Wichtig: Der Response wird vom Modell gelesen und in die Antwort eingebaut. Deshalb lohnt es sich, relevanten Kontext (Tages-Summe, Projekt-Name wie ihn das CRM schreibt) mitzuschicken.
2. API in apis.php
<?php
return [
'apis' => [
'n8n' => [
'base_url' => 'https://n8n.example.com/webhook/',
'headers' => [
'X-TM-Secret' => 'dein-shared-secret',
'Content-Type' => 'application/json',
],
],
],
];
Ein n8n-API-Eintrag reicht für beliebig viele Webhook-Tools — nur der path ändert sich pro Tool.
3. Tool: logTime
tools/time/logTime.php:
<?php
return [
'tools' => [
'logTime' => [
'description' => 'Bucht Arbeitszeit auf ein Projekt. Nutzen wenn der User sagt "Trage X Minuten/Stunden auf Y ein".',
'parameters' => [
'type' => 'object',
'properties' => [
'project' => ['type' => 'string', 'description' => 'Projektname oder -kürzel'],
'minutes' => ['type' => 'integer', 'description' => 'Dauer in Minuten'],
'note' => ['type' => 'string', 'description' => 'Was wurde gemacht'],
],
'required' => ['project', 'minutes'],
],
'api' => 'n8n',
'method' => 'POST',
'path' => 'log-time',
'body' => [
'project' => '{project}',
'minutes' => '{minutes}',
'note' => '{note}',
],
'mapping' => [
'ok' => 'ok',
'total_today_minutes' => 'total_today_minutes',
],
],
],
];
Das Pattern ist immer gleich: ein n8n-Webhook = ein TM-Tool. Weitere Beispiele, die sich analog aufbauen lassen:
getProjectTickets— Helpdesk-Tickets eines Projekts holencreateTimeEntry— Eintrag mit AnhanglistMyTasks— offene Aufgaben des angemeldeten Users
4. Assistant einbinden
assistants/cockpit.php:
<?php
return [
'assistants.cockpit' => [
'name' => 'Mobile Cockpit',
'tools' => [
'logTime',
'getProjectTickets',
'listMyTasks',
],
],
'assistants.cockpit.prompt' => <<<PROMPT
Du bist das mobile Cockpit für unser Agentur-Team. Der User
fragt unterwegs nach Projekten, offenen Tickets oder bucht Zeit.
Ablauf:
- Zeitbuchung: logTime. Bestätige mit gebuchter Dauer und
Tages-Summe auf dem Projekt.
- Ticket-Fragen: getProjectTickets. Fasse in 3-5 Bullets zusammen.
- Offene Aufgaben: listMyTasks.
Kurze, gesprochene Antworten — die App liest sie ggf. vor.
PROMPT,
];
5. Konversation in der App
User (Voice): „Trag mir 30 Minuten auf Projekt Alpha ein, war Bug-Fixing."
TM [ruft logTime(project: "Alpha", minutes: 30, note: "Bug-Fixing")]
TM: Erledigt. 30 Min auf Projekt Alpha gebucht.
Heute insgesamt 4,5 h auf Alpha.
User: „Was sind die offenen Tickets von Projekt Beta?"
TM [ruft getProjectTickets(project: "Beta")]
TM: Drei offene Tickets:
• #212 Login-Bug (hoch)
• #215 Export-PDF leer (mittel)
• #219 E-Mail-Template Anpassung (niedrig)
Screenshots:
- Abb. 1: TM iOS-App mit Voice-Buchungs-Dialog —
./screenshots/tm-n8n-mobile-01.png - Abb. 2: Der zugehörige n8n-Workflow im Editor —
./screenshots/tm-n8n-mobile-02.png
Knowledge Base als Ergänzung
Viele Anfragen brauchen gar keinen Tool-Call: „Wie ist unser Prozess für Change-Requests?" Solche Fragen beantwortet TM aus einer Knowledge Base (interne SOPs, Handbuch, Onboarding-Docs) — ohne dass n8n involviert wird. RAG-Retrieval passiert direkt in TM.
Bonus: Push als Dialog (Roadmap)
Native Push-Notifications für die iOS-App sind in Arbeit. Sobald verfügbar:
Der eigentliche Eye-Opener: n8n triggert (Cron, Webhook, DB-Event) und schickt TM einen Impuls. TM pusht als interaktive Notification aufs iPhone — User tippt drauf, landet im Chat, antwortet per Voice, nächster n8n-Workflow läuft.
Beispiel: Daily-Standup-Push um 9:00 — User diktiert seinen Status, n8n verteilt ihn in Slack.
Heute als Fallback machbar: n8n-Webhook erzeugt einen Chat-Eintrag im Workspace (via TM-Inbox-Endpoint) — der User sieht ihn beim nächsten App-Öffnen und kann direkt antworten. Der Dialog-Teil funktioniert, nur die Echtzeit-Push-Zustellung kommt später.
Abschluss
Genau dieselbe iOS-App plus n8n-Brücke könnt ihr euren Kunden anbieten — als „Mobile-Layer für ihre Automatisierung". n8n bleibt auf eurer Infrastruktur, TM liefert das User-facing Interface.