This workflow corresponds to n8n.io template #4603 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "OxmCguByCxCKPcQm",
"name": "Content Summarizer via Webhook (ApyHub)",
"tags": [],
"nodes": [
{
"id": "ee098e2b-3cfa-4c0c-9ad7-caf1fd4abe74",
"name": "Note for Webhook Trigger",
"type": "n8n-nodes-base.stickyNote",
"position": [
-100,
240
],
"parameters": {
"width": 280,
"height": 340,
"content": "This node listens for incoming POST requests. It expects a JSON body with a 'content' property (the text to summarize) and a 'summary_length' (optional, e.g., 'short', 'medium', 'long'). Your 'apy-token' must be provided in the request headers."
},
"typeVersion": 1
},
{
"id": "dca324db-c26d-400a-bab9-e3200f78407c",
"name": "Note for Start Summarization Job",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
240
],
"parameters": {
"color": 2,
"width": 260,
"height": 340,
"content": "This node sends a POST request to ApyHub's summarization API. It passes the 'content' from the webhook body and your 'apy-token' from the headers. It initiates the summarization job and returns a 'job_id'."
},
"typeVersion": 1
},
{
"id": "325504c9-8c6e-4b6a-9479-88bd85ca92a9",
"name": "Note for Get Summarization Result",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
240
],
"parameters": {
"color": 3,
"width": 260,
"height": 340,
"content": "This node polls ApyHub's API using the 'job_id' to check the status of the summarization. Once the status is 'finished', it retrieves the summarized content. This ensures you get the result only when processing is complete."
},
"typeVersion": 1
},
{
"id": "fd5bf412-b7b4-4b36-b1d4-71f2bc2012ce",
"name": "Note for Webhook Response",
"type": "n8n-nodes-base.stickyNote",
"position": [
820,
240
],
"parameters": {
"color": 4,
"height": 340,
"content": "This node sends the final summarized text back to the original caller of the webhook. You can insert other nodes before this to store, share, or further process the summarized content."
},
"typeVersion": 1
},
{
"id": "cbf7a742-47c7-4a9e-8803-36a428097750",
"name": "Start Summarization Job",
"type": "n8n-nodes-base.httpRequest",
"position": [
300,
420
],
"parameters": {
"url": "=https://api.apyhub.com/sharpapi/api/v1/content/summarize",
"method": "POST",
"options": {},
"jsonBody": "={\n \"content\": \"{{ $json.body.content }}\",\n \"summary_length\": \"{{ $json.body.summary_length || 'medium' }}\"\n}",
"sendBody": true,
"jsonHeaders": "={\n \"Content-Type\": \"application/json\",\n \"apy-token\": \"{{ $json.headers['apy-token'] }}\"\n}",
"sendHeaders": true,
"specifyBody": "json",
"specifyHeaders": "json"
},
"typeVersion": 4.2
},
{
"id": "d1fb7874-f72c-4298-a95f-04ea3c75bcc2",
"name": "Receive Content Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-20,
420
],
"parameters": {
"path": "summarize-content",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "5d70b7ab-ff27-4a21-a976-718466b5dd17",
"name": "Respond with Summarized Content",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
900,
420
],
"parameters": {
"options": {},
"respondWith": "allIncomingItems"
},
"typeVersion": 1.2
},
{
"id": "2faf0d84-3195-479c-9843-fbdcedf3d419",
"name": "Get Summarization Result",
"type": "n8n-nodes-base.httpRequest",
"position": [
600,
420
],
"parameters": {
"url": "=https://api.apyhub.com/sharpapi/api/v1/content/summarize/job/status/{{ $json.job_id }}",
"options": {},
"jsonHeaders": "={\n \"Content-Type\": \"application/json\",\n \"apy-token\": \"{{ $('Receive Content Webhook').item.json.headers['apy-token'] }}\"\n}",
"sendHeaders": true,
"specifyHeaders": "json"
},
"typeVersion": 4.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "1fd30d32-1f0c-46fc-9af7-ace9d9190fb2",
"connections": {
"Receive Content Webhook": {
"main": [
[
{
"node": "Start Summarization Job",
"type": "main",
"index": 0
}
]
]
},
"Start Summarization Job": {
"main": [
[
{
"node": "Get Summarization Result",
"type": "main",
"index": 0
}
]
]
},
"Get Summarization Result": {
"main": [
[
{
"node": "Respond with Summarized Content",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n template empowers you to instantly summarize long pieces of text by sending a simple webhook request. By integrating with ApyHub's summarization API, you can distil complex articles, reports, or messages into concise summaries, significantly boosting efficiency across…
Source: https://n8n.io/workflows/4603/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Community Node Disclaimer: This workflow uses KlickTipp community nodes.
Automatically sync Fizzy cards to Basecamp todos in real-time. When cards are created, assigned, completed, or reopened in Fizzy, the changes sync instantly to your Basecamp project. Card tags determi
This workflow automates accounts payable: upload a PDF invoice, let Claude AI extract the key fields, and automatically create a vendor bill (incoming invoice) in Odoo 18.
This n8n workflow automates airline customer support by classifying travel-related questions, fetching relevant information, generating AI answers, and delivering structured responses to users. It ens
This n8n template lets you automatically pull market data for the cryptocurrencies from CoinGecko every hour, calculate custom volatility and market-health metrics, classify each coin’s price action i