{
  "name": "Enroutia · Summarise a call or meeting",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "enroutia-meeting-summary",
        "authentication": "headerAuth",
        "responseMode": "responseNode",
        "options": {}
      },
      "name": "Transcript",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        0,
        0
      ],
      "webhookId": "enroutia-meeting-summary",
      "credentials": {
        "httpHeaderAuth": {
          "name": "Workflow caller header"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Meeting: {{ $json.body.title || 'untitled' }}\nParticipants: {{ $json.body.participants || 'not given' }}\n\nTranscript:\n{{ $json.body.transcript }}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "You summarise call and meeting transcripts for people who were not there. Write in the transcript's language. Only record decisions and action items that were actually agreed; an idea someone floated is not a decision. If an owner or a date was not said, use null."
        }
      },
      "name": "Summarise meeting",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        240,
        0
      ]
    },
    {
      "parameters": {
        "model": "auto",
        "options": {
          "temperature": 0.2,
          "maxTokens": 1500,
          "clientTag": "={{ $json.body.client || '' }}"
        }
      },
      "name": "Enroutia Chat Model",
      "type": "n8n-nodes-enroutia.enroutiaChatModel",
      "typeVersion": 1,
      "position": [
        160,
        220
      ],
      "credentials": {
        "enroutiaApi": {
          "name": "Enroutia account"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"summary\": \"Three sentences on what the meeting was about and where it landed.\",\n  \"decisions\": [\n    \"Move the launch to 14 October\"\n  ],\n  \"action_items\": [\n    {\n      \"owner\": \"Marta\",\n      \"task\": \"Send the revised quote\",\n      \"due\": \"2026-10-02\"\n    }\n  ],\n  \"open_questions\": [\n    \"Who signs off the budget?\"\n  ]\n}"
      },
      "name": "Summary JSON",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        360,
        220
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify($json.output) }}",
        "options": {
          "responseCode": 200
        }
      },
      "name": "Answer",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        560,
        0
      ]
    }
  ],
  "connections": {
    "Transcript": {
      "main": [
        [
          {
            "node": "Summarise meeting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarise meeting": {
      "main": [
        [
          {
            "node": "Answer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enroutia Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Summarise meeting",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Summary JSON": {
      "ai_outputParser": [
        [
          {
            "node": "Summarise meeting",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}
