Ir al contenido

FigJam Workflow Ingest

Area: IT Workflow: workflows/it/figjam-workflow-ingest.json

Reads a FigJam board where the PM places ideas and the bases for a future automation, and returns a well-structured Markdown specification generated by an LLM. The Markdown is the base for engineering to turn the PM’s brainstorm into a concrete workflow.

End-to-end: PM idea on FigJam → structured items → aggregated digest → LLM → workflow spec (Markdown).

  • Type: Form Trigger.
  • Fields:
    • FigJam URL (required) — full board URL.
    • Notes (optional, textarea) — free context for the request.
Node Type Purpose
Form Trigger: Receive FigJam URL n8n-nodes-base.formTrigger Public form entry point.
Code: Extract File Key n8n-nodes-base.code Regex-extracts the Figma file key from /board/, /file/, or /design/ URLs.
HTTP Request: Fetch Figma File n8n-nodes-base.httpRequest GET https://api.figma.com/v1/files/{file_key} with the httpHeaderAuth credential (“Figma Jhosep”).
Code: Extract Stickies And Text n8n-nodes-base.code Walks the document tree, emits one item per sticky / text node.
Code: Aggregate Items n8n-nodes-base.code Collapses N extracted items into a single item with a text digest for the LLM.
OpenAI: Generate Workflow Spec @n8n/n8n-nodes-langchain.openAi Message a Model (gpt-4o-mini) — turns the digest into a structured Markdown spec.

Per-item shape (from Code: Extract Stickies And Text)

Sección titulada «Per-item shape (from Code: Extract Stickies And Text)»
{
"node_id": "1:23",
"type": "STICKY | TEXT | SHAPE_WITH_TEXT | STAMP",
"text": "string",
"page": "Page name",
"section": "Section name | null",
"source_url": "https://www.figma.com/board/...",
"file_key": "string",
"extracted_at": "<ISO-8601 timestamp>"
}

A single item:

{
"source_url": "...",
"file_key": "...",
"extracted_at": "...",
"item_count": 24,
"digest": "- [Page A / Section X] (STICKY): ...\n- [Page A] (TEXT): ...\n..."
}

A Markdown document with the following sections, in order:

## Title
## Goal
## Trigger
## Inputs
## Steps
## Outputs
## Integrations / Tools
## Open questions

The LLM groups related stickies, translates non-English content to English, and produces the Markdown only (no preamble, no surrounding code fences).

  • active: false — activate per-environment.
  • No persistence sink. The Markdown is the workflow output. Persistence (Google Sheets, Notion, file write) is a follow-up decision.

internal.

  • Figma: Header Auth (X-Figma-Token: <PAT>). See credentials/README.md.
  • OpenAI: openAiApi typed credential.
  • Persistence sink for the generated Markdown (Notion page, Google Doc, repo file, downstream workflow trigger?).
  • Should the LLM also produce a JSON skeleton of the workflow alongside the Markdown?
  • Should we capture sticky color / author / position for traceability?
  • De-dup strategy if the same FigJam is re-ingested.