FigJam Workflow Ingest
Area: IT Workflow: workflows/it/figjam-workflow-ingest.json
Purpose
Sección titulada «Purpose»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).
Trigger
Sección titulada «Trigger»- 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>"}Aggregated digest (input to the LLM)
Sección titulada «Aggregated digest (input to the LLM)»A single item:
{ "source_url": "...", "file_key": "...", "extracted_at": "...", "item_count": 24, "digest": "- [Page A / Section X] (STICKY): ...\n- [Page A] (TEXT): ...\n..."}LLM output (final workflow output)
Sección titulada «LLM output (final workflow output)»A Markdown document with the following sections, in order:
## Title## Goal## Trigger## Inputs## Steps## Outputs## Integrations / Tools## Open questionsThe 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.
Credentials
Sección titulada «Credentials»- Figma: Header Auth (
X-Figma-Token: <PAT>). See credentials/README.md. - OpenAI:
openAiApityped credential.
Open questions
Sección titulada «Open questions»- 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.