Experimental feature. The n8n integration has not yet been fully tested. The administrator enables it deliberately in Settings → Advanced → Other; as long as it's disabled, the n8n tab and this instruction chapter are hidden, and the /api/n8n/* endpoints are inactive. The n8n integration belongs to the Pro plan. In the Standard plan, the "Other" card with its toggle doesn't exist, so the integration can't be enabled.

What is n8n?

n8n is a process automation platform. The Task Manager integration works both ways:

  1. Outgoing webhooks (Task Manager → n8n) - the app sends notifications to your n8n workflow by itself when something happens (a task is created, a status changes, a message is added, a due date is approaching, etc.).
  2. Incoming API (n8n → Task Manager) - n8n can call the app to create tasks, add messages or retrieve data.

Enabling the integration

Click the gear icon (⚙) → the n8n tab. The tab is split into two parts: "Personal automations" - configuration concerning only you, and "Global automations" - system settings shared by all users, visible only to the administrator. For events to be sent, the administrator must switch on "Enable n8n integration" in the global section.

A. Outgoing webhooks - notifications from the app to n8n

Configuration

  1. In the n8n tab, click “New webhook”.
  2. Enter a webhook name and the webhook URL copied from n8n (the Webhook node as the trigger, using the POST method).
  3. Select the events to be sent.
  4. (Optional) set a secret - the app will use it to sign requests (HMAC) so that n8n can verify their authenticity.
  5. Save. You can send a test ping to check the connection.

Available events (selected)

  • Tasks: task.created, task.updated, task.status_changed, task.completed, task.deleted, task.deadline_approaching, task.overdue
  • Chats / messages: chat.message_sent, chat.mention, chat.file_uploaded
  • Users / workspace: user.created, user.login, user.logout, workspace.created
  • System: system.daily_summary, system.weekly_summary

Each request to n8n includes the event name and contextual data (data) (for example, the task ID, workspace and author).

B. Incoming API - n8n controls the app

Configuration

  1. In the n8n tab, click “New API key”.
  2. Copy the generated token (it is shown only once).
  3. In n8n, use the HTTP Request node with an authorisation header:
    Authorization: Bearer TWÓJ_TOKEN
    Actions run in the context of the user who created the key (their permissions and workspace access).

Available endpoints

  • GET /api/n8n/ping.php - token test and healthcheck (returns info about the key and user).
  • GET /api/n8n/workspaces.php - list of available workspaces.
  • GET /api/n8n/users.php - list of users (only keys created by the global administrator).
  • GET /api/n8n/tasks.php?workspace_id=&status=&limit= - list of tasks.
  • POST /api/n8n/tasks.php - create a task. JSON body:
    {
    "workspace_id": 1,
    "subject": "Nowe zadanie z n8n",
    "description": "Opcjonalny opis",
    "priority": "high",
    "deadline_date": "2025-12-31",
    "status": "none",
    "assignees": [2, 5]
    }
    The description is stripped of dangerous HTML just as in the application, and has the same size limit.
  • PATCH /api/n8n/tasks.php - updates an existing task, including changing its status. JSON body (task_id required, the rest of the fields are optional - you only provide what you want to change):
    {
    "task_id": 42,
    "status": "in_progress",
    "priority": "high",
    "deadline_date": "2026-08-01",
    "subject": "Nowy temat",
    "description": "Nowy opis"
    }
    • status: none | in_progress | done | cancelled. Changing the status works exactly as it does in the app: an entry saying “changed the status to…” appears in the task thread, assigned people receive an email notification, and the task.status_changed webhook is sent to n8n (as well as task.completed when the status is done).
    • deadline_date: null clears the due date. Changing the due date reschedules any reminders linked to it.
    • The remaining fields send the task.updated webhook.
    • description is saved the same way as when editing from the task window: dangerous HTML is removed, when encryption is enabled the description is saved to the database encrypted, and ticks on the to-do list stay with their items, even when the new description changes the order of items. The task gets the "(edited)" mark only when the subject or the description content has actually changed.
    • When the new description removes a to-do list to which someone has added their own items, nothing is saved (including the status from the same request) and you get a 409 with the code DOPISKI_BEZ_LISTY and an indeksy field. To remove the list together with the added items anyway, send the same change again with the "usun_dopiski" field set to the list from the indeksy field.
    • The subject, due date, priority and description are saved first, and only then the status - if saving the description is refused, the status is not changed.
    • Setting the same status again does not send anything (safe for retries in n8n).
    • If your HTTP node doesn't support the PATCH method - send the same body via POST: the presence of task_id switches the endpoint into update mode.
    • Error codes: 400 missing task_id, no fields to change, or too many to-do list items (TOO_MANY), 413 description too large (PAYLOAD_TOO_LARGE, usually a pasted image), 422 invalid value (status/priority/date format), 404 task does not exist or is outside the key's access, 403 no permission to change status/edit, 409 description removes a list containing someone else's added items.
  • POST /api/n8n/messages.php - add a message to a task or chat. JSON body:
    {
    "entity_type": "task",
    "entity_id": 42,
    "content": "Treść wiadomości"
    }

Example automation workflows

  • Google Form → n8n → POST /api/n8n/tasks.php (new task in Task Manager)
  • Email from Gmail with a specific subject → n8n → task with the email content as its description
  • Status change in Jira → n8n → message/update in the linked task
  • Outgoing webhook task.created → n8n → entry in a Google Sheet / Slack notification
  • task.deadline_approaching → n8n → email/SMS reminder about an approaching due date

Troubleshooting

  • No notifications in n8n - check whether the integration is enabled, the webhook is active, and the URL is correct. Use the "test ping" and diagnostics in the n8n tab: it shows whether the webhook address responds (checked the same way as when sending - without redirects and with certificate verification, so n8n with a self-signed certificate will show up as unreachable), how many events are waiting in the retry queue, and when the last send succeeded.
  • The webhook secret is stored in the database encrypted. After changing the ENCRYPTION_KEY in config.php, the saved secrets become unreadable - the application then sends events without a signature, so generate a new secret for the webhook and enter it in n8n.
  • No authorisation (401) in the incoming API - the token is invalid or has been deleted. Create a new API key and update the Authorization header in n8n.
  • Task is not created - make sure that workspace_id exists and that the key's user has access to it as well as permission to add tasks.