Ziel
Nach Gate 2 ruft Peter Presentation Paul auf. Du bekommst einen Gamma-Link zur fertigen Präsentation.
Bausteine
- Ein eigener Workflow Presentation Paul mit dem Trigger When Executed by Another Workflow und den Nodes IF, Code, Gamma, Wait und Edit Fields.
- In PM Peter ein Tool Call n8n Workflow Tool, Name: Call 'Presentation Paul'.
Der Workflow Presentation Paul
Anklicken zum Vergrößern. Oben der Weg für einen neuen Auftrag mit der Warteschleife, unten die reine Status-Abfrage.
Gamma braucht seine Zeit. Damit der Chat nicht zu lange wartet, fragt Paul den Fortschritt höchstens 5-mal im Abstand von 11 Sekunden ab. Ist die Präsentation dann noch nicht fertig, meldet Paul pending mit einer generation_id. Fragst du später „Status?“, ruft Peter Paul erneut auf, nur mit dieser ID.
- Neuer Workflow Presentation Paul mit dem Trigger When Executed by Another Workflow und den drei Eingabefeldern
thema,outline,generation_id(Typ String). Daran zuerst ein IF „Neuer Auftrag?“: Istgeneration_idleer, ist es ein neuer Auftrag, sonst eine Status-Abfrage. - Neuer Auftrag: Code (bereitet die Outline für Gamma vor, siehe Hilfe) → Gamma, Operation Create generation → Wait (11 Sekunden) → Gamma, Operation Get generation status → IF „Noch in Arbeit?“. Ist der Status
pendingund der Durchlauf kleiner als 4, zurück zu Wait. Sonst weiter. - Status-Abfrage: Gamma, Operation Get generation status mit der übergebenen
generation_id. - Beide Zweige enden in einem Edit Fields-Node, der
status,gammaUrl,generation_idunderrorzurückgibt. - Für Gamma ein Credential mit deinem API-Key anlegen (in Gamma unter Settings → My API Keys). Publish klicken.
Hilfe: Code für „Prepare Gamma Input“
Der Code entfernt Pias Marker, trennt den Hinweis für Paul ab und liest die empfohlene Folienanzahl (höchstens 10).
const { thema, outline } = $input.first().json;
let text = String(outline ?? '').replace(/==OUTLINE (START|END)==/g, '').trim();
const [content, ...rest] = text.split(/HINWEIS F[ÜU]R (?:PRESENTATION )?PAUL:?/i);
let hint = rest.join(' ').trim();
const body = content.replace(/^\s*-{3,}\s*/, '').replace(/\s*-{3,}\s*$/, '').trim();
const m = hint.match(/Folienanzahl empfohlen:\s*(\d+)/i);
const numCards = m ? Math.min(Math.max(Number(m[1]), 1), 10) : 8;
hint = hint.replace(/Folienanzahl empfohlen:.*$/im, '').replace(/^\s*-{3,}\s*$/gm, '').trim();
const additionalInstructions = ('Nutze ausschließlich die Inhalte der Outline. Füge keine neuen Zahlen, Fakten oder Quellen hinzu. ' + hint).slice(0, 1900);
return [{ json: { title: thema, inputText: `# ${thema}\n\n${body}`, numCards, additionalInstructions, language: 'de' } }];Im Node Create generation tragen Input Text, Title, Language, Number of Cards und Additional Instructions die entsprechenden Felder aus diesem Code ein.
Paul an Peter anschließen
- In PM Peter am Anschluss Tool den Node Call n8n Workflow Tool hinzufügen. Name: Call 'Presentation Paul'.
- Unter Workflow deinen Workflow Presentation Paul auswählen. Die drei Eingaben
thema,outlineundgeneration_idfüllt das Modell (✦-Symbol). - Eine Beschreibung schreiben: Wann ruft Peter Paul auf, und was braucht er? Zum Beispiel: „Erstellt die fertige Präsentation. Nur nach freigegebener Outline aufrufen. Eingabe: thema und outline. Die generation_id nur bei einer Status-Abfrage setzen.“
Dein Auftrag an Peter: die Ergänzung im Prompt
Ergänze Peters Prompt an drei Stellen. Folge dieser Struktur und fülle die Klammern mit eigenen Worten.
Lade Gerüst …
Mögliche Lösung anzeigen
Der vollständige Prompt von Peter inklusive Schritt 4. Vergleiche vor allem Schritt 4 mit deiner Ergänzung.
Lade Prompt …
Test-Prompts
Führe zuerst die Schritte aus Stufe 4 durch (Analyse, Freigabe, Outline). Dann:
passt, freigegeben
Hat Paul den Gamma-Auftrag gestartet, ist aber noch nicht fertig (Status pending), warte kurz und schreibe:
Status?
So sieht es aus, wenn es klappt
- Peter ruft nach deiner Freigabe Call 'Presentation Paul' auf. Im Log siehst du den Aufruf.
- Peter gibt dir einen Gamma-Link. Dauert Gamma länger, sagt Peter, dass die Präsentation in 1–2 Minuten in deinem Gamma-Konto erscheint. Nach „Status?“ liefert er den Link.
- Peter erfindet keinen Link und meldet Fehler ehrlich.