# nodes

node_type: n8n-nodes-runrunit.runrunit
package_name: n8n-nodes-runrunit
display_name: runrunit
description: n8n community nodes for Runrun.it (Runrunit) integrations
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: marcoscamposyesh
author_github_url: git+https://github.com/YeshShareDEV/n8n-nodes-runrun.it.git
npm_package_name: n8n-nodes-runrunit
npm_version: 1.1.23
community_fetched_at: 2026-05-22T09:37:14.416Z
ai_summary_generated_at: 2026-05-02 09:00:04
npm_readme:
  # n8n-nodes-runrunit

  Node comunitário n8n para integração com a API do **Runrun.it** (v1.0).

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-runrunit)](https://www.npmjs.com/package/n8n-nodes-runrunit)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

  ---

  ## Índice

  - [Instalação](#instalação)
  - [Credenciais](#credenciais)
  - [Recursos e Operações](#recursos-e-operações)
    - [User](#user-usuários)
    - [Task](#task-tarefas)
    - [Team](#team-equipes)
    - [Projects](#projects-projetos)
    - [Board Stages](#board-stages-estágios-de-board)
    - [Comments](#comments-comentários)
    - [Documents](#documents-documentos)
    - [Checklists](#checklists)
    - [Checklist Items](#checklist-items-itens-de-checklist)
    - [Clients](#clients-clientes)
    - [Descendants](#descendants-tarefas-descendentes)
    - [Descriptions](#descriptions-descrições)
    - [Time Worked](#time-worked-tempo-trabalhado)
  - [Filtros e Ordenação](#filtros-e-ordenação)
  - [Paginação](#paginação)
  - [Desenvolvimento](#desenvolvimento)

  ---

  ## Instalação

  ### Via interface do n8n (recomendado)

  1. Acesse **Settings → Community Nodes** no n8n
  2. Clique em **Install**
  3. Digite `n8n-nodes-runrunit` e confirme

  ### Manual

  ```bash
  cd ~/.n8n
  npm install n8n-nodes-runrunit
  ```

  Reinicie o n8n após a instalação.

  ---

  ## Credenciais

  Crie uma credencial do tipo **Runrunit API** com os seguintes campos:

  | Campo | Descrição |
  |-------|-----------|
  | `App-Key` | Chave da conta Runrun.it |
  | `User-Token` | Token de autenticação do usuário |

  Ambos os valores são enviados como headers em todas as requisições. Você encontra essas informações em **Configurações → Integrações → API** dentro do Runrun.it.

  ---

  ## Recursos e Operações

  A base URL de todas as requisições é `https://runrun.it/api/v1.0`.

  ---

  ### User (Usuários)

  **Endpoint base:** `/users`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/users` |
  | Get | GET | `/users/:id` |
  | Create | POST | `/users` |
  | Update | PUT | `/users/:id` |

  Parâmetros de `Get Many`: `limit`, `page`, `search_term`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Task (Tarefas)

  **Endpoint base:** `/tasks`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/tasks` |
  | Get | GET | `/tasks/:id` |
  | Create | POST | `/tasks` |
  | Update | PUT | `/tasks/:id` |
  | Delete | DELETE | `/tasks/:id` |
  | Play | POST | `/tasks/:id/play` |
  | Pause | POST | `/tasks/:id/pause` |
  | Deliver | POST | `/tasks/:id/deliver` |
  | Reopen | POST | `/tasks/:id/reopen` |
  | Move | POST | `/tasks/:id/move` |
  | Move To Next Stage | POST | `/tasks/:id/move_to_next_stage` |
  | Move To Top | POST | `/tasks/:id/move_to_top` |
  | Clone | POST | `/tasks/clone` |
  | Reestimate | POST | `/tasks/:id/reestimate` |
  | Reposition | POST | `/tasks/:id/reposition` |
  | Share | POST | `/tasks/:id/share` |
  | Unshare | POST | `/tasks/:id/unshare` |
  | Add Comment | POST | `/tasks/:id/comments` |
  | Add Manual Work Period | POST | `/tasks/:id/add_manual_work_period` |
  | Change Board | POST | `/tasks/:id/change_board` |
  | Change Project | POST | `/tasks/:id/change_project` |
  | Change Time Worked | POST | `/tasks/:id/change_time_worked` |
  | Change Type | POST | `/tasks/:id/change_type` |
  | Create Assignments | POST | `/tasks/:id/create_assignments` |
  | Complete Workflow Step | POST | `/tasks/:id/complete_workflow_step` |
  | Mark As Urgent | POST | `/tasks/:id/mark_as_urgent` |
  | Get Subtasks | GET | `/tasks/:id/subtasks` |
  | Get Fields | GET | `/tasks/:id/fields` |
  | Get Form Answers | GET | `/tasks/:id/form_answers` |

  Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `search_term`, `project_id`, `client_id`, `responsible_id`, `is_closed`, `sort`, `sort_dir`, `filters`

  ---

  ### Team (Equipes)

  **Endpoint base:** `/teams`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/teams` |
  | Get | GET | `/teams/:id` |
  | Create | POST | `/teams` |
  | Update | PUT | `/teams/:id` |
  | Delete | DELETE | `/teams/:id` |
  | Add Member | POST | `/teams/:id/add_member` |
  | Remove Member | POST | `/teams/:id/remove_member` |

  Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Projects (Projetos)

  **Endpoint base:** `/projects`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/projects` |
  | Get | GET | `/projects/:id` |
  | Create | POST | `/projects` |
  | Update | PUT | `/projects/:id` |
  | Related Users | GET | `/projects/:id/related_users` |
  | Move | POST | `/projects/:id/move` |
  | Share | POST | `/projects/:id/share` |
  | Unshare | POST | `/projects/:id/unshare` |
  | Clone | POST | `/projects/:id/clone` |
  | Change Board Stage | POST | `/projects/:id/change_board_stage` |
  | List Filters | GET | `/projects/filters` |
  | Get Filter | GET | `/projects/filters/:id` |
  | Delete Filter | DELETE | `/projects/filters/:id` |

  Parâmetros de `Get Many`: `page`, `returnAll`, `client_id`, `project_group_id`, `search_term`, `is_closed`, `sort`, `sort_dir`, `filters`

  ---

  ### Board Stages (Estágios de Board)

  **Endpoint base:** `/boards/:boardId/stages`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/boards/:boardId/stages` |
  | Get | GET | `/boards/:boardId/stages/:id` |
  | Create | POST | `/boards/:boardId/stages` |
  | Update | PUT | `/boards/:boardId/stages/:id` |
  | Delete | DELETE | `/boards/:boardId/stages/:id` |
  | Move | POST | `/boards/:boardId/stages/:id/move` |
  | Update Use Latency Time | POST | `/boards/:boardId/stages/:id/update_use_latency_time` |
  | Update Use Scrum Points | POST | `/boards/:boardId/stages/:id/update_use_scrum_points` |

  Parâmetros de `Get Many`: `boardId` (obrigatório), `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Comments (Comentários)

  **Endpoint base:** `/comments`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/tasks/:taskId/comments` |
  | Get | GET | `/comments/:id` |
  | Create | POST | `/comments` |
  | Update | PUT | `/comments/:id` |
  | Delete | DELETE | `/comments/:id` |
  | Reaction | POST | `/comments/:id/reaction` |

  Parâmetros de `Get Many`: `taskId`, `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Documents (Documentos)

  **Endpoint base:** `/documents`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/tasks/:taskId/documents` ou `/documents` |
  | Get | GET | `/documents/:id` |
  | Delete | DELETE | `/documents/:id` |

  Parâmetros de `Get Many`: `taskId` (opcional — filtra por tarefa), `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Checklists

  **Endpoint base:** `/tasks/:taskId/checklist`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get | GET | `/tasks/:taskId/checklist` |
  | Create | POST | `/tasks/:taskId/checklist` |
  | Update | PUT | `/tasks/:taskId/checklist` |
  | Delete | DELETE | `/tasks/:taskId/checklist` |

  ---

  ### Checklist Items (Itens de Checklist)

  **Endpoint base:** `/checklist_items`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/checklist_items` |
  | Get | GET | `/checklist_items/:id` |
  | Create | POST | `/checklist_items` |
  | Update | PUT | `/checklist_items/:id` |
  | Delete | DELETE | `/checklist_items/:id` |

  Parâmetros de `Get Many`: `checklistId`, `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Clients (Clientes)

  **Endpoint base:** `/clients`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/clients` |
  | Get | GET | `/clients/:id` |
  | Create | POST | `/clients` |
  | Update | PUT | `/clients/:id` |
  | Monthly Budgets | GET | `/clients/:id/monthly_budgets` |
  | Update Monthly Budget | POST | `/clients/:id/update_monthly_budget` |

  Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Descendants (Tarefas Descendentes)

  **Endpoint base:** `/tasks/:taskId/descendants`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get Many | GET | `/tasks/:taskId/descendants` |
  | Create | POST | `/tasks/:taskId/descendants` |
  | Delete | DELETE | `/descendants/:id` |

  Parâmetros de `Get Many`: `taskId` (obrigatório), `limit`, `page`, `returnAll`, `sort`, `sort_dir`

  ---

  ### Descriptions (Descrições)

  **Endpoint base:** `/descriptions`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get | GET | `/descriptions?subject_type=...&subject_id=...` |
  | Update | PUT | `/descriptions` |

  ---

  ### Time Worked (Tempo Trabalhado)

  **Endpoint base:** `/reports/time_worked`

  | Operação | Método | Rota |
  |----------|--------|------|
  | Get | GET | `/reports/time_worked` |

  ---

  ## Filtros e Ordenação

  ### Ordenação

  Todas as operações **Get Many** suportam os parâmetros:

  | Parâmetro | Tipo | Descrição |
  |-----------|------|-----------|
  | `sort` | string | Nome do campo para ordenar os resultados (ex: `created_at`, `title`) |
  | `sort_dir` | options | Direção da ordenação: `asc` (padrão) ou `desc` |

  > **Nota:** `sort_dir` só aparece na interface e só é enviado na requisição quando `sort` está preenchido.

  ### Filtros Pós-Execução

  Os recursos **Task**, **Projects** e **Clients** suportam uma coleção `Filters` que permite filtrar os resultados localmente após a resposta da API, usando os seguintes operadores:

  | Operador | Símbolo | Aplicável a |
  |----------|---------|-------------|
  | `equals` | `=` | texto, número |
  | `contains` | `⊃` | texto |
  | `gt` | `>` | número |
  | `gte` | `>=` | número |
  | `lt` | `<` | número |
  | `lte` | `<=` | número |
  | `isTrue` | boolean verdadeiro | boolean |
  | `isFalse` | boolean falso | boolean |

  Em **Task**, o campo `sort` é um dropdown com as opções: `id`, `title`, `client_name`, `is_closed`, `project_name`, `last_activity_at`, `created_at`.
  Os campos de filtro adicionais disponíveis para Task incluem: `subtasks_count`, `subtasks_closed_count`, `attachments_count` (numéricos — use `gt`, `gte`, `lt`, `lte`).

  ---

  ## Paginação

  As operações `Get Many` suportam:

  | Campo | Descrição |
  |-------|-----------|
  | `Return All` | Quando ativado, busca todos os registros (usa `limit=99000`) |
  | `Limit` | Número máximo de registros por página (máx. 100) |
  | `Page` | Número da página para paginação baseada em offset |

  ---

  ## Desenvolvimento

  ```bash
  # Instalar dependências
  npm install

  # Build (compila TypeScript e copia README para dist/)
  npm run build

  # Modo de desenvolvimento com hot-reload
  npm run dev

  # Lint
  npm run lint
  npm run lint:fix
  ```

  ### Estrutura do projeto

  ```
  .
  ├── credentials/
  │   └── RunrunitApi.credentials.ts   # Configuração das credenciais
  ├── nodes/
  │   └── Runrunit/
  │       ├── Runrunit.node.ts         # Definição principal do node
  │       ├── GenericFunctions.ts      # makeRequest, applyPostFilters, etc.
  │       └── resources/
  │           ├── <resource>/
  │           │   ├── index.ts         # Operações (options) do resource
  │           │   ├── getAll.ts        # Propriedades da operação Get Many
  │           │   ├── get.ts           # Propriedades da operação Get
  │           │   ├── create.ts        # Propriedades da operação Create
  │           │   └── update.ts        # Propriedades da operação Update
  │           └── executers/
  │               └── <Resource>Execute.ts  # Lógica de execução HTTP
  ├── package.json
  └── README.md
  ```

  ---

  ## Links

  - [Documentação da API Runrun.it](https://runrun.it/api-docs)
  - [Repositório GitHub](https://github.com/YeshShareDEV/n8n-nodes-runrun.it)
  - [npm](https://www.npmjs.com/package/n8n-nodes-runrunit)
  - [Documentação de nodes comunitários n8n](https://docs.n8n.io/integrations/community-nodes/)

  ---

  ## Licença

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Integrates with the Runrun.it API (v1.0) to manage project management resources like users, tasks, teams, and documents within n8n workflows.","capabilities":["User management (create, read, update, list)","Team management (create, update, delete, add/remove members)","Task management (create, update, delete, actions like play/pause/move/clone)","Board stage management (create, update, move, configure latency/points)","Time tracking reporting","Comment management (create, update, delete, reactions)","Document management (upload, download, preview, thumbnail, delete)","Checklist and checklist item management","Client management (budget tracking)","Task descendants management"],"authentication":"API key required (App-Key and User-Token)","commonUseCases":["Automating user onboarding and role assignment","Synchronizing task status and actions between Runrun.it and other systems","Automating document attachment to tasks","Tracking time worked and generating reports","Managing team structures and member access"],"limitations":["File uploads for documents currently require a local file path property rather than direct binary data input from n8n nodes","Pagination is supported but may require manual configuration for some resources"],"relatedNodes":[]}


node_type: @felipelm3g/n8n-nodes-espocrm.espocrm
package_name: @felipelm3g/n8n-nodes-espocrm
display_name: espocrm
description: n8n community node for EspoCRM
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: felipelm3g
author_github_url: git+https://github.com/felipelm3g/node-espocrm.com.git
npm_package_name: @felipelm3g/n8n-nodes-espocrm
npm_version: 0.4.2
community_fetched_at: 2026-05-22T09:37:14.419Z
ai_summary_generated_at: 2026-05-02 09:00:04
npm_readme:
  # EspoCRM Node (n8n Community Node)

  Node comunitário para integrar o n8n ao **EspoCRM (API v1)**, com **CRUD** e seleção **dinâmica** de entidades/campos baseada na instância configurada nas credenciais.

  Este projeto é público e pensado para a comunidade: PRs e sugestões são bem-vindas.

  ## Recursos

  - CRUD por entidade: **Ler**, **Criar**, **Editar**, **Deletar**
  - Entidades e campos carregados dinamicamente via **Metadata** e **I18n**
  - “Ler por Campo(s)” 100% **screen friendly** (sem JSON) com construtor de filtros
  - **Criar** e **Editar** com 2 modos de entrada: **Campo a campo** ou **JSON**
  - Saídas iguais às respostas da API do EspoCRM
  - Campos de relacionamento tratados de forma segura, expondo atributos derivados (`...Id`, `...Name`, `...Ids`, `...Names`, etc.)

  ## Requisitos

  - n8n com suporte a community nodes
  - EspoCRM com **API v1** acessível pela URL base
  - API Key de um usuário no EspoCRM (header `X-Api-Key`)

  ## Instalação

  ### Via n8n (recomendado)

  Instale como community node diretamente pela interface do n8n (Settings → Community Nodes) usando o nome do pacote:

  ```bash
  @felipelm3g/n8n-nodes-espocrm
  ```

  ### Via npm (ambiente de desenvolvimento)

  ```bash
  npm install
  npm run dev
  ```

  O comando `npm run dev` inicia o n8n em modo de desenvolvimento com o node carregado (via `@n8n/node-cli`).

  ## Credenciais (EspoCRM API)

  Crie uma credencial do tipo **EspoCRM API** com:

  - **Base URL**: URL base do seu EspoCRM, com ou sem `/api/v1` (ex.: `https://crm.seudominio.com.br`)
  - **API Key**: chave do usuário de API (enviada no header `X-Api-Key`)

  Use o botão **Test** na credencial para validar conectividade e autorização.

  ## Como a lista de entidades e campos é carregada

  O node busca dados diretamente da sua instância do EspoCRM:

  - Lista de entidades (scopes): `GET /api/v1/Metadata/scopes`
  - Labels (i18n): `GET /api/v1/I18n`
    - Entidades: `Global.scopeNames`
    - Campos: `{Entidade}.fields`
  - Definição de campos: `GET /api/v1/Metadata?key=entityDefs.{Entidade}.fields`

  Por padrão, o node:

  - inclui apenas scopes com `entity=true`
  - ignora scopes com `disabled=true`

  ## Ações

  ### Ler

  Ações:

  - **Ler Tudo**: `GET /api/v1/{Entidade}`
  - **Ler por ID**: `GET /api/v1/{Entidade}/{id}`
  - **Ler por Campo(s)**: `GET /api/v1/{Entidade}` com `where` (array) e outros parâmetros

  Formato de saída:

  O node retorna exatamente o que a API do EspoCRM retorna (ex.: `{ total, list }`).

  Opções (opcional em Ler Tudo e Ler por Campo(s)):

  - `maxSize` (0–200): tamanho da página (0 = padrão do EspoCRM)
  - `offset`: offset inicial
  - `orderBy`, `order`
  - `primaryFilter`
  - `boolFilterList`
  - `textFilter`

  ### Criar

  - Faz `POST /api/v1/{Entidade}` com payload JSON
  - **Modo de Entrada**
    - **Campo a campo**: os campos são montados no editor com base nas definições/labels da entidade
    - **JSON**: você informa o **Corpo (JSON)** manualmente (estilo HTTP Request)
  - Para relacionamentos, use os atributos derivados:
    - `link`: `...Id` e `...Name` (ex.: `assignedUserId`, `assignedUserName`)
    - `linkMultiple`: `...Ids` e `...Names`
    - `linkParent`: `...Id`, `...Type` e `...Name`

  ### Editar

  - Faz `PUT /api/v1/{Entidade}/{id}` com payload JSON
  - **Modo de Entrada**
    - **Campo a campo**: seleciona os campos e valores no editor
    - **JSON**: informa o **Corpo (JSON)** manualmente (estilo HTTP Request)

  ### Deletar

  - Faz `DELETE /api/v1/{Entidade}/{id}`
  - Retorna `{ "success": true }` quando a API retornar sucesso

  ## “Ler por Campo(s)”: filtros (sem JSON)

  O campo **Filtros** monta o `where` do EspoCRM como um array de condições.

  Comportamento:

  - Cada item em **Filtros** vira um `where[n]`
  - As condições são combinadas como **AND** (o EspoCRM interpreta a lista como filtro acumulativo)
  - Para evitar erros e manter a UI simples, o node:
    - valida campos obrigatórios por tipo de filtro
    - bloqueia o mesmo `attribute` repetido em mais de um filtro (use `in`, `notIn`, `between` ou `expression`)

  Tipos suportados (principais):

  - Comparações: `equals`, `notEquals`, `greaterThan`, `lessThan`, `greaterThanOrEquals`, `lessThanOrEquals`
  - Texto: `like`, `notLike`, `startsWith`, `endsWith`, `contains`, `notContains`
  - Datas: `after`, `before`, `today`, `past`, `future`, `lastSevenDays`, `lastXDays`, `nextXDays`, `olderThanXDays`, `afterXDays`
  - Nulos/booleanos: `isNull`, `isNotNull`, `isTrue`, `isFalse`
  - Listas/arrays: `in`, `notIn`, `arrayAnyOf`, `arrayNoneOf`, `arrayAllOf`
  - Intervalo: `between` (usa “Valor (De)” e “Valor (Até)”)
  - Relacionamentos: `linkedWith`, `notLinkedWith`, `isLinked`, `isNotLinked` (usa “Relacionamento (atributo)”)
  - Avançado: `expression` (envia a expressão do EspoCRM diretamente)

  ### Exemplos

  Status em uma lista (equivalente a “status = New OR status = Converted”):

  ```json
  [
    { "type": "in", "attribute": "status", "value": ["New", "Converted"] }
  ]
  ```

  Negação de lista (equivalente a “NOT (status = Converted OR status = Recycled)”):

  ```json
  [
    { "type": "notIn", "attribute": "status", "value": ["Converted", "Recycled"] }
  ]
  ```

  Filtro composto com AND:

  ```json
  [
    { "type": "in", "attribute": "status", "value": ["New", "Converted"] },
    { "type": "equals", "attribute": "assignedUserId", "value": "6846ed1e124523a61" }
  ]
  ```

  Observação: estes exemplos mostram o formato final do `where`. No node, você monta tudo pela UI.

  ## Como o node monta a querystring do EspoCRM

  O EspoCRM espera parâmetros com colchetes, por exemplo:

  ```text
  where[0][type]=equals&where[0][attribute]=assignedUserId&where[0][value]=6846ed1e124523a61
  ```

  O node converte automaticamente objetos/arrays (como `where`) para esse formato.

  Quando a API retorna erro (ex.: 400), o node inclui detalhes suficientes para replicar a chamada no Postman/Insomnia.

  ## Estrutura do projeto

  - `nodes/EspoCrm/EspoCrm.node.ts`: implementação do node (UI + execução)
  - `credentials/EspoCrmApi.credentials.ts`: credencial (Base URL + API Key + teste)
  - `dist/`: build gerado para publicação

  ## Desenvolvimento

  ```bash
  npm install
  npm run lint
  npm run typecheck
  npm run build
  npm run dev
  ```

  ## Contribuição

  - Issues e PRs são bem-vindos
  - Antes de abrir PR, rode:
    - `npm run lint`
    - `npm run typecheck`
    - `npm run build`
  - Sugestões comuns:
    - novos operadores de filtro do EspoCRM
    - melhorias de UX no construtor de filtros
    - suporte a cenários específicos (relacionamentos, arrays, datas)

  ## Licença

  MIT (veja [LICENSE](./LICENSE)).

ai_documentation_summary:
  {"purpose":"Integrates n8n with EspoCRM (API v1) to perform CRUD operations on entities with dynamic field selection and user-friendly filtering.","capabilities":["Create, Read, Update, Delete (CRUD) records by entity","Dynamic loading of entities and fields via Metadata and I18n","User-friendly 'Read by Field(s)' interface with visual filter builder","Flexible input modes for Create and Edit (Field-by-field or raw JSON)","Secure handling of relationship fields (derived attributes like ...Id, ...Name)","Support for complex filters including comparisons, text matching, dates, null checks, arrays, and relationships","Pagination and sorting controls (maxSize, offset, orderBy)","Returns raw API responses for debugging and downstream processing"],"authentication":"API key required (X-Api-Key header)","commonUseCases":["Synchronizing customer data between n8n workflows and EspoCRM","Automating lead assignment and status updates","Bulk data imports and exports via JSON input modes","Building custom dashboards by querying specific CRM entities","Triggering notifications based on CRM record changes"],"limitations":["Requires EspoCRM API v1 access","Dynamic entity/field lists depend on the specific EspoCRM instance configuration","Filter logic uses AND combination for multiple conditions by default"],"relatedNodes":["httpRequest","json","switch"]}


node_type: n8n-nodes-browserless.browserless
package_name: n8n-nodes-browserless
display_name: browserless
description: n8n mode integrate with Browserless platform
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-browserless.git
npm_package_name: n8n-nodes-browserless
npm_version: 1.1.3
community_fetched_at: 2026-05-22T09:37:14.421Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-browserless

  <p align="center">
    <img src="https://user-images.githubusercontent.com/11575076/202373912-a90e5cc0-9dd2-4873-b782-6f86c78f00eb.png" />
  </p>

  #### New Updates: 🎉 **Browserless** API V2 is now supported.

  This is an n8n community node that allows you to interact with a [browserless](https://github.com/browserless/chrome) instance in your `n8n` workflows.

  **Browserless** is a web service that enables remote clients to connect, drive, and execute headless tasks, all within Docker. It provides first-class integrations for Puppeteer, Playwright, Selenium WebDriver, and several REST APIs for common tasks. Additionally, it addresses common issues like missing system fonts, external libraries, and performance improvements. It even handles tasks such as downloading files, managing sessions, and includes a fully-featured documentation site.

  If you’ve struggled with setting up Chrome in Docker or scaling headless workloads, browserless is designed for you.

  If you’ve been trying to automate browser-related tasks like `web scraping`, `browser automation`, `end-to-end testing`, or `PDF generation` with `n8n` and want to avoid dealing with browser infrastructure, the `n8n-nodes-browserless` will make your life easier.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of Contents

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Highlights

  - [x] Full control over Browserless
  - [x] Cloud compatibility
  - [x] Docker support by default
  - [x] Live browser debugging
  - [x] JavaScript injection
  - [x] Dynamic page rendering
  - [x] PDF download
  - [x] Screenshot capture
  - [x] Custom code execution

  ## Installation

  1. [Install Docker](https://docs.docker.com/engine/install/)
  2. [Install Browserless](https://docs.browserless.io/docs/docker-quickstart.html)

  ```shell
  $ docker run \
    --rm \
    -p 3000:3000 \
    -e "CONCURRENT=10" \
    -e "TOKEN=6R0W53R135510" \
    ghcr.io/browserless/chromium
  ```

  3. Visit your n8n instance > Settings > Community Nodes > Install `n8n-nodes-browserless`.
  4. Set up Browserless credentials with the URL `http://localhost:3000` and your secure token.
  5. Add the Browserless node to your workflow by searching for `browserless`.
  6. Start using Browserless in your n8n workflows!

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  - [Get page content](https://www.browserless.io/docs/content)
  - [Execute custom function](https://www.browserless.io/docs/function)
  - [Generate PDF of a page](https://www.browserless.io/docs/pdf)
  - [Capture page screenshot](https://www.browserless.io/docs/screenshot)
  - [Scrape page as JSON](https://www.browserless.io/docs/scrape)

  ## Credentials

  This node requires a Browserless `URL` and `token` to connect to your Browserless account or a self-hosted Browserless instance.

  ![](.//assets/credentials-setup.png)

  ## Compatibility

  This node was developed on `n8n@0.200.1`. It hasn't been tested on other versions yet.

  ## Usage

  1. Add the `browserless` node to your workflow.
     ![](./assets/browserless-node.png)
  2. Configure your node.
     ![](./assets/browserless-content.png)
     ![](./assets/browserless-screenshot.png)
     ![image](https://user-images.githubusercontent.com/11575076/202370828-c8e3896e-1fc5-4f08-b147-688e55c90c74.png)

  ## Anti-Bot Detection

  With strong support from Browserless, you can implement robust anti-bot detection using the following setup:

  - `Browser Options` > `Stealth` On
  - `Browser Options` > `Headless` Off

  ![](./assets/anti-bot-detector.png)

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Browserless Homepage](https://www.browserless.io/)
  * [Browserless API Documentation](https://www.browserless.io/docs/api)
  * [Browserless Self-Hosted Quick Start](https://www.browserless.io/docs/docker-quickstart)

  ## Version History

  - `0.0.1` Initial release
  - `0.2.0` Fixed common issues
  - `0.3.0` Fixed [#1](https://github.com/minhlucvan/n8n-nodes-browserless/issues/1), added tests
  - `0.4.0` Added browser options, set no-cache as the default header
  - `0.5.0` Implemented anti-bot detection
  - `1.0.0` Added support for `browserless` API v2

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with a Browserless instance to perform headless browser tasks without managing local browser infrastructure.","capabilities":["Web scraping as JSON","PDF generation","Screenshot capture","Custom JavaScript execution","Page content retrieval","Live browser debugging","Dynamic page rendering","File downloading","Session management","Anti-bot detection via stealth mode"],"authentication":"API token required (Browserless token)","commonUseCases":["Web scraping automation","End-to-end testing","PDF generation from web pages","Browser automation workflows","Anti-bot detection implementation"],"limitations":["Developed and tested on n8n@0.200.1 only; compatibility with other versions not verified","Requires Docker installation and a running Browserless instance"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n PDF","n8n Screenshot"]}


node_type: n8n-nodes-jobtread.jobtread
package_name: n8n-nodes-jobtread
display_name: jobtread
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: wr-npm
author_github_url: git+https://github.com/webrunnermedia/n8n-nodes-jobtread.git
npm_package_name: n8n-nodes-jobtread
npm_version: 0.11.20
community_fetched_at: 2026-05-22T09:37:14.425Z
npm_readme: ERROR: No README data found!
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  n8n community node for JobTread — accounts, contacts, jobs, tasks, documents, locations, comments, daily logs, custom field schema

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with JobTread to manage accounts, contacts, jobs, tasks, documents, locations, comments, daily logs, and custom field schemas.","capabilities":["Manage JobTread accounts","Manage JobTread contacts","Create and update jobs","Track tasks","Handle documents","Manage locations","Process comments","Record daily logs","Configure custom field schemas"],"authentication":"API key required","commonUseCases":["Automating job posting workflows","Tracking task progress in construction or project management","Managing client contacts and job history","Generating daily activity reports"],"limitations":[],"relatedNodes":["n8n-nodes-jobtread.jobtread"]}


node_type: n8n-nodes-sshv2.sshv2
package_name: n8n-nodes-sshv2
display_name: sshv2
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: hadidiz
author_github_url: git+https://github.com/AhmedElhadidii/N8N-SSH-Tool-Node.git
npm_package_name: n8n-nodes-sshv2
npm_version: 1.2.0
community_fetched_at: 2026-05-22T09:37:14.425Z
ai_summary_generated_at: 2026-05-02 08:57:17
description:
  2 N8N ( Node & AI Agent Tool) for SSH operations Dynamically Configurable parameters NO credentials, including command execution, file uploads, and downloads by Hadidiz, HadidizFlow

npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  https://www.npmjs.com/package/n8n-nodes-sshv2

  # n8n-nodes-sshv2

  This package provides enhanced SSH functionality for n8n, including an AI-powered SSH tool node.

  ## Features

  ### 1. Hadidiz-AI Node
  An AI-powered SSH tool that can be used with n8n's AI Agent for:
  - Executing remote commands
  - Downloading files
  - Uploading files
  - Dynamic connection parameters
  - Support for both password and private key authentication

  ### 2. SSHv2 Node
  A standard SSH node with enhanced capabilities for:
  - Command execution
  - File transfers
  - Credential management
  - Dynamic parameters

  ## Installation

  ### Local Installation
  ```bash
  npm install n8n-nodes-sshv2
  ```

  ### n8n.cloud Installation
  1. Go to Settings > Community Nodes
  2. Select "Install"
  3. Enter `n8n-nodes-sshv2`
  4. Click "Install"

  ## Usage with AI Agent

  To use the Hadidiz-AI node with the AI Agent, you need to:

  1. Set the following environment variables:
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  2. Add the AI Agent node to your workflow
  3. Select "Tools Agent" as the agent type
  4. Add "Hadidiz-AI" from the available tools

  ## Configuration

  ### SSH Credentials
  The package supports two types of authentication:
  - Password-based authentication
  - Private key authentication

  ### Dynamic Parameters
  Both nodes support dynamic parameters, allowing you to:
  - Use different servers in the same workflow
  - Pass credentials from previous nodes
  - Use environment variables

  ## Development

  ### Building the Package

  ```bash
  # Install dependencies
  pnpm install

  # Build the project
  pnpm build

  # Run linting
  pnpm lint

  # Format code
  pnpm format
  ```

  ### Publishing to NPM

  This package uses GitHub Actions to automatically publish to npm when version tags are pushed.

  #### For Maintainers

  1. **Set up NPM_TOKEN secret**: 
     - Go to repository Settings → Secrets and variables → Actions
     - Add a new secret named `NPM_TOKEN`
     - Value should be your npm authentication token (get from https://www.npmjs.com/settings/tokens)

  2. **Release a new version**:
     ```bash
     # Update version in package.json
     npm version patch  # or minor, major
     
     # Push the tag to trigger publishing
     git push origin --tags
     ```

  The workflow will automatically:
  - Build and test the package
  - Verify the workflow is triggered by a version tag
  - Verify the version matches the tag
  - Publish to npmjs.com

  ## License

  [MIT](LICENSE.md)

  ## Credits

  By Hadidizflow.com Your AI Solutions Partner.

ai_documentation_summary:
  {"purpose":"Provides enhanced SSH functionality for n8n, including an AI-powered tool node for dynamic command execution, file transfers, and connection management without requiring static credentials.","capabilities":["Execute remote commands via SSH","Download files from remote servers","Upload files to remote servers","Dynamic connection parameter configuration","Password-based authentication","Private key authentication","Credential management","Integration with n8n AI Agent as a tool"],"authentication":"None (credentials passed dynamically per execution)","commonUseCases":["Automated server administration tasks","Remote file synchronization","AI-driven remote command execution","Dynamic server provisioning workflows"],"limitations":[],"relatedNodes":["n8n-nodes-ssh"]}


node_type: @elefai/n8n-nodes-elefaibrain-memory-lab.elefaibrainmemorylab
package_name: @elefai/n8n-nodes-elefaibrain-memory-lab
display_name: elefaibrainmemorylab
description: Tembory Memory node for n8n AI Agents with profile, tools, timeline, graph and semantic memory
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: lucas.lima.elefai
author_github_url: git+https://github.com/temboryhq/n8n-nodes-tembory.git
npm_package_name: @elefai/n8n-nodes-elefaibrain-memory-lab
npm_version: 0.1.0-lab.52
community_fetched_at: 2026-05-22T09:37:14.431Z
ai_summary_generated_at: 2026-05-22 10:26:01
npm_readme:
  # Tembory Memory

  Node de memoria operacional da Tembory para agentes de IA no n8n.

  Versao lab atual: `0.1.0-lab.52`.

  O Tembory entrega contexto rico para o AI Agent sem depender apenas do historico textual da conversa. Ele combina memoria semantica, working memory, decision state, fatos estaveis do lead, historico de tools, estado operacional, action ledger, timeline de entidades, compressao de memoria, grafo, mensagens recentes e diagnosticos.

  ## Smoke tecnico

  Antes de publicar uma build lab, rode:

  ```bash
  npm run smoke:n8n:multiturn
  ```

  O smoke simula 12 trocas com tools de agenda, valida tool history, working memory, decision state, memory compression e exige `contextHealth` com score minimo de `970/1000`.

  ## Principais recursos

  - Porta `ai_memory` para conectar direto no AI Agent do n8n.
  - Campo `Projeto` para isolar memórias por cliente/workspace mesmo quando a origem repete o mesmo ID de conversa.
  - Entradas opcionais `ai_languageModel` e `ai_embedding` para usar os modelos conectados pelo cliente no proprio n8n.
  - Profile facts: nome, empresa, email, telefone, preferencias e contexto comercial.
  - Tool history: quais tools foram chamadas, quando, com qual status e resultado.
  - Tool guard: bloqueia acoes dependentes quando falta contexto previo.
  - Working memory: objetivo atual, intencao recente, entidades ativas, ultimo erro e proxima acao esperada.
  - Decision state: decisoes ativas, ferramentas que nao devem ser repetidas e politica de resolucao de conflitos.
  - Operational state: resumo deterministico do estado atual das tools e do proximo passo seguro.
  - Action ledger: linha cronologica das acoes executadas pelo agente.
  - Entity timeline: evolucao compacta de entidades, fatos, relacoes e eventos relevantes.
  - Memory compression: resumos de turno, sessao, entidades e workflow para reduzir ruido e aproximar o contexto do comportamento do ChatGPT/Codex.
  - Vector memories com scores, recent messages, highlights, graph e resumo.

  ## Custo de IA

  O node nao fornece LLM nem embedding gerenciados pela Tembory. Todo uso de LLM e embedding deve vir dos nodes/modelos conectados no cluster do n8n do cliente. O backend do Tembory armazena e consulta os vetores recebidos prontos.

  ## Presets operacionais

  O campo avancado `Preset Operacional` preenche defaults sem sobrescrever valores configurados manualmente:

  - `Custom`: comportamento manual.
  - `Lab`: diagnostico completo para teste e auditoria.
  - `Producao Balanceada`: contexto rico com menos ruido.
  - `Producao Economica`: reduz secoes e resultados para economizar tokens.
  - `Auditoria`: payload detalhado para depuracao.

  ## Blocos de contexto

  Quando habilitados, o agente recebe:

  - `Profile facts`
  - `Working memory`
  - `Decision state`
  - `Operational state`
  - `Action ledger`
  - `Entity timeline`
  - `Memory compression`
  - `Tool guard`
  - `Vector memories`
  - `Graph`
  - `Recent messages`
  - `Recent highlights`
  - `Tool history`
  - `Diagnostics`

  ## Teste local

  ```bash
  npm test
  npm pack --dry-run
  ```

  Site: https://tembory.com

ai_documentation_summary:
  {"purpose":"This n8n node provides a comprehensive operational memory system for AI agents, enriching context with semantic memory, working memory, decision states, and entity timelines without managing LLMs or embeddings.","capabilities":["Store and retrieve profile facts (name, company, email, preferences)","Track tool history with status and results","Enforce tool guard to block actions lacking prior context","Maintain working memory (current objective, recent intent, active entities)","Manage decision state (active decisions, tools to avoid, conflict resolution)","Record operational state and deterministic tool summaries","Log action ledger with chronological history of agent actions","Generate entity timeline showing evolution of facts and events","Perform memory compression to reduce noise and approximate ChatGPT/Codex behavior","Store vector memories with scores, recent messages, highlights, and graph data"],"authentication":"None","commonUseCases":["Enhancing AI agent context with structured memory beyond simple conversation history","Maintaining persistent state across multi-turn conversations in n8n workflows","Tracking agent actions and tool usage for auditing and debugging","Reducing context noise through memory compression for better LLM performance"],"limitations":["Does not provide managed LLM or embedding services; these must be sourced from nodes/models connected in the n8n cluster","Backend only stores and queries received vectors; it does not generate them","Current version is a lab build (0.1.0-lab.52) with potential instability"],"relatedNodes":["n8n AI Agent nodes","n8n LLM nodes","n8n Embedding nodes","n8n Vector Store nodes"]}


node_type: n8n-nodes-checkmob.checkmob
package_name: n8n-nodes-checkmob
display_name: checkmob
description: n8n community node for Checkmob — field service management platform
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: marcosbonetti
author_github_url: git+https://github.com/checkmob/n8n-nodes-checkmob.git
npm_package_name: n8n-nodes-checkmob
npm_version: 0.1.48
community_fetched_at: 2026-05-22T09:37:14.432Z
ai_summary_generated_at: 2026-05-22 10:26:01
npm_readme:
  # n8n-nodes-checkmob

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-checkmob)](https://www.npmjs.com/package/n8n-nodes-checkmob)

  Community node for **[Checkmob](https://checkmob.com)** — field service management platform.

  Handles JWT authentication automatically: the node logs in using your credentials and reuses the token for 55 minutes before renewing.

  ---

  ## Installation

  In your n8n instance go to **Settings → Community Nodes → Install** and enter:

  ```
  n8n-nodes-checkmob
  ```

  ---

  ## Credentials

  1. In n8n go to **Credentials → New → Checkmob API**
  2. Fill in:
     - **Login** — seu Usuário ou E-mail
     - **Password** — sua Senha

  The node connects to `https://api-integration.checkmob.com` and obtains the Bearer Token automatically.

  ---

  ## Resources & Operations

  | Resource | Operations |
  |---|---|
  | **Categoria** | Listar |
  | **Campo Personalizado** | Listar |
  | **Cliente** | Listar · Buscar · Criar · Criar em Lote · Editar |
  | **Endereço do Cliente** | Buscar · Editar |
  | **Endereço de Pessoa** | Buscar · Editar |
  | **Etapa** | Listar |
  | **Grupo** | Listar · Buscar · Criar · Editar |
  | **Nota do Cliente** | Listar · Buscar · Criar · Editar · Excluir |
  | **Objetivo** | Buscar · Listar |
  | **Ordem de Serviço** | Listar · Buscar · Criar · Listar Status · Alterar Status · Excluir |
  | **Pessoa** | Listar · Buscar · Criar · Editar · Excluir · Vincular Cliente |
  | **Questionario** | Listar · Vincular Grupo · Remover Vínculo de Grupo · Vincular Segmento · Remover Vínculo de Segmento |
  | **Questionario Servico** | Buscar por Registro · Buscar por OS · Listar |
  | **Registro** | Buscar · Listar · Editar |
  | **Segmento** | Buscar · Listar · Criar · Editar · Excluir · Obter Vínculos · Vincular ao Cliente · Remover Vínculo de Cliente · Vincular Grupo · Remover Vínculo de Grupo · Vincular Usuário · Remover Vínculo de Usuário |
  | **Setor de Mercado** | Listar |
  | **Status de Serviço** | Listar |
  | **Temperatura** | Listar |
  | **Tipo de Serviço** | Listar · Buscar |
  | **Usuário** | Listar · Buscar · Buscar Localização |

  ---

  ## Configuration

  ### Idioma

  Each node instance exposes a **Idioma** (Language) dropdown:

  | Option | Value |
  |---|---|
  | Português (default) | `pt-BR` |
  | English | `en-US` |

  This sets the `Accept-Language` header on every API request, controlling the language of error messages returned by Checkmob.

  ### Continue on Error

  When **Continue on Error** is enabled, failed items return a JSON object instead of halting the workflow:

  ```json
  {
    "error": "HTTP 400 — 'Name' deve ser informado.",
    "statusCode": 400,
    "details": ["'Name' deve ser informado."]
  }
  ```

  ---

  ## API Reference

  [https://api-integration.checkmob.com/index.html](https://api-integration.checkmob.com/index.html)

  ---

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with Checkmob, a field service management platform, to perform CRUD operations on various resources like customers, service orders, and users.","capabilities":["JWT authentication with automatic token renewal every 55 minutes","List, search, create, edit, and delete operations on Checkmob resources","Batch creation for customers","Linking/unlinking relationships between customers, groups, segments, and users","Service order status tracking and alteration","Temperature data listing","Custom field listing","Language selection (Portuguese/English) for API responses","Continue on error mode to return JSON error details instead of halting workflow"],"authentication":"Basic Authentication (Username/Password) - Credentials are stored in n8n Credentials tab, node handles token conversion to Bearer automatically","commonUseCases":["Automating field service order creation and status updates","Managing customer and user data in Checkmob","Syncing service records between external systems and Checkmob","Automating group and segment management for field teams"],"limitations":["Community node (not official n8n node)","Requires manual installation via npm package","Language is limited to Portuguese (pt-BR) and English (en-US)","No mention of rate limiting handling or advanced retry logic beyond basic error continuation"],"relatedNodes":["n8n-nodes-checkmob.checkmob","n8n-nodes-github-github","n8n-nodes-http-request"]}


node_type: n8n-nodes-mopdf.mopdf
package_name: n8n-nodes-mopdf
display_name: mopdf
description: n8n community node for PDF processing - convert PDF to images, extract text and run OCR
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: kayjix
author_github_url: git+https://github.com/MoritzBuggisch-art/n8n-nodes-mopdf.git
npm_package_name: n8n-nodes-mopdf
npm_version: 0.3.1
community_fetched_at: 2026-05-22T09:37:14.432Z
ai_summary_generated_at: 2026-05-02 08:57:17
npm_readme:
  # n8n-nodes-mopdf

  MoPDF is an n8n community node for local PDF processing. It extracts selectable text, converts PDF pages to images, and runs OCR locally with MuPDF and Tesseract.js.

  The project is intended for self-hosted n8n. Document processing does not depend on remote OCR services or SaaS APIs. Depending on the runtime setup, Tesseract.js language assets may need to be available locally or downloaded separately.

  ## Installation

  Requirements:

  - self-hosted n8n
  - Node.js 18+

  Install from **Settings -> Community Nodes -> Install**:

  ```text
  n8n-nodes-mopdf
  ```

  ## Operations

  | Operation | Input | Output | Notes |
  | --- | --- | --- | --- |
  | PDF to Images | PDF binary | PNG or JPEG binaries | Supports per-page export and page selection |
  | OCR | Image binary | Text or Markdown | Optional word and line coordinates |
  | Extract Text | PDF binary | Text, Markdown, JSON, or HTML | Uses direct PDF text extraction only |
  | Text + OCR Fallback | PDF binary | Text, Markdown, JSON, or HTML | Falls back to OCR only for pages without selectable text |

  ## Output formats

  | Format | Description |
  | --- | --- |
  | Plain text | Clean extracted text without layout markup |
  | Markdown | Compact, structure-aware output for humans and LLM pipelines |
  | JSON | Structured extraction output with layout information |
  | HTML | Raw HTML-style layout export |

  Important n8n note:

  - In n8n Schema and JSON views, multiline strings are shown with escaped `\n` sequences because the UI displays serialized JSON.
  - The stored field value still contains real newline characters.

  ## Project docs

  Detailed architecture, development, publishing and community docs live in the GitHub repository.

  - [Repository home](https://github.com/MoritzBuggisch-art/n8n-nodes-mopdf)
  - See `docs/` for technical documentation
  - See `.github/` for contribution and security guidance

  ## Local development

  Install dependencies once:

  ```bash
  npm install
  ```

  Common commands:

  ```bash
  npm run build
  npm run dev:docker:up
  npm run dev:docker:reload
  npm run dev:docker:logs
  npm run fixtures:build
  npm run fixtures:generate:windows
  ```

  The Docker workflow mounts this repository directly into a local n8n container, so normal code iterations do not require reinstalling the package through the Community Nodes UI.

  Detailed setup, environment variables, fixture generation and manual validation steps are documented in the GitHub repository under `docs/` and `tests/manual-test-plan.md`.

  ## npm package scope

  The published npm package is intentionally minimal:

  - built runtime files from `dist/`
  - package metadata from `package.json`
  - this `README.md`
  - `LICENSE`

  Repository-only assets such as source TypeScript files, Docker setup, fixtures, tests, scripts and GitHub community files stay in GitHub.

  ## Licensing

  This package depends on:

  - [MuPDF](https://mupdf.com/licensing/) - AGPL v3
  - [Tesseract.js](https://github.com/naptha/tesseract.js/blob/master/LICENSE.md) - Apache 2.0

  The repository source is licensed under MIT. The installed npm package also depends on MuPDF (AGPL v3) and Tesseract.js (Apache 2.0), so review upstream obligations before redistribution. The bundled `LICENSE` file includes the repository license text and a dependency notice.

ai_documentation_summary:
  {"purpose":"A local PDF processing node for self-hosted n8n that extracts text, converts PDF pages to images, and performs OCR using MuPDF and Tesseract.js without relying on remote APIs.","capabilities":["Convert PDF pages to PNG or JPEG images","Extract selectable text from PDFs","Run OCR on images or PDF pages","Supports per-page export and page selection","Output formats: Plain text, Markdown, JSON, HTML","Text + OCR fallback for pages without selectable text"],"authentication":"None","commonUseCases":["Local document digitization without external API dependencies","Extracting structured data from PDFs for LLM pipelines","Converting scanned documents to searchable text","Generating image sequences from PDF reports"],"limitations":["Requires self-hosted n8n environment","Requires Node.js 18 or higher","Tesseract.js language assets must be available locally or downloaded separately","Depends on AGPL v3 licensed MuPDF and Apache 2.0 licensed Tesseract.js"],"relatedNodes":[]}


node_type: n8n-nodes-wecom.wecom
package_name: n8n-nodes-wecom
display_name: wecom
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: funcodingdev
author_github_url: git+https://github.com/funcodingdev/n8n-nodes-wecom.git
npm_package_name: n8n-nodes-wecom
npm_version: 0.4.10
community_fetched_at: 2026-05-22T09:37:14.433Z
ai_summary_generated_at: 2026-05-02 09:00:04
description:
  Complete n8n integration for WeCom (企业微信/WeChat Work). Send messages, manage contacts, departments, customer relations, meetings, documents, email, calendar, approvals, and more. Full-featured enterprise WeChat automation node.

npm_readme:
  # n8n-nodes-wecom

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-wecom.svg?style=flat-square)](https://www.npmjs.com/package/n8n-nodes-wecom) [![GitHub release](https://img.shields.io/github/v/release/funcodingdev/n8n-nodes-wecom?include_prereleases&style=flat-square)](https://github.com/funcodingdev/n8n-nodes-wecom/releases)

  这是一个 n8n 社区节点，让你可以在 [n8n](https://n8n.io/) 工作流中使用企业微信（WeChat Work）API。

  ## ⚠️ 重要提示

  > **关于版本更新与稳定性**
  >
  > 本插件的设计初衷是提供**简单、稳定**的企业微信集成体验。我们以 N8N 官方原生节点（如 Telegram、Notion等）为标准，力求交互逻辑清晰直观。
  >
  > **开发原则：**
  > 我们会审慎评估每一次代码变更，尽量维持现有节点结构和参数的稳定性，避免对生产环境造成不必要的影响。
  >
  > **注意事项：**
  > 在极少数情况下，为了修复重大缺陷或适配企业微信 API 的关键变更，可能会引入必要的调整。
  >
  > **建议：**
  > 生产环境更新前，请查看 [Release 日志](https://github.com/funcodingdev/n8n-nodes-wecom/releases)。如果涉及 Breaking Changes（破坏性变更），我们会显著标记。
  >
  > **文档说明：**
  > 本文档旨在概括插件支持的核心功能。由于企业微信接口众多且更新频繁，本文档可能无法覆盖所有参数细节。遇有疑问，请优先参考 [企业微信官方 API 文档](https://developer.work.weixin.qq.com/document/path/90664)。

  ## 🤝 交流与支持

  遇到问题或有功能建议？欢迎查阅 [企业微信官方文档](https://developer.work.weixin.qq.com/document/path/90664) 或加入我们的交流群。

  ### 💬 加入社区

  |                          方式 1：扫码直接入群                          |                     方式 2：联系作者邀请                     |
  | :--------------------------------------------------------------------: | :----------------------------------------------------------: |
  | <img src="./wechat_group_qrcode.jpg" width="200" alt="微信群二维码" /> | <img src="./wechat_qrcode.jpg" width="200" alt="作者微信" /> |
  |                                 (推荐)                                 |               若群码失效，请备注 **n8n** 拉你                |

  ### 参与贡献

  我们非常欢迎社区贡献！如果你发现了 bug、有新功能建议或想要改进代码：

  - **提交 Issue**：[GitHub Issues](https://github.com/funcodingdev/n8n-nodes-wecom/issues) - 报告问题或提出功能建议
  - **提交 Pull Request**：[GitHub Pull Requests](https://github.com/funcodingdev/n8n-nodes-wecom/pulls) - 贡献代码改进

  无论是代码贡献、文档改进还是功能建议，我们都非常感谢！

  ---

  ## 🧩 节点分类

  本插件按照企业微信官方文档的分类结构，提供以下节点：

  ### 1. 企业微信-基础

  包含企业微信的基础通信和管理功能：

  - **通讯录管理** - 成员、部门、标签管理
  - **应用消息** - 发送各类应用消息
  - **群聊会话** - 群聊管理和消息发送
  - **消息推送** - 群机器人 Webhook 推送
  - **企业互联** - 企业互联和上下游管理
  - **素材管理** - 素材上传和管理
  - **电子发票** - 电子发票查询和状态管理
  - **第三方应用授权** - 获取第三方应用凭证
  - **第三方应用接口调用许可** - 接口调用许可管理
  - **第三方应用收银台** - 第三方应用收银台
  - **第三方应用推广二维码** - 第三方应用推广二维码
  - **账号 ID** - 自建应用与第三方应用的对接

  ### 2. 企业微信-办公

  包含企业微信的协同办公功能：

  - **日程管理** - 日历和日程管理
  - **会议管理** - 会议预约、会议控制、录制管理
  - **直播管理** - 直播创建、观看、统计管理
  - **邮件管理** - 企业邮箱、邮件群组、公共邮箱
  - **文档管理** - 在线文档、表格、智能表格
  - **微盘管理** - 微盘空间和文件管理
  - **打卡管理** - 打卡规则、打卡记录、排班管理
  - **审批管理** - 审批模板、审批申请、假期管理
  - **汇报管理** - 汇报记录、汇报统计
  - **人事助手** - 员工花名册信息管理
  - **会议室管理** - 会议室和会议室预定管理
  - **紧急通知** - 语音电话等紧急通知

  ### 3. 企业微信-连接微信

  包含企业微信连接微信的功能：

  - **客户联系** - 客户管理、标签、继承、客户群、朋友圈、群发等
  - **微信客服** - 客服账号、接待人员、消息收发、统计管理
  - **家校应用** - 健康上报、上课直播、班级收款

  ### 4. 企业微信消息接收触发器

  接收企业微信的消息和事件推送（支持普通接收和被动回复两种模式）

  ### 5. 企业微信第三方应用指令回调触发器

  接收企业微信第三方应用的指令回调事件（授权、通讯录变更、ticket变化等）

  ## 🔒 隐私与安全

  **本插件完全基于企业微信官方 API 开发，直连企业微信服务器，不经过任何第三方服务器。**

  - ✅ **数据直连**：默认所有 API 请求直接发送到企业微信官方服务器 (`qyapi.weixin.qq.com`)
  - ✅ **API 代理**：支持配置自定义 API Base URL，适用于需要通过代理访问企业微信 API 的网络环境（默认直连）
  - ✅ **无数据缓存**：插件不存储、不缓存任何企业数据或用户信息
  - ✅ **无第三方依赖**：不依赖任何第三方数据服务或分析服务
  - ✅ **开源透明**：源代码完全开源，可随时审查和验证
  - ✅ **本地运行**：所有数据处理均在你的 n8n 实例中进行

  你的企业数据安全完全由你的 n8n 实例和企业微信官方平台保障。

  ## 📦 安装

  在 n8n 中通过社区节点管理界面搜索 `n8n-nodes-wecom` 进行安装，或使用命令行：

  ```bash
  npm install n8n-nodes-wecom
  ```

  详细安装指南请参考 [n8n 社区节点文档](https://docs.n8n.io/integrations/community-nodes/installation/)。

  ## 🔑 凭证配置

  ### 消息推送凭证（WebHook URL）

  **消息推送**功能用于通过群机器人 Webhook 发送消息到企业微信群聊

  #### 配置步骤

  1. 在企业微信群聊中，点击右上角"..."菜单
  2. 选择"群机器人" > "添加机器人"
  3. 创建一个机器人并复制 Webhook 地址
  4. 在 n8n 中配置"企业微信群机器人 Webhook"凭证，填入 Webhook 地址

  ### 获取企业微信请求凭证（消息发送、通讯录、素材管理等功能需要）

  1. 登录 [企业微信管理后台](https://work.weixin.qq.com/)
  2. 进入"我的企业" > "企业信息"，复制 **企业ID (CorpID)**
  3. 进入"应用管理" > 选择或创建一个应用
  4. 复制 **AgentId**（应用ID）
  5. 点击"查看Secret"，复制 **Secret**

  ### 获取企业微信消息接收凭证

  1. 登录 [企业微信管理后台](https://work.weixin.qq.com/)
  2. 进入"我的企业" > "企业信息"，复制 **企业ID (CorpID)**
  3. 进入"应用管理" > 选择或创建一个应用
  4. 启用 **API接收消息**，设置Token、EncodingAESKey
  5. 在 n8n 中创建"企业微信消息接收触发器"节点：
     - 配置凭证（企业ID、Token、EncodingAESKey）
     - **Path** 表示 Webhook URL 的路径，建议使用应用 ID
     - 保存节点后，查看生成的 Webhook URL（例如：`https://your-n8n.com/webhook/1000001`）
  6. 将 Webhook URL 填入企业微信后台的**接收消息服务器配置**中

  **重要提示**：

  - 企业微信每个应用只能配置一个接收消息 URL
  - 多个工作流可以使用同一个凭证（同一应用ID），它们会共享同一个 Webhook URL 接收消息
  - 不同应用请创建不同的凭证，使用不同的应用ID

  ### 获取企业微信第三方应用指令回调凭证

  1. 登录 [企业微信服务商后台](https://open.work.weixin.qq.com/)
  2. 进入"应用管理" > "第三方应用"，选择或创建一个第三方应用
  3. 复制 **第三方应用ID (SuiteID)**（以ww或wx开头）
  4. 在"应用详情" > "开发信息"中，设置**指令回调URL**，配置Token、EncodingAESKey
  5. 在 n8n 中创建"企业微信第三方应用指令回调触发器"节点：
     - 配置凭证（第三方应用ID、Token、EncodingAESKey）
     - **Path** 表示 Webhook URL 的路径，建议使用应用相关的唯一标识（例如：`suite/receive`）
     - 保存节点后，查看生成的 Webhook URL（例如：`https://your-n8n.com/webhook/suite/receive`）
  6. 将 Webhook URL 填入企业微信服务商后台的**指令回调URL**配置中

  **重要提示**：

  - 第三方应用的指令回调使用SuiteID作为receiveid（而不是CorpID）
  - 服务商收到推送后必须返回字符串 "success"，否则企业微信会把返回内容当作错误信息
  - 支持的事件类型：授权变更、通讯录变更、Suite Ticket推送、应用变更等

  ## ✨ 已实现功能

  以下功能按照企业微信官方文档分类组织：

  ---

  ## 一、基础功能（企业微信-基础 节点）

  ### 消息接收（触发器节点）

  > [官方文档：接收消息与事件](https://developer.work.weixin.qq.com/document/path/90238)

  **接收消息功能：**

  - ✅ [接收企业微信应用消息回调](https://developer.work.weixin.qq.com/document/path/90238)
  - ✅ [接收文本消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 Content 字段）
  - ✅ [接收图片消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 PicUrl、MediaId 字段）
  - ✅ [接收语音消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 MediaId、Format 字段）
  - ✅ [接收视频消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 MediaId、ThumbMediaId 字段）
  - ✅ [接收位置消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 Location_X、Location_Y、Scale、Label、AppType 字段）
  - ✅ [接收链接消息](https://developer.work.weixin.qq.com/document/path/90239)（包含 Title、Description、Url、PicUrl 字段）
  - ✅ [接收事件推送](https://developer.work.weixin.qq.com/document/path/90240)（成员变更、部门变更等）
  - ✅ [接口许可失效通知](https://developer.work.weixin.qq.com/document/path/90600)（当许可账号失效的企业成员访问应用时触发）
  - ✅ URL 验证
  - ✅ 消息加解密
  - ✅ 签名验证

  **被动回复消息功能：**

  > [官方文档：被动回复消息](https://developer.work.weixin.qq.com/document/path/90241)

  使用「企业微信消息接收（被动回复）触发器」+ 「企业微信-基础」节点的「被动回复」功能实现：

  - ✅ [被动回复文本消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ [被动回复图片消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ [被动回复语音消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ [被动回复视频消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ [被动回复图文消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ [被动回复模板卡片更新消息](https://developer.work.weixin.qq.com/document/path/90241)
  - ✅ 自动加密和签名
  - ✅ 支持从工作流输出中读取回复内容

  **工作流配置示例：**

  ```
  [企业微信消息接收(被动回复)触发器] → [中间处理节点(可选)] → [企业微信-基础 (被动回复)]
  ```

  > ⚠️ **重要提示**：
  >
  > - 被动回复节点**必须是工作流的最后一个节点**
  > - 必须在**5秒内**返回响应，否则企业微信会认为请求失败
  > - 请确保工作流处理时间足够快

  **回调机制参考文档：**

  - [回调机制说明](https://developer.work.weixin.qq.com/document/path/92520)
  - [回调机制示例代码](https://developer.work.weixin.qq.com/document/path/92521)

  **第三方应用指令回调功能：**

  > [官方文档：第三方应用回调事件](https://developer.work.weixin.qq.com/document/path/91116)

  使用「企业微信第三方应用指令回调触发器」接收第三方应用的指令回调事件：

  - ✅ [接收授权成功通知](https://developer.work.weixin.qq.com/document/path/91118)
  - ✅ [接收变更授权通知](https://developer.work.weixin.qq.com/document/path/91119)
  - ✅ [接收取消授权通知](https://developer.work.weixin.qq.com/document/path/91120)
  - ✅ [接收Suite Ticket推送](https://developer.work.weixin.qq.com/document/path/91117)
  - ✅ [接收成员通知事件](https://developer.work.weixin.qq.com/document/path/91121)
  - ✅ [接收部门通知事件](https://developer.work.weixin.qq.com/document/path/91122)
  - ✅ [接收标签通知事件](https://developer.work.weixin.qq.com/document/path/91123)
  - ✅ [接收共享应用事件回调](https://developer.work.weixin.qq.com/document/path/91124)
  - ✅ [接收重置永久授权码通知](https://developer.work.weixin.qq.com/document/path/95437)
  - ✅ [接收应用管理员变更通知](https://developer.work.weixin.qq.com/document/path/91125)
  - ✅ [接收授权组织架构权限通知](https://developer.work.weixin.qq.com/document/path/91126)
  - ✅ [接收获客助手权限变更通知](https://developer.work.weixin.qq.com/document/path/91127)
  - ✅ [接收支付成功通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收退款结果通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收自动激活回调通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收下单成功通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收改单通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收支付成功通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收退款通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收应用版本变更通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收取消订单通知](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [接收注册完成回调事件](https://developer.work.weixin.qq.com/document/path/90585)
  - ✅ [接收扫描推广二维码事件](https://developer.work.weixin.qq.com/document/path/98071)
  - ✅ URL 验证
  - ✅ 消息加解密（使用SuiteID作为receiveid）
  - ✅ 签名验证
  - ✅ 自动返回 "success" 响应（授权相关事件需在1000ms内响应）

  **重要提示**：

  - 第三方应用的指令回调使用SuiteID作为receiveid（而不是CorpID）
  - 服务商收到推送后必须返回字符串 "success"，否则企业微信会把返回内容当作错误信息
  - 授权相关事件（create_auth、change_auth、cancel_auth、reset_permanent_code）的响应必须在1000ms内完成
  - 收到取消授权事件后，应当确保删除该企业所有相关的数据

  ### 消息推送（群机器人）

  > [官方文档：消息推送配置说明](https://developer.work.weixin.qq.com/document/path/99110)

  - ✅ 发送文本消息
  - ✅ 发送 Markdown 消息
  - ✅ 发送 Markdown V2 消息
  - ✅ 发送图片消息
  - ✅ 发送图文消息
  - ✅ 发送文件消息
  - ✅ 发送语音消息
  - ✅ 发送模板卡片消息
    - 文本通知模板卡片
    - 图文展示模板卡片

  ### 应用消息发送

  > [官方文档：发送应用消息](https://developer.work.weixin.qq.com/document/path/90236)

  - ✅ 发送文本消息
  - ✅ 发送 Markdown 消息
  - ✅ 发送图片消息
  - ✅ 发送语音消息
  - ✅ 发送视频消息
  - ✅ 发送文件消息
  - ✅ 发送文本卡片消息
  - ✅ 发送图文消息（news）
  - ✅ 发送图文消息（mpnews）
  - ✅ 发送小程序通知消息
  - ✅ 发送任务卡片消息
  - ✅ 发送模板卡片消息
  - ✅ [发送学校通知](https://developer.work.weixin.qq.com/document/path/91609)（家校应用）
  - ✅ [撤回应用消息](https://developer.work.weixin.qq.com/document/path/94867)
  - ✅ [更新模板卡片消息](https://developer.work.weixin.qq.com/document/path/94888)

  ### 群聊会话

  > [官方文档：应用发送消息到群聊会话](https://developer.work.weixin.qq.com/document/path/90244)

  - ✅ [创建群聊会话](https://developer.work.weixin.qq.com/document/path/90245)
  - ✅ [获取群聊会话信息](https://developer.work.weixin.qq.com/document/path/98914)
  - ✅ [修改群聊会话](https://developer.work.weixin.qq.com/document/path/98913)
  - ✅ [发送消息到群聊](https://developer.work.weixin.qq.com/document/path/90248)
    - 发送文本消息到群聊（支持 `@群成员` / `@所有人`）
    - 发送图片消息到群聊
    - 发送文件消息到群聊
    - 发送 Markdown 消息到群聊
    - 发送图文消息到群聊

  ### 通讯录管理

  > [官方文档：通讯录管理](https://developer.work.weixin.qq.com/document/path/90193)

  #### 成员管理

  - ✅ [创建成员](https://developer.work.weixin.qq.com/document/path/90195)
  - ✅ [读取成员信息](https://developer.work.weixin.qq.com/document/path/90196)
  - ✅ [更新成员](https://developer.work.weixin.qq.com/document/path/90197)
  - ✅ [删除成员](https://developer.work.weixin.qq.com/document/path/90198)
  - ✅ [批量删除成员](https://developer.work.weixin.qq.com/document/path/90199)
  - ✅ [获取部门成员列表](https://developer.work.weixin.qq.com/document/path/90200)
  - ✅ [获取部门成员详情](https://developer.work.weixin.qq.com/document/path/90201)
  - ✅ [获取成员ID列表](https://developer.work.weixin.qq.com/document/path/96067)
  - ✅ [userid与openid互换](https://developer.work.weixin.qq.com/document/path/90202)
  - ✅ [登录二次验证](https://developer.work.weixin.qq.com/document/path/91623)
  - ✅ [邀请成员](https://developer.work.weixin.qq.com/document/path/90975)
  - ✅ [获取加入企业二维码](https://developer.work.weixin.qq.com/document/path/91714)
  - ✅ [手机号获取userid](https://developer.work.weixin.qq.com/document/path/95402)
  - ✅ [邮箱获取userid](https://developer.work.weixin.qq.com/document/path/95895)
  - ✅ [临时外部联系人ID转换](https://developer.work.weixin.qq.com/document/path/98729)

  #### 部门管理

  - ✅ [创建部门](https://developer.work.weixin.qq.com/document/path/90205)
  - ✅ [更新部门](https://developer.work.weixin.qq.com/document/path/90206)
  - ✅ [删除部门](https://developer.work.weixin.qq.com/document/path/90207)
  - ✅ [获取部门列表](https://developer.work.weixin.qq.com/document/path/90208)
  - ✅ [获取子部门ID列表](https://developer.work.weixin.qq.com/document/path/95350)
  - ✅ [获取单个部门详情](https://developer.work.weixin.qq.com/document/path/95351)

  #### 标签管理

  - ✅ [创建标签](https://developer.work.weixin.qq.com/document/path/90210)
  - ✅ [更新标签名字](https://developer.work.weixin.qq.com/document/path/90211)
  - ✅ [删除标签](https://developer.work.weixin.qq.com/document/path/90212)
  - ✅ [获取标签成员](https://developer.work.weixin.qq.com/document/path/90213)
  - ✅ [增加标签成员](https://developer.work.weixin.qq.com/document/path/90214)
  - ✅ [删除标签成员](https://developer.work.weixin.qq.com/document/path/90215)
  - ✅ [获取标签列表](https://developer.work.weixin.qq.com/document/path/90216)

  #### 账号ID转换

  > [官方文档：账号 ID](https://developer.work.weixin.qq.com/document/path/98728)

  - ✅ [用户ID转OpenID](https://developer.work.weixin.qq.com/document/path/90202)
  - ✅ [OpenID转用户ID](https://developer.work.weixin.qq.com/document/path/90202)
  - ✅ [临时外部联系人ID转换](https://developer.work.weixin.qq.com/document/path/98729)
  - ✅ [corpid转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [userid转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [external_userid转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [external_userid转换（客户群成员）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [unionid转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [external_userid查询pending_id（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [客户标签ID转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [微信客服ID转换（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [ID迁移完成状态设置（第三方应用）](https://developer.work.weixin.qq.com/document/path/95890)

  #### 异步导入接口

  > [官方文档：异步导入接口](https://developer.work.weixin.qq.com/document/path/90979)

  - ✅ [增量更新成员](https://developer.work.weixin.qq.com/document/path/90980)
  - ✅ [全量覆盖成员](https://developer.work.weixin.qq.com/document/path/90981)
  - ✅ [全量覆盖部门](https://developer.work.weixin.qq.com/document/path/90982)
  - ✅ [获取异步任务结果](https://developer.work.weixin.qq.com/document/path/90983)

  #### 异步导出接口

  > [官方文档：异步导出接口](https://developer.work.weixin.qq.com/document/path/94850)

  - ✅ [导出成员](https://developer.work.weixin.qq.com/document/path/94849)
  - ✅ [导出成员详情](https://developer.work.weixin.qq.com/document/path/94851)
  - ✅ [导出部门](https://developer.work.weixin.qq.com/document/path/94852)
  - ✅ [导出标签成员](https://developer.work.weixin.qq.com/document/path/94853)
  - ✅ [获取导出结果](https://developer.work.weixin.qq.com/document/path/94854)

  ### 素材管理

  > [官方文档：素材管理](https://developer.work.weixin.qq.com/document/path/91054)

  - ✅ [上传临时素材](https://developer.work.weixin.qq.com/document/path/90253)
  - ✅ [上传图片](https://developer.work.weixin.qq.com/document/path/90256)
  - ✅ [异步上传临时素材](https://developer.work.weixin.qq.com/document/path/96219)
  - ✅ [获取临时素材](https://developer.work.weixin.qq.com/document/path/90254)
  - ✅ [获取高清语音素材](https://developer.work.weixin.qq.com/document/path/90255)

  ### 企业互联

  > [官方文档：企业互联](https://developer.work.weixin.qq.com/document/path/93360)

  #### 企业互联基础接口

  - ✅ [获取应用共享信息](https://developer.work.weixin.qq.com/document/path/93403)
  - ✅ [获取下级/下游企业的access_token](https://developer.work.weixin.qq.com/document/path/93359)
  - ✅ [获取下级/下游企业小程序session](https://developer.work.weixin.qq.com/document/path/93355)

  #### 上下游基础接口

  > [官方文档：上下游](https://developer.work.weixin.qq.com/document/path/97213)

  - ✅ [获取应用共享信息](https://developer.work.weixin.qq.com/document/path/95813)
  - ✅ [获取下级/下游企业的access_token](https://developer.work.weixin.qq.com/document/path/95816)
  - ✅ [获取下级/下游企业小程序session](https://developer.work.weixin.qq.com/document/path/95817)
  - ✅ [上下游关联客户信息-已添加客户](https://developer.work.weixin.qq.com/document/path/95818)
  - ✅ [上下游关联客户信息-未添加客户](https://developer.work.weixin.qq.com/document/path/97357)

  #### 上下游通讯录管理

  - ✅ [获取上下游信息](https://developer.work.weixin.qq.com/document/path/95820)
  - ✅ [批量导入上下游联系人](https://developer.work.weixin.qq.com/document/path/95821)
  - ✅ [获取异步任务结果](https://developer.work.weixin.qq.com/document/path/95823)
  - ✅ [移除企业](https://developer.work.weixin.qq.com/document/path/95822)
  - ✅ [查询成员自定义id](https://developer.work.weixin.qq.com/document/path/97441)
  - ✅ [获取下级企业加入的上下游](https://developer.work.weixin.qq.com/document/path/97442)

  #### 上下游规则

  - ✅ [获取对接规则id列表](https://developer.work.weixin.qq.com/document/path/95631)
  - ✅ [删除对接规则](https://developer.work.weixin.qq.com/document/path/95632)
  - ✅ [获取对接规则详情](https://developer.work.weixin.qq.com/document/path/95633)
  - ✅ [新增对接规则](https://developer.work.weixin.qq.com/document/path/95634)
  - ✅ [更新对接规则](https://developer.work.weixin.qq.com/document/path/95635)

  ### 系统

  > [官方文档：获取企业微信服务器IP段](https://developer.work.weixin.qq.com/document/path/92520)

  - ✅ [获取企业微信接口IP段](https://developer.work.weixin.qq.com/document/path/92520)
  - ✅ [获取企业微信回调IP段](https://developer.work.weixin.qq.com/document/path/92521)

  ### 电子发票

  > [官方文档：电子发票](https://developer.work.weixin.qq.com/document/path/90283)

  - ✅ [查询电子发票](https://developer.work.weixin.qq.com/document/path/90284)
  - ✅ [更新发票状态](https://developer.work.weixin.qq.com/document/path/90285)
  - ✅ [批量更新发票状态](https://developer.work.weixin.qq.com/document/path/90286)
  - ✅ [批量查询电子发票](https://developer.work.weixin.qq.com/document/path/90287)

  ### 第三方应用授权

  > [官方文档：应用授权](https://developer.work.weixin.qq.com/document/path/90600)

  - ✅ [获取第三方应用凭证](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [获取预授权码](https://developer.work.weixin.qq.com/document/path/90601)
  - ✅ [设置授权配置](https://developer.work.weixin.qq.com/document/path/90602)
  - ✅ [获取企业永久授权码](https://developer.work.weixin.qq.com/document/path/100776)
  - ✅ [获取企业授权信息](https://developer.work.weixin.qq.com/document/path/100779)
  - ✅ [获取企业凭证](https://developer.work.weixin.qq.com/document/path/90605)
  - ✅ [获取应用二维码](https://developer.work.weixin.qq.com/document/path/95430)
  - ✅ [明文corpid转换为加密corpid](https://developer.work.weixin.qq.com/document/path/95890)
  - ✅ [获取应用权限详情](https://developer.work.weixin.qq.com/document/path/99052)
  - ✅ [获取应用管理员列表](https://developer.work.weixin.qq.com/document/path/100073)
  - ✅ [获取订单列表](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [获取订单详情](https://developer.work.weixin.qq.com/document/path/90600)
  - ✅ [延长试用期](https://developer.work.weixin.qq.com/document/path/90600)

  ### 第三方应用接口调用许可

  > [官方文档：接口调用许可](https://developer.work.weixin.qq.com/document/path/95652)

  - ✅ [下单购买账号](https://developer.work.weixin.qq.com/document/path/95644)
  - ✅ [下单续期账号](https://developer.work.weixin.qq.com/document/path/95646)
  - ✅ [获取订单列表](https://developer.work.weixin.qq.com/document/path/95647)
  - ✅ [获取订单详情](https://developer.work.weixin.qq.com/document/path/95648)
  - ✅ [获取订单中的账号列表](https://developer.work.weixin.qq.com/document/path/95649)
  - ✅ [取消订单](https://developer.work.weixin.qq.com/document/path/96106)
  - ✅ [下单购买多企业账号](https://developer.work.weixin.qq.com/document/path/98892)
  - ✅ [获取多企业订单详情](https://developer.work.weixin.qq.com/document/path/98893)

  ### 第三方应用收银台

  > [官方文档：第三方应用收银台](https://developer.work.weixin.qq.com/document/path/97654)

  - ✅ [创建收款订单](https://developer.work.weixin.qq.com/document/path/98045)
  - ✅ [取消收款订单](https://developer.work.weixin.qq.com/document/path/98046)
  - ✅ [获取收款订单列表](https://developer.work.weixin.qq.com/document/path/98053)
  - ✅ [获取收款订单详情](https://developer.work.weixin.qq.com/document/path/98054)
  - ✅ [获取发票列表](https://developer.work.weixin.qq.com/document/path/99436)
  - ✅ [标记开票状态](https://developer.work.weixin.qq.com/document/path/99437)
  - ✅ [签名算法](https://developer.work.weixin.qq.com/document/path/98768)
  - ✅ [使用余额支付订单](https://developer.work.weixin.qq.com/document/path/99415)

  ### 第三方应用推广二维码

  > [官方文档：第三方应用推广二维码](https://developer.work.weixin.qq.com/document/path/90578)

  - ✅ [获取注册码](https://developer.work.weixin.qq.com/document/path/90581)
  - ✅ [查询注册状态](https://developer.work.weixin.qq.com/document/path/90582)
  - ✅ [设置授权应用可见范围](https://developer.work.weixin.qq.com/document/path/90583)
  - ✅ [设置通讯录同步完成](https://developer.work.weixin.qq.com/document/path/90584)
  - ✅ [激活账号](https://developer.work.weixin.qq.com/document/path/95553)
  - ✅ [获取激活码详情](https://developer.work.weixin.qq.com/document/path/95552)
  - ✅ [获取企业的账号列表](https://developer.work.weixin.qq.com/document/path/95544)
  - ✅ [获取成员的激活详情](https://developer.work.weixin.qq.com/document/path/95555)
  - ✅ [账号继承](https://developer.work.weixin.qq.com/document/path/95673)
  - ✅ [分配激活码给下游/下级企业](https://developer.work.weixin.qq.com/document/path/96059)
  - ✅ [获取应用的接口许可状态](https://developer.work.weixin.qq.com/document/path/95844)
  - ✅ [设置企业的许可自动激活状态](https://developer.work.weixin.qq.com/document/path/95873)
  - ✅ [查询企业的许可自动激活状态](https://developer.work.weixin.qq.com/document/path/95874)
  - ✅ [充值账户余额查询](https://developer.work.weixin.qq.com/document/path/100137)
  - ✅ [民生优惠条件查询](https://developer.work.weixin.qq.com/document/path/96515)

  **接口调用许可事件通知：**

  - ✅ [接口许可失效通知](https://developer.work.weixin.qq.com/document/path/95716)
  - ✅ [支付成功通知](https://developer.work.weixin.qq.com/document/path/95804)
  - ✅ [退款结果通知](https://developer.work.weixin.qq.com/document/path/95805)
  - ✅ [自动激活回调通知](https://developer.work.weixin.qq.com/document/path/95994)

  ---

  ## 二、办公功能（企业微信-办公 节点）

  ### 邮件管理

  > [官方文档：邮件](https://developer.work.weixin.qq.com/document/path/95486)

  #### 发送邮件

  - ✅ [发送普通邮件](https://developer.work.weixin.qq.com/document/path/97445)
  - ✅ [发送日程邮件](https://developer.work.weixin.qq.com/document/path/97854)
  - ✅ [发送会议邮件](https://developer.work.weixin.qq.com/document/path/97855)

  #### 获取接收的邮件

  - ✅ [获取收件箱邮件列表](https://developer.work.weixin.qq.com/document/path/97369)
  - ✅ [获取邮件内容](https://developer.work.weixin.qq.com/document/path/97979)

  #### 管理应用邮箱账号

  - ✅ [更新应用邮箱账号](https://developer.work.weixin.qq.com/document/path/97373)
  - ✅ [查询应用邮箱账号](https://developer.work.weixin.qq.com/document/path/97991)

  #### 管理邮件群组

  - ✅ [创建邮件群组](https://developer.work.weixin.qq.com/document/path/95510)
  - ✅ [更新邮件群组](https://developer.work.weixin.qq.com/document/path/97995)
  - ✅ [删除邮件群组](https://developer.work.weixin.qq.com/document/path/97996)
  - ✅ [获取邮件群组详情](https://developer.work.weixin.qq.com/document/path/97997)
  - ✅ [模糊搜索邮件群组](https://developer.work.weixin.qq.com/document/path/97998)

  #### 管理公共邮箱

  - ✅ [创建公共邮箱](https://developer.work.weixin.qq.com/document/path/95511)
  - ✅ [更新公共邮箱](https://developer.work.weixin.qq.com/document/path/98000)
  - ✅ [删除公共邮箱](https://developer.work.weixin.qq.com/document/path/98001)
  - ✅ [获取公共邮箱详情](https://developer.work.weixin.qq.com/document/path/98002)
  - ✅ [模糊搜索公共邮箱](https://developer.work.weixin.qq.com/document/path/98003)

  #### 客户端专用密码

  - ✅ [获取客户端专用密码列表](https://developer.work.weixin.qq.com/document/path/100183)
  - ✅ [删除客户端专用密码](https://developer.work.weixin.qq.com/document/path/100184)

  #### 邮件高级功能账号管理

  - ✅ [分配高级功能账号](https://developer.work.weixin.qq.com/document/path/99316)
  - ✅ [取消高级功能账号](https://developer.work.weixin.qq.com/document/path/99317)
  - ✅ [获取高级功能账号列表](https://developer.work.weixin.qq.com/document/path/99318)
  - ✅ [禁用/启用邮箱账号](https://developer.work.weixin.qq.com/document/path/95512)

  #### 其他邮件客户端登录设置

  - ✅ [获取用户功能属性](https://developer.work.weixin.qq.com/document/path/95513)
  - ✅ [更改用户功能属性](https://developer.work.weixin.qq.com/document/path/98008)
  - ✅ [获取邮件未读数](https://developer.work.weixin.qq.com/document/path/95514)

  ### 文档管理

  #### 管理文档

  - ✅ [新建文档](https://developer.work.weixin.qq.com/document/path/97460)
  - ✅ [重命名文档](https://developer.work.weixin.qq.com/document/path/97736)
  - ✅ [删除文档](https://developer.work.weixin.qq.com/document/path/97735)
  - ✅ [获取文档基础信息](https://developer.work.weixin.qq.com/document/path/97734)
  - ✅ [分享文档](https://developer.work.weixin.qq.com/document/path/97733)

  #### 编辑文档

  - ✅ [编辑文档内容](https://developer.work.weixin.qq.com/document/path/97626)
  - ✅ [编辑表格内容](https://developer.work.weixin.qq.com/document/path/97628)

  #### 编辑智能表格内容

  - ✅ [添加子表](https://developer.work.weixin.qq.com/document/path/99896)
  - ✅ [删除子表](https://developer.work.weixin.qq.com/document/path/99899)
  - ✅ [更新子表](https://developer.work.weixin.qq.com/document/path/99898)
  - ✅ [添加视图](https://developer.work.weixin.qq.com/document/path/99900)
  - ✅ [删除视图](https://developer.work.weixin.qq.com/document/path/99901)
  - ✅ [更新视图](https://developer.work.weixin.qq.com/document/path/99902)
  - ✅ [添加字段](https://developer.work.weixin.qq.com/document/path/99904)
  - ✅ [删除字段](https://developer.work.weixin.qq.com/document/path/99905)
  - ✅ [更新字段](https://developer.work.weixin.qq.com/document/path/99906)
  - ✅ [添加记录](https://developer.work.weixin.qq.com/document/path/99907)
  - ✅ [删除记录](https://developer.work.weixin.qq.com/document/path/99908)
  - ✅ [更新记录](https://developer.work.weixin.qq.com/document/path/99909)
  - ✅ [接收外部数据到智能表格](https://developer.work.weixin.qq.com/document/path/101239/)

  #### 获取文档数据

  - ✅ [获取文档数据](https://developer.work.weixin.qq.com/document/path/97659)
  - ✅ [获取表格行列信息](https://developer.work.weixin.qq.com/document/path/97711)
  - ✅ [获取表格数据](https://developer.work.weixin.qq.com/document/path/97661)

  #### 获取智能表格数据

  - ✅ [查询子表](https://developer.work.weixin.qq.com/document/path/99911)
  - ✅ [查询视图](https://developer.work.weixin.qq.com/document/path/99913)
  - ✅ [查询字段](https://developer.work.weixin.qq.com/document/path/99914)
  - ✅ [查询记录](https://developer.work.weixin.qq.com/document/path/99915)

  #### 设置文档权限

  - ✅ [获取文档权限信息](https://developer.work.weixin.qq.com/document/path/97461)
  - ✅ [修改文档加入规则](https://developer.work.weixin.qq.com/document/path/97778)
  - ✅ [修改文档通知范围及权限](https://developer.work.weixin.qq.com/document/path/97781)
  - ✅ [修改文档安全设置](https://developer.work.weixin.qq.com/document/path/97782)
  - ✅ [管理智能表格内容权限](https://developer.work.weixin.qq.com/document/path/99935)

  #### 管理收集表

  - ✅ [创建收集表](https://developer.work.weixin.qq.com/document/path/97462)
  - ✅ [编辑收集表](https://developer.work.weixin.qq.com/document/path/97816)
  - ✅ [获取收集表信息](https://developer.work.weixin.qq.com/document/path/97817)
  - ✅ [收集表的统计信息查询](https://developer.work.weixin.qq.com/document/path/97818)
  - ✅ [读取收集表答案](https://developer.work.weixin.qq.com/document/path/97819)

  #### 文档高级功能账号管理

  - ✅ [分配高级功能账号](https://developer.work.weixin.qq.com/document/path/99516)
  - ✅ [取消高级功能账号](https://developer.work.weixin.qq.com/document/path/99517)
  - ✅ [获取高级功能账号列表](https://developer.work.weixin.qq.com/document/path/99518)

  #### 文档素材管理

  - ✅ [上传文档图片](https://developer.work.weixin.qq.com/document/path/99933)

  ### 日程管理

  > [官方文档：日程](https://developer.work.weixin.qq.com/document/path/93647)

  #### 管理日历

  - ✅ [创建日历](https://developer.work.weixin.qq.com/document/path/93647)
  - ✅ [更新日历](https://developer.work.weixin.qq.com/document/path/97716)
  - ✅ [获取日历详情](https://developer.work.weixin.qq.com/document/path/97717)
  - ✅ [删除日历](https://developer.work.weixin.qq.com/document/path/97718)

  #### 管理日程

  - ✅ [创建日程](https://developer.work.weixin.qq.com/document/path/93648)
  - ✅ [更新日程](https://developer.work.weixin.qq.com/document/path/97720)
  - ✅ [更新重复日程](https://developer.work.weixin.qq.com/document/path/96204)
  - ✅ [新增日程参与者](https://developer.work.weixin.qq.com/document/path/97721)
  - ✅ [删除日程参与者](https://developer.work.weixin.qq.com/document/path/97722)
  - ✅ [获取日历下的日程列表](https://developer.work.weixin.qq.com/document/path/97723)
  - ✅ [获取日程详情](https://developer.work.weixin.qq.com/document/path/97724)
  - ✅ [取消日程](https://developer.work.weixin.qq.com/document/path/97725)

  ### 会议管理

  > [官方文档：会议](https://developer.work.weixin.qq.com/document/path/99104)

  #### 预约会议基础管理

  - ✅ [创建预约会议](https://developer.work.weixin.qq.com/document/path/99104)
  - ✅ [修改预约会议](https://developer.work.weixin.qq.com/document/path/99047)
  - ✅ [取消预约会议](https://developer.work.weixin.qq.com/document/path/99048)
  - ✅ [获取会议详情](https://developer.work.weixin.qq.com/document/path/99049)
  - ✅ [获取成员会议ID列表](https://developer.work.weixin.qq.com/document/path/99050)

  #### 会议统计管理

  - ✅ [获取会议发起记录](https://developer.work.weixin.qq.com/document/path/99651)

  #### 预约会议高级管理

  - ✅ [创建预约会议（高级）](https://developer.work.weixin.qq.com/document/path/98148)
  - ✅ [修改预约会议（高级）](https://developer.work.weixin.qq.com/document/path/98154)
  - ✅ [获取会议受邀成员列表](https://developer.work.weixin.qq.com/document/path/98160)
  - ✅ [更新会议受邀成员列表](https://developer.work.weixin.qq.com/document/path/98162)
  - ✅ [获取实时会中成员列表](https://developer.work.weixin.qq.com/document/path/98157)
  - ✅ [获取已参会成员列表](https://developer.work.weixin.qq.com/document/path/98156)

  #### 会中控制管理

  - ✅ [静音成员](https://developer.work.weixin.qq.com/document/path/98184)
  - ✅ [移出成员](https://developer.work.weixin.qq.com/document/path/98181)
  - ✅ [结束会议](https://developer.work.weixin.qq.com/document/path/98187)

  #### 录制管理

  - ✅ [获取会议录制列表](https://developer.work.weixin.qq.com/document/path/98192)
  - ✅ [获取会议录制地址](https://developer.work.weixin.qq.com/document/path/98196)

  #### 会议高级功能账号管理

  - ✅ [分配高级功能账号](https://developer.work.weixin.qq.com/document/path/99508)
  - ✅ [取消高级功能账号](https://developer.work.weixin.qq.com/document/path/99509)
  - ✅ [获取高级功能账号列表](https://developer.work.weixin.qq.com/document/path/99510)

  ### 直播管理

  > [官方文档：直播](https://developer.work.weixin.qq.com/document/path/93633)

  - ✅ [创建预约直播](https://developer.work.weixin.qq.com/document/path/93637)
  - ✅ [修改预约直播](https://developer.work.weixin.qq.com/document/path/93640)
  - ✅ [取消预约直播](https://developer.work.weixin.qq.com/document/path/93638)
  - ✅ [删除直播回放](https://developer.work.weixin.qq.com/document/path/93874)
  - ✅ [在微信中观看直播或回放](https://developer.work.weixin.qq.com/document/path/93641)
  - ✅ [获取成员直播ID列表](https://developer.work.weixin.qq.com/document/path/93634)
  - ✅ [获取直播详情](https://developer.work.weixin.qq.com/document/path/93635)
  - ✅ [获取直播观看明细](https://developer.work.weixin.qq.com/document/path/93636)
  - ✅ [获取跳转小程序商城的直播观众信息](https://developer.work.weixin.qq.com/document/path/94442)

  ### 微盘管理

  > [官方文档：微盘](https://developer.work.weixin.qq.com/document/path/93654)

  #### 空间管理

  - ✅ [创建空间](https://developer.work.weixin.qq.com/document/path/93654)
  - ✅ [重命名空间](https://developer.work.weixin.qq.com/document/path/93656)
  - ✅ [删除空间](https://developer.work.weixin.qq.com/document/path/97884)
  - ✅ [获取空间信息](https://developer.work.weixin.qq.com/document/path/93655)
  - ✅ [添加空间成员](https://developer.work.weixin.qq.com/document/path/93658)
  - ✅ [移除空间成员](https://developer.work.weixin.qq.com/document/path/93659)
  - ✅ [空间安全设置](https://developer.work.weixin.qq.com/document/path/97886)
  - ✅ [获取空间邀请链接](https://developer.work.weixin.qq.com/document/path/97967)

  #### 文件管理

  - ✅ [获取文件列表](https://developer.work.weixin.qq.com/document/path/93657)
  - ✅ [上传文件](https://developer.work.weixin.qq.com/document/path/93662)
  - ✅ [下载文件](https://developer.work.weixin.qq.com/document/path/93663)
  - ✅ [创建文件夹](https://developer.work.weixin.qq.com/document/path/97970)
  - ✅ [重命名文件](https://developer.work.weixin.qq.com/document/path/97971)
  - ✅ [移动文件](https://developer.work.weixin.qq.com/document/path/97972)
  - ✅ [删除文件](https://developer.work.weixin.qq.com/document/path/97973)
  - ✅ [获取文件信息](https://developer.work.weixin.qq.com/document/path/97974)

  #### 文件权限管理

  - ✅ [添加文件成员](https://developer.work.weixin.qq.com/document/path/97975)
  - ✅ [移除文件成员](https://developer.work.weixin.qq.com/document/path/97976)
  - ✅ [文件分享设置](https://developer.work.weixin.qq.com/document/path/97977)
  - ✅ [获取文件分享链接](https://developer.work.weixin.qq.com/document/path/97978)
  - ✅ [获取文件权限信息](https://developer.work.weixin.qq.com/document/path/97979)
  - ✅ [文件安全设置](https://developer.work.weixin.qq.com/document/path/97980)

  ### 打卡管理

  > [官方文档：打卡](https://developer.work.weixin.qq.com/document/path/90262)

  - ✅ [获取企业所有打卡规则](https://developer.work.weixin.qq.com/document/path/93384)
  - ✅ [获取员工打卡规则](https://developer.work.weixin.qq.com/document/path/90263)
  - ✅ [获取打卡记录数据](https://developer.work.weixin.qq.com/document/path/90262)
  - ✅ [获取打卡日报数据](https://developer.work.weixin.qq.com/document/path/93374)
  - ✅ [获取打卡月报数据](https://developer.work.weixin.qq.com/document/path/93387)
  - ✅ [获取打卡人员排班信息](https://developer.work.weixin.qq.com/document/path/93380)
  - ✅ [为打卡人员排班](https://developer.work.weixin.qq.com/document/path/93385)
  - ✅ [为打卡人员补卡](https://developer.work.weixin.qq.com/document/path/95803)
  - ✅ [添加打卡记录](https://developer.work.weixin.qq.com/document/path/99647)
  - ✅ [录入打卡人员人脸信息](https://developer.work.weixin.qq.com/document/path/93378)
  - ✅ [获取设备打卡数据](https://developer.work.weixin.qq.com/document/path/94126)
  - ✅ [管理打卡规则](https://developer.work.weixin.qq.com/document/path/98041)

  ### 审批管理

  > [官方文档：审批](https://developer.work.weixin.qq.com/document/path/91854)

  - ✅ [获取审批模板详情](https://developer.work.weixin.qq.com/document/path/91982)
  - ✅ [提交审批申请](https://developer.work.weixin.qq.com/document/path/91853)
  - ✅ [批量获取审批单号](https://developer.work.weixin.qq.com/document/path/91816)
  - ✅ [获取审批申请详情](https://developer.work.weixin.qq.com/document/path/91983)
  - ✅ [获取企业假期管理配置](https://developer.work.weixin.qq.com/document/path/93375)
  - ✅ [获取成员假期余额](https://developer.work.weixin.qq.com/document/path/93376)
  - ✅ [修改成员假期余额](https://developer.work.weixin.qq.com/document/path/93377)
  - ✅ [创建审批模板](https://developer.work.weixin.qq.com/document/path/97437)
  - ✅ [更新审批模板](https://developer.work.weixin.qq.com/document/path/97438)

  ### 汇报管理

  > [官方文档：汇报](https://developer.work.weixin.qq.com/document/path/93496)

  - ✅ [批量获取汇报记录单号](https://developer.work.weixin.qq.com/document/path/93393)
  - ✅ [获取汇报记录详情](https://developer.work.weixin.qq.com/document/path/93394)
  - ✅ [获取汇报统计数据](https://developer.work.weixin.qq.com/document/path/93395)
  - ✅ [下载微盘文件](https://developer.work.weixin.qq.com/document/path/98021)

  ### 人事助手

  > [官方文档：人事助手](https://developer.work.weixin.qq.com/document/path/99130)

  - ✅ [获取员工字段配置](https://developer.work.weixin.qq.com/document/path/99131)
  - ✅ [获取员工花名册信息](https://developer.work.weixin.qq.com/document/path/99132)
  - ✅ [更新员工花名册信息](https://developer.work.weixin.qq.com/document/path/99133)

  ### 会议室管理

  > [官方文档：会议室](https://developer.work.weixin.qq.com/document/path/93618)

  - ✅ [会议室管理](https://developer.work.weixin.qq.com/document/path/93619)
  - ✅ [会议室预定管理](https://developer.work.weixin.qq.com/document/path/93620)
  - ✅ [批量获取申请单ID](https://developer.work.weixin.qq.com/document/path/99883)
  - ✅ [获取申请单详细信息](https://developer.work.weixin.qq.com/document/path/99885)
  - ✅ [设置审批单审批信息](https://developer.work.weixin.qq.com/document/path/99880)

  ### 紧急通知应用

  > [官方文档：紧急通知](https://developer.work.weixin.qq.com/document/path/91623)

  - ✅ [发起语音电话](https://developer.work.weixin.qq.com/document/path/91627)
  - ✅ [获取接听状态](https://developer.work.weixin.qq.com/document/path/91628)

  ---

  ## 三、连接微信功能（企业微信-连接微信 节点）

  ### 客户联系

  > [官方文档：客户联系](https://developer.work.weixin.qq.com/document/path/92109)

  #### 企业服务人员管理

  - ✅ [获取配置了客户联系功能的成员列表](https://developer.work.weixin.qq.com/document/path/92571)

  #### 客户管理

  - ✅ [获取客户列表](https://developer.work.weixin.qq.com/document/path/92113)
  - ✅ [获取客户详情](https://developer.work.weixin.qq.com/document/path/92114)
  - ✅ [批量获取客户详情](https://developer.work.weixin.qq.com/document/path/92994)
  - ✅ [修改客户备注信息](https://developer.work.weixin.qq.com/document/path/92115)

  #### 客户标签管理

  - ✅ [获取企业标签库](https://developer.work.weixin.qq.com/document/path/92117)
  - ✅ [添加企业客户标签](https://developer.work.weixin.qq.com/document/path/92117)
  - ✅ [编辑企业客户标签](https://developer.work.weixin.qq.com/document/path/92117)
  - ✅ [删除企业客户标签](https://developer.work.weixin.qq.com/document/path/92117)
  - ✅ [编辑客户企业标签](https://developer.work.weixin.qq.com/document/path/92118)

  #### 在职继承

  - ✅ [分配在职成员的客户](https://developer.work.weixin.qq.com/document/path/92125)
  - ✅ [查询客户接替状态](https://developer.work.weixin.qq.com/document/path/94088)
  - ✅ [分配在职成员的客户群](https://developer.work.weixin.qq.com/document/path/95703)

  #### 离职继承

  - ✅ [获取待分配的离职成员列表](https://developer.work.weixin.qq.com/document/path/92124)
  - ✅ [分配离职成员的客户](https://developer.work.weixin.qq.com/document/path/94081)
  - ✅ [查询客户接替状态](https://developer.work.weixin.qq.com/document/path/94082)
  - ✅ [分配离职成员的客户群](https://developer.work.weixin.qq.com/document/path/92127)

  #### 客户群管理

  - ✅ [获取客户群列表](https://developer.work.weixin.qq.com/document/path/92120)
  - ✅ [获取客户群详情](https://developer.work.weixin.qq.com/document/path/92122)
  - ✅ [客户群opengid转换](https://developer.work.weixin.qq.com/document/path/94822)

  #### 联系我与客户入群方式

  - ✅ [配置客户联系「联系我」方式](https://developer.work.weixin.qq.com/document/path/92228)
  - ✅ [获取企业已配置的「联系我」方式](https://developer.work.weixin.qq.com/document/path/92228)
  - ✅ [更新企业已配置的「联系我」方式](https://developer.work.weixin.qq.com/document/path/92228)
  - ✅ [删除企业已配置的「联系我」方式](https://developer.work.weixin.qq.com/document/path/92228)
  - ✅ [配置客户群进群方式](https://developer.work.weixin.qq.com/document/path/92229)
  - ✅ [获取客户群进群方式配置](https://developer.work.weixin.qq.com/document/path/92229)
  - ✅ [更新客户群进群方式配置](https://developer.work.weixin.qq.com/document/path/92229)
  - ✅ [删除客户群进群方式配置](https://developer.work.weixin.qq.com/document/path/92229)

  #### 客户朋友圈

  > [官方文档：客户朋友圈概述](https://developer.work.weixin.qq.com/document/path/93506)

  - ✅ [企业发表内容到客户的朋友圈](https://developer.work.weixin.qq.com/document/path/95094)
  - ✅ [停止发表企业朋友圈](https://developer.work.weixin.qq.com/document/path/97612)
  - ✅ [获取客户朋友圈全部的发表记录](https://developer.work.weixin.qq.com/document/path/93333)
  - ✅ [获取客户朋友圈企业发表的列表](https://developer.work.weixin.qq.com/document/path/93333)

  #### 消息推送

  - ✅ [创建企业群发](https://developer.work.weixin.qq.com/document/path/92135)
  - ✅ [提醒成员群发](https://developer.work.weixin.qq.com/document/path/97610)
  - ✅ [停止企业群发](https://developer.work.weixin.qq.com/document/path/97611)
  - ✅ [获取企业的全部群发记录](https://developer.work.weixin.qq.com/document/path/93338)
  - ✅ [发送新客户欢迎语](https://developer.work.weixin.qq.com/document/path/92137)
  - ✅ [添加入群欢迎语素材](https://developer.work.weixin.qq.com/document/path/92366)
  - ✅ [编辑入群欢迎语素材](https://developer.work.weixin.qq.com/document/path/92366)
  - ✅ [获取入群欢迎语素材](https://developer.work.weixin.qq.com/document/path/92366)
  - ✅ [删除入群欢迎语素材](https://developer.work.weixin.qq.com/document/path/92366)

  #### 统计管理

  - ✅ [获取「联系客户统计」数据](https://developer.work.weixin.qq.com/document/path/92132)
  - ✅ [获取「群聊数据统计」数据](https://developer.work.weixin.qq.com/document/path/92133)

  #### 其他接口

  - ✅ [管理商品图册](https://developer.work.weixin.qq.com/document/path/95096)
  - ✅ [管理聊天敏感词](https://developer.work.weixin.qq.com/document/path/95097)
  - ✅ [上传附件资源](https://developer.work.weixin.qq.com/document/path/95098)
  - ✅ [获客助手](https://developer.work.weixin.qq.com/document/path/97297)
  - ✅ [获取已服务的外部联系人](https://developer.work.weixin.qq.com/document/path/99434)

  ### 微信客服

  > [官方文档：微信客服](https://developer.work.weixin.qq.com/document/path/94638)

  #### 客服账号管理

  - ✅ [添加客服账号](https://developer.work.weixin.qq.com/document/path/94662)
  - ✅ [删除客服账号](https://developer.work.weixin.qq.com/document/path/94663)
  - ✅ [修改客服账号](https://developer.work.weixin.qq.com/document/path/94664)
  - ✅ [获取客服账号列表](https://developer.work.weixin.qq.com/document/path/94661)
  - ✅ [获取客服账号链接](https://developer.work.weixin.qq.com/document/path/94665)

  #### 接待人员管理

  - ✅ [添加接待人员](https://developer.work.weixin.qq.com/document/path/94646)
  - ✅ [删除接待人员](https://developer.work.weixin.qq.com/document/path/94647)
  - ✅ [获取接待人员列表](https://developer.work.weixin.qq.com/document/path/94645)

  #### 会话分配与消息收发

  - ✅ [分配客服会话](https://developer.work.weixin.qq.com/document/path/94669)
  - ✅ [发送消息](https://developer.work.weixin.qq.com/document/path/94677)
  - ✅ [发送欢迎语等事件响应消息](https://developer.work.weixin.qq.com/document/path/95122)
  - ✅ [读取消息](https://developer.work.weixin.qq.com/document/path/94670)
  - ✅ [「升级服务」配置](https://developer.work.weixin.qq.com/document/path/94674)
  - ✅ [获取客户基础信息](https://developer.work.weixin.qq.com/document/path/95159)

  #### 统计管理

  - ✅ [获取「客户数据统计」企业汇总数据](https://developer.work.weixin.qq.com/document/path/95489)
  - ✅ [获取「客户数据统计」接待人员明细数据](https://developer.work.weixin.qq.com/document/path/95490)

  #### 机器人管理

  - ✅ [知识库分组管理](https://developer.work.weixin.qq.com/document/path/95971)
  - ✅ [知识库问答管理](https://developer.work.weixin.qq.com/document/path/95972)

  ### 家校应用

  #### 健康上报

  - ✅ [获取健康上报使用统计](https://developer.work.weixin.qq.com/document/path/93676)
  - ✅ [获取健康上报任务ID列表](https://developer.work.weixin.qq.com/document/path/93677)
  - ✅ [获取健康上报任务详情](https://developer.work.weixin.qq.com/document/path/93678)
  - ✅ [获取用户填写答案](https://developer.work.weixin.qq.com/document/path/93679)

  #### 上课直播

  - ✅ [获取老师直播ID列表](https://developer.work.weixin.qq.com/document/path/93739)
  - ✅ [获取直播详情](https://developer.work.weixin.qq.com/document/path/93740)
  - ✅ [获取观看直播统计（旧版）](https://developer.work.weixin.qq.com/document/path/93741)
  - ✅ [获取未观看直播统计（旧版）](https://developer.work.weixin.qq.com/document/path/93742)
  - ✅ [删除直播回放](https://developer.work.weixin.qq.com/document/path/93743)
  - ✅ [获取观看直播统计V2](https://developer.work.weixin.qq.com/document/path/95793)
  - ✅ [获取未观看直播统计V2](https://developer.work.weixin.qq.com/document/path/95795)

  #### 班级收款

  - ✅ [获取学生付款结果](https://developer.work.weixin.qq.com/document/path/94470)
  - ✅ [获取订单详情](https://developer.work.weixin.qq.com/document/path/94471)

  #### 家校沟通 - 基础接口

  - ✅ [获取「学校通知」二维码](https://developer.work.weixin.qq.com/document/path/92320)
  - ✅ [管理「学校通知」的关注模式](https://developer.work.weixin.qq.com/document/path/92318)
  - ✅ [发送「学校通知」](https://developer.work.weixin.qq.com/document/path/92321)
  - ✅ [管理「班级群创建方式」](https://developer.work.weixin.qq.com/document/path/92430)
  - ✅ [外部联系人openid转换](https://developer.work.weixin.qq.com/document/path/92323)
  - ✅ [获取可使用的家长范围](https://developer.work.weixin.qq.com/document/path/94895)

  #### 家校沟通 - 网页授权登录

  - ✅ [开始开发](https://developer.work.weixin.qq.com/document/path/91856)
  - ✅ [构造网页授权链接](https://developer.work.weixin.qq.com/document/path/91857)
  - ✅ [获取访问用户身份](https://developer.work.weixin.qq.com/document/path/91707)
  - ✅ [获取家校访问用户身份](https://developer.work.weixin.qq.com/document/path/95791)

  #### 家校沟通 - 学生与家长管理

  - ✅ [创建学生](https://developer.work.weixin.qq.com/document/path/92325)
  - ✅ [删除学生](https://developer.work.weixin.qq.com/document/path/92326)
  - ✅ [更新学生](https://developer.work.weixin.qq.com/document/path/92327)
  - ✅ [批量创建学生](https://developer.work.weixin.qq.com/document/path/92328)
  - ✅ [批量删除学生](https://developer.work.weixin.qq.com/document/path/92329)
  - ✅ [批量更新学生](https://developer.work.weixin.qq.com/document/path/92330)
  - ✅ [创建家长](https://developer.work.weixin.qq.com/document/path/92331)
  - ✅ [删除家长](https://developer.work.weixin.qq.com/document/path/92332)
  - ✅ [更新家长](https://developer.work.weixin.qq.com/document/path/92333)
  - ✅ [批量创建家长](https://developer.work.weixin.qq.com/document/path/92334)
  - ✅ [批量删除家长](https://developer.work.weixin.qq.com/document/path/92335)
  - ✅ [批量更新家长](https://developer.work.weixin.qq.com/document/path/92336)
  - ✅ [读取学生或家长](https://developer.work.weixin.qq.com/document/path/92337)
  - ✅ [获取部门学生详情](https://developer.work.weixin.qq.com/document/path/92338)
  - ✅ [设置家校通讯录自动同步模式](https://developer.work.weixin.qq.com/document/path/92345)
  - ✅ [获取部门家长详情](https://developer.work.weixin.qq.com/document/path/92446)

  #### 家校沟通 - 部门管理

  - ✅ [创建部门](https://developer.work.weixin.qq.com/document/path/92340)
  - ✅ [更新部门](https://developer.work.weixin.qq.com/document/path/92341)
  - ✅ [删除部门](https://developer.work.weixin.qq.com/document/path/92342)
  - ✅ [获取部门列表](https://developer.work.weixin.qq.com/document/path/92343)
  - ✅ [标准年级对照表](https://developer.work.weixin.qq.com/document/path/92344)
  - ✅ [修改自动升年级的配置](https://developer.work.weixin.qq.com/document/path/92949)

  #### 家校沟通 - 通讯录变更回调

  - ✅ [成员变更事件](https://developer.work.weixin.qq.com/document/path/92032)
  - ✅ [部门变更事件](https://developer.work.weixin.qq.com/document/path/92052)

  ### 政民沟通

  #### 配置网格结构

  - ✅ [添加网格](https://developer.work.weixin.qq.com/document/path/94478)
  - ✅ [编辑网格](https://developer.work.weixin.qq.com/document/path/94479)
  - ✅ [删除网格](https://developer.work.weixin.qq.com/document/path/94480)
  - ✅ [获取网格列表](https://developer.work.weixin.qq.com/document/path/94481)
  - ✅ [获取用户负责及参与的网格列表](https://developer.work.weixin.qq.com/document/path/94482)

  #### 配置事件类别

  - ✅ [添加事件类别](https://developer.work.weixin.qq.com/document/path/94536)
  - ✅ [修改事件类别](https://developer.work.weixin.qq.com/document/path/94537)
  - ✅ [删除事件类别](https://developer.work.weixin.qq.com/document/path/94538)
  - ✅ [获取事件类别列表](https://developer.work.weixin.qq.com/document/path/94540)

  #### 巡查上报

  - ✅ [概述](https://developer.work.weixin.qq.com/document/path/93520)
  - ✅ [获取配置的网格及网格负责人](https://developer.work.weixin.qq.com/document/path/93531)
  - ✅ [获取单位巡查上报数据统计](https://developer.work.weixin.qq.com/document/path/93532)
  - ✅ [获取个人巡查上报数据统计](https://developer.work.weixin.qq.com/document/path/93533)
  - ✅ [获取上报事件分类统计](https://developer.work.weixin.qq.com/document/path/93534)
  - ✅ [获取巡查上报事件列表](https://developer.work.weixin.qq.com/document/path/93536)
  - ✅ [获取巡查上报的事件详情信息](https://developer.work.weixin.qq.com/document/path/93535)

  #### 居民上报

  - ✅ [概述](https://developer.work.weixin.qq.com/document/path/93513)
  - ✅ [获取配置的网格及网格负责人](https://developer.work.weixin.qq.com/document/path/93514)
  - ✅ [获取单位居民上报数据统计](https://developer.work.weixin.qq.com/document/path/93515)
  - ✅ [获取个人居民上报数据统计](https://developer.work.weixin.qq.com/document/path/93516)
  - ✅ [获取上报事件分类统计](https://developer.work.weixin.qq.com/document/path/93517)
  - ✅ [获取居民上报事件列表](https://developer.work.weixin.qq.com/document/path/93518)
  - ✅ [获取居民上报的事件详情信息](https://developer.work.weixin.qq.com/document/path/93519)

  ---

  ## 📚 参考资源

  - [企业微信开发文档](https://developer.work.weixin.qq.com/document/)
  - [企业微信API全局错误码](https://developer.work.weixin.qq.com/document/path/90313)
  - [常见问题 - FAQ](https://developer.work.weixin.qq.com/document/path/90315)
  - [n8n 官方文档](https://docs.n8n.io/)
  - [n8n 社区节点开发文档](https://docs.n8n.io/integrations/creating-nodes/overview/)
  - [n8n 社区节点开发示例](https://docs.n8n.io/integrations/creating-nodes/build/declarative-style-node/)

  ## 📄 许可证

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Provides comprehensive integration for WeCom (Enterprise WeChat/WeChat Work) API within n8n workflows, enabling message sending, contact management, meeting scheduling, and event triggers.","capabilities":["Send application messages to users and groups","Manage contacts, departments, and tags","Schedule and control meetings","Manage calendars and events","Handle email and document management","Process approval workflows","Receive incoming messages via Webhook triggers","Handle third-party application command callbacks","Manage customer relationships and customer groups","Upload and manage media assets"],"authentication":"API key required (CorpID, AgentId, Secret for most features; Webhook URL for message push; Token and EncodingAESKey for message receiving)","commonUseCases":["Automated customer service responses via WeChat Work","Internal company announcements and meeting scheduling","Employee onboarding and contact management","Automated approval workflows and notifications","Integration with CRM systems for customer relationship management"],"limitations":["Enterprise WeChat API changes may require node updates","Each application can only be configured with one message receiving URL","Third-party application callbacks require specific return format ('success')","Documentation may not cover all parameter details due to frequent API updates"],"relatedNodes":["n8n-nodes-telegram","n8n-nodes-notion","n8n-nodes-slack"]}


node_type: n8n-nodes-rifad-appsheet.rifadappsheet
package_name: n8n-nodes-rifad-appsheet
display_name: rifadappsheet
description: An n8n community node for interacting with the AppSheet API, including an AI Agent tool node
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: rifadm817
author_github_url: git+https://github.com/rifadm817/n8n-nodes-rifad-appsheet.git
npm_package_name: n8n-nodes-rifad-appsheet
npm_version: 0.5.6
community_fetched_at: 2026-05-22T09:37:14.434Z
ai_summary_generated_at: 2026-05-02 08:57:17
npm_readme:
  # n8n-nodes-rifad-appsheet

  ☕️ [Support this project on Buy Me A Coffee!](https://buymeacoffee.com/rifadm817)

  Welcome to **n8n-nodes-rifad-appsheet** – your friendly bridge between AppSheet and n8n!  
  No more boring, hardcoded API calls. With our node, you can effortlessly manage your AppSheet table records by creating, reading, updating, deleting, or even invoking custom actions—all through an intuitive, no-code workflow automation tool.

  ## Features

  - **Create Record:** Add one or more new records to an AppSheet table.
  - **Read Records:** Retrieve records using a selector expression or by specifying key fields.
  - **Update Record:** Update existing records by providing key fields and the new field values.
  - **Delete Record:** Delete records by specifying key fields.
  - **Invoke Action:** Invoke a custom AppSheet action on one or more rows.

  ## Install on n8n Cloud

  If you use the cloud version of n8n (n8n.io), installing our node is a piece of cake. Follow these steps:

  1. **Log in to Your n8n.io Account:**  
     Open your browser and log in at [n8n.io](https://n8n.io).

  2. **Navigate to Settings:**  
     In the n8n editor, click your Profile → Settings icon.

  3. **Go to Community Nodes:**  
     Select **Community Nodes** from the Settings menu. You’ll be able to search for and install custom nodes there.

  4. **Search for `n8n-nodes-rifad-appsheet`:**  
     Type the package name in the search bar. When it appears, click **Install**.

  5. **Add the AppSheet Node to Your Workflow:**  
     Once installed, add the AppSheet node to your workflow, configure it with your AppSheet API credentials, and start automating without hardcoding API calls.

  ## Usage

  Simply configure the node with your AppSheet API credentials and choose an operation (create, read, update, delete, or invoke). Each operation requires you to provide the necessary parameters as JSON. For example, to add a record, supply a JSON array of objects (each object representing a record with the required key fields).


  Happy Automating!

ai_documentation_summary:
  {"purpose":"This n8n community node facilitates interaction with the AppSheet API, enabling users to create, read, update, delete, and invoke custom actions on AppSheet table records without writing code.","capabilities":["Create records in AppSheet tables","Read records using selector expressions or key fields","Update existing records","Delete records by key fields","Invoke custom AppSheet actions"],"authentication":"API key required","commonUseCases":["Automating data entry into AppSheet applications","Synchronizing data between n8n workflows and AppSheet","Triggering custom AppSheet actions based on workflow events"],"limitations":[],"relatedNodes":[]}


node_type: @clubmega/n8n-nodes-mega.mega
package_name: @clubmega/n8n-nodes-mega
display_name: mega
description: MEGA integration with n8n
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: ndavalos
author_github_url: git+https://github.com/nestordavalos/n8n-nodes-mega.git
npm_package_name: @clubmega/n8n-nodes-mega
npm_version: 0.11.0
community_fetched_at: 2026-05-22T09:37:14.441Z
ai_summary_generated_at: 2026-05-22 10:26:01
npm_readme:
  # @clubmega/n8n-nodes-mega

  [![npm version](https://img.shields.io/npm/v/@clubmega/n8n-nodes-mega.svg)](https://www.npmjs.com/package/@clubmega/n8n-nodes-mega)
  [![npm downloads](https://img.shields.io/npm/dm/@clubmega/n8n-nodes-mega.svg)](https://www.npmjs.com/package/@clubmega/n8n-nodes-mega)

  This is an n8n community node that lets you use [MEGA](https://github.com/megaapp977/mega) in your n8n workflows.

  See [MEGA API coverage](docs/api-coverage.md) for the current resource matrix, output contract and deliberate exclusions.

  MEGA is a customer engagement platform that helps businesses manage customer conversations across multiple channels. This node provides comprehensive integration with the MEGA API, allowing you to automate customer support workflows, manage contacts, handle conversations, and more.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Nodes](#nodes)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Use this package name to install:

  ```bash
  @clubmega/n8n-nodes-mega
  ```

  ## Nodes

  This package includes two nodes:

  ### MEGA

  The main node for interacting with the MEGA API. Supports all CRUD operations for managing your MEGA instance.

  ### MEGA Trigger

  A webhook trigger node that listens for MEGA events. Automatically registers and manages webhooks in your MEGA instance.

  ## Operations

  ### Account

  | Operation | Description                                                 |
  | --------- | ----------------------------------------------------------- |
  | Create    | Create a new MEGA account (Platform API)                    |
  | Delete    | Delete a MEGA account (Platform API)                        |
  | Get       | Retrieve detailed information about a specific MEGA account |
  | Update    | Update a MEGA account (Platform API)                        |

  ### Account User

  - Create: Associate a user with an account (Platform API)
  - Delete: Remove a user from an account (Platform API)
  - List: List all users associated with an account (Platform API)

  ### Agent

  | Operation | Description                    |
  | --------- | ------------------------------ |
  | Create    | Add a new agent to account     |
  | Delete    | Remove an agent from account   |
  | List      | List all agents in account     |
  | Update    | Update an agent in account     |

  > In Agent `create` and `update`, the `Role` dropdown includes account custom roles.
  > Selecting a custom role sends `custom_role_id` automatically.

  ### Agent Bot

  | Operation | Description                                |
  | --------- | ------------------------------------------ |
  | Create    | Create a new agent bot (Platform API)      |
  | Delete    | Delete an agent bot (Platform API)         |
  | Get       | Get details of an agent bot (Platform API) |
  | List      | List all agent bots (Platform API)         |
  | Update    | Update an agent bot (Platform API)         |

  ### Agent Bot (Account)

  | Operation          | Description                                           |
  | ------------------ | ----------------------------------------------------- |
  | Create             | Create a new agent bot (webhook or typebot)           |
  | Delete             | Delete an agent bot from the account                  |
  | Delete Avatar      | Remove the avatar of an agent bot                     |
  | Get                | Get details of an agent bot                           |
  | List               | List agent bots filtered by type (webhook or typebot) |
  | Reset Access Token | Regenerate the access token of an agent bot           |
  | Update             | Update an agent bot (name, type, config, etc.)        |

  > Supports two bot types: **Webhook** (receives events via URL) and **Typebot** (powered by Typebot with trigger configuration). When creating a Typebot, you can configure the API URL, public name, trigger type (all/keyword), and keyword matching options.

  ### Automation Rule

  | Operation | Description                        |
  | --------- | ---------------------------------- |
  | Clone     | Clone an existing automation rule  |
  | Create    | Create a new automation rule       |
  | Delete    | Delete an automation rule          |
  | Get       | Get a specific automation rule     |
  | List      | List all automation rules          |
  | Update    | Update an automation rule          |

  The **Create** operation uses visual builders for conditions and actions:

  **Trigger Events:** Conversation Created, Conversation Opened, Conversation Resolved, Conversation Updated, Message Created.

  **Condition Builder** — Add one or more conditions, each with:

  - **Attribute** (18 options): Status, Priority, Assignee, Team, Inbox, Labels, Email, Phone Number, Content, Message Type, Country, Browser Language, Conversation Language, City, Company, Referer, Mail Subject, Contact Label.
  - **Operator** (10 options): Equal To, Not Equal To, Contains, Does Not Contain, Starts With, Is Present, Is Not Present, Is Greater Than, Is Less Than, Days Before.
  - **Values**: Contextual dropdowns — multi-select for Status, Priority, and Message Type; free-text for all other attributes.
  - **Condition Logic**: Combine all conditions with **AND** (all must match) or **OR** (any can match).

  **Action Builder** — Add one or more actions (21 types), each showing contextual parameter fields:

  | Action | Parameter |
  | ------ | --------- |
  | Change Status | Status dropdown (Open, Pending, Resolved, Snoozed) |
  | Change Priority | Priority dropdown (None, Low, Medium, High, Urgent) |
  | Assign Agent | Agent ID |
  | Assign Team | Team ID |
  | Add / Remove Label | Label names |
  | Add / Remove Contact Label | Label names |
  | Send Message / Add Private Note | Message text |
  | Send Email to Team / Send Email Transcript | Email address |
  | Send Webhook Event | Webhook URL |
  | Send Attachment | File URL |
  | Sleep (Minutes) | Number of minutes |
  | Mute, Open, Pending, Resolve, Snooze, Redistribute | _(no parameters)_ |

  ### Campaign

  | Operation | Description                    |
  | --------- | ------------------------------ |
  | Create    | Create a new campaign          |
  | Delete    | Delete a campaign              |
  | Get       | Get a specific campaign        |
  | List      | List all campaigns             |
  | Pause     | Pause a campaign               |
  | Resume    | Resume a paused campaign       |
  | Update    | Update a campaign              |

  ### Canned Response

  | Operation | Description                    |
  | --------- | ------------------------------ |
  | Create    | Create a new canned response   |
  | Delete    | Delete a canned response       |
  | List      | List all canned responses      |
  | Update    | Update a canned response       |

  ### Chat Room

  | Operation      | Description                                                  |
  | -------------- | ------------------------------------------------------------ |
  | Create         | Create a new chat room                                       |
  | Delete         | Delete a chat room                                           |
  | Get            | Get a specific chat room                                     |
  | List           | List all chat rooms                                          |
  | Update         | Update a chat room                                           |
  | Mark as Read   | Mark a chat room as read                                     |
  | Add Members    | Add an agent to a chat room (agent selector)                 |
  | Remove Members | Remove an agent from a chat room                             |
  | Get Members    | List members of a chat room                                  |
  | List Messages  | List messages in a chat room                                 |
  | Send Message   | Send a text message with optional reply-to                   |
  | Send File      | Send a file/attachment in a chat room with optional caption  |

  ### Contact

  | Operation                 | Description                                                                        |
  | ------------------------- | ---------------------------------------------------------------------------------- |
  | Create                    | Create a new contact with name, phone (E.164 format), email, and custom attributes |
  | Get                       | Get contact information                                                            |
  | Update                    | Update contact details                                                             |
  | Delete                    | Delete a contact                                                                   |
  | List                      | List contacts with pagination                                                      |
  | Search                    | Search for contacts by query                                                       |
  | Set Custom Attributes     | Set custom attributes on a contact                                                 |
  | Destroy Custom Attributes | Remove all custom attributes from a contact                                        |

  ### Contact Note

  | Operation | Description                    |
  | --------- | ------------------------------ |
  | Create    | Create a note on a contact     |
  | Delete    | Delete a contact note          |
  | Get       | Get a specific contact note    |
  | List      | List all notes for a contact   |
  | Update    | Update a contact note          |

  ### Conversation

  | Operation                  | Description                                          |
  | -------------------------- | ---------------------------------------------------- |
  | Create                     | Create a new conversation for a contact              |
  | Get                        | Get a specific conversation                          |
  | List                       | List conversations with filters                      |
  | Filter                     | Filter conversations using advanced query rules      |
  | Send Message               | Send a text message in a conversation                |
  | Send with Template         | Send a WhatsApp template message                     |
  | Send File                  | Send a file/attachment in a conversation             |
  | List Messages              | List messages in a conversation with pagination      |
  | Delete Message             | Delete a message and its attachments                 |
  | List Attachments           | List attachments in a conversation                   |
  | Download Attachment        | Download an attachment from a conversation message   |
  | Assign Agent               | Assign an agent to a conversation                    |
  | Assign Team                | Assign a team to a conversation                      |
  | List Labels                | List all labels of a conversation                    |
  | Add Labels                 | Append labels to a conversation (keeps existing)     |
  | Remove Labels              | Remove specific labels from a conversation           |
  | Update Labels              | Replace all labels on a conversation                 |
  | Toggle Status              | Change status (open, pending, resolved, snoozed)     |
  | Set Priority               | Set conversation priority                            |
  | Add Custom Attributes      | Add custom attributes (keeps existing)               |
  | Remove Custom Attributes   | Remove specific custom attributes                    |
  | Set Custom Attributes      | Replace all custom attributes                        |
  | Update Last Seen           | Update the last seen timestamp                       |
  | Update Presence            | Set presence status (off, typing, recording)         |
  | Mark Unread                | Mark conversation as unread                          |
  | Update Attachment Metadata | Update metadata on attachments (e.g., transcription) |
  | Mute                       | Mute a conversation                                  |
  | Unmute                     | Unmute a conversation                                |
  | Pin                        | Pin a conversation for the current user              |
  | Unpin                      | Unpin a conversation for the current user            |
  | Send Transcript            | Send conversation transcript to an email address     |
  | Delete                     | Delete a conversation permanently                    |

  #### WhatsApp Cloud templates

  `Send with Template` lists only templates approved for the selected inbox. List selections preserve both the template name and language; a saved workflow that contains only the legacy template name continues to work when that name identifies exactly one approved language.

  Approved templates containing component types or header formats that this node cannot safely serialize are omitted from the selector, while other compatible templates continue to load.

  `Guided Inputs` is the default. After selecting Account, Inbox and Template, n8n reloads `Template Values` and shows one field for each value required by that exact approved template. For example, an IMAGE header plus `hola {{1}}` shows `Header image URL` and `Variable — {{1}}`; footer text, call permission and static buttons remain informational and never create editable fields. Values accept n8n expressions normally.

  For header media, enter a public URL in the generated field or enter `binary:data` (replacing `data` with the n8n binary property name). Document templates generate one additional optional filename field; image and video templates do not. Switch `Input Mode` to `Advanced Components` for typed date-time values, low-level troubleshooting or explicit component control. Workflows saved by earlier versions with `Components` continue to execute through the legacy parser even though Guided Inputs is now the default.

  Add the dynamic components shown in **Template Structure**:

  - For positional body variables such as `{{1}}`, add values in numeric order. For named variables such as `{{customer_name}}`, also enter the exact **Parameter Name**.
  - A Date Time value is sent as WhatsApp's enhanced `date_time` object and requires a human-readable fallback value. Use Advanced Components for manual date-time entry; guided expressions may also return `{ "type": "date_time", "value": "2026-07-11T12:00:00Z", "fallback_value": "July 11, 2026" }`.
  - IMAGE, VIDEO and DOCUMENT headers accept an externally reachable HTTP(S) URL or an n8n binary field. Literal local/private/link-local addresses are rejected, but the node does not perform DNS resolution. Binary input is uploaded to MEGA only after the full template input validates; documents may include a safe filename displayed by WhatsApp.
  - Add only dynamic URL or Copy Code buttons and use their actual zero-based template index, including indexes after static buttons.

  Example processed parameters for a document template:

  ```json
  {
    "body": { "customer_name": "Ana" },
    "header": {
      "media_url": "https://files.example.com/invoice.pdf",
      "media_type": "document",
      "media_name": "invoice.pdf"
    },
    "buttons": [
      { "type": "quick_reply" },
      { "type": "url", "parameter": "order-42" }
    ]
  }
  ```

  The operation returns the MEGA message record after it is created. WhatsApp delivery is asynchronous, so a successful node execution does not by itself confirm delivery; inspect the later message status or delivery/error events in MEGA.

  ### Custom Attribute

  | Operation | Description                                                                     |
  | --------- | ------------------------------------------------------------------------------- |
  | Create    | Create a custom attribute definition (text, number, date, list, checkbox, link) |
  | List      | List all custom attribute definitions                                           |
  | Delete    | Delete a custom attribute definition                                            |

  ### Custom Role

  | Operation | Description                                  |
  | --------- | -------------------------------------------- |
  | Create    | Create a custom role in the account          |
  | Delete    | Delete a custom role from the account        |
  | Get       | Get details of a custom role                 |
  | List      | List all custom roles in the account         |
  | Update    | Update a custom role and its permissions     |

  ### Inbox

  | Operation               | Description                                       |
  | ----------------------- | ------------------------------------------------- |
  | Get                     | Get information about a specific inbox            |
  | List                    | List all inboxes in an account                    |
  | On WhatsApp ⚡          | Check if a phone number is registered on WhatsApp |
  | WhatsApp Disconnect ⚡  | Disconnect a WhatsApp inbox                       |
  | WhatsApp Get QR Code ⚡ | Get QR code for WhatsApp inbox connection         |

  > ⚡ These operations are only available with MEGA

  ### Kanban Automation

  | Operation              | Description                                                 |
  | ---------------------- | ----------------------------------------------------------- |
  | Create                 | Create an account-scoped Kanban automation                  |
  | Get                    | Get an account-scoped Kanban automation                     |
  | List                   | List account-scoped Kanban automations                      |
  | Update                 | Update an account-scoped Kanban automation                  |
  | Delete                 | Delete an account-scoped Kanban automation                  |
  | Create (Legacy Global) | Create a legacy global Kanban automation                    |
  | Get (Legacy Global)    | Get a legacy global Kanban automation                       |
  | List (Legacy Global)   | List legacy global Kanban automations                       |
  | Update (Legacy Global) | Update a legacy global Kanban automation                    |
  | Delete (Legacy Global) | Delete a legacy global Kanban automation                    |

  ### Kanban Config

  | Operation    | Description                                           |
  | ------------ | ----------------------------------------------------- |
  | Get          | Get current Kanban configuration                      |
  | Create       | Create Kanban configuration                           |
  | Update       | Update Kanban configuration                           |
  | Delete       | Delete Kanban configuration                           |

  ### Kanban Funnel

  | Operation      | Description                                           |
  | -------------- | ----------------------------------------------------- |
  | Create         | Create a Kanban funnel                                |
  | Get            | Get a Kanban funnel                                   |
  | List           | List Kanban funnels                                   |
  | Update         | Update a Kanban funnel                                |
  | Delete         | Delete a Kanban funnel                                |
  | Stage Stats    | Get per-stage metrics for a funnel                    |
  | Reorder Stages | Reorder stage positions in a funnel                   |
  | List Items     | List Kanban items from a funnel                       |

  ### Kanban Item

  - **CRUD + movement:** List, Batch, Get, Create, Update, Delete, Move to Stage, Move, Reorder
  - **Search + reports:** Search, Filter, Reports, Debug, Export CSV
  - **Checklist:** Create/Get/Update/Toggle/Delete checklist tasks, assign/remove agent, duplicate, search, progress by agent
  - **Notes:** Create/Get/Update/Delete notes
  - **Attachments:** List/Upload/Delete item attachments and note attachments
  - **Assignment:** Assign/Remove/Get assigned agents
  - **Timing + status:** Change status, Time Report, Stage Time Breakdown, Counts
  - **Bulk:** Bulk Move Items, Bulk Assign Agent, Bulk Set Priority
  - **CSV import:** Import Preview, Import CSV (binary file input)

  ### Kanban Stage

  - **List:** List stages by funnel
  - **Get:** Get stage details
  - **Create:** Create a stage in a funnel
  - **Update:** Update stage data
  - **Delete:** Delete a stage and optionally move items to a fallback stage

  ### Kanban UX Notes

  - Kanban resources use a guided-first UX for common fields and filters.
  - Advanced JSON fields are hidden by default and can be revealed using **Show Advanced JSON Options**.
  - In Kanban Item and Kanban Funnel, advanced query/body JSON overrides guided values when both are provided.
  - In Kanban Stage, Kanban Config, and Kanban Automation, create/update payloads are provided through the advanced JSON field.

  ### Label

  | Operation | Description        |
  | --------- | ------------------ |
  | Create    | Create a new label |
  | List      | List all labels    |
  | Update    | Update a label     |
  | Delete    | Delete a label     |

  ### Profile

  | Operation | Description                              |
  | --------- | ---------------------------------------- |
  | Get       | Get the current user profile information |

  ### Message Template

  | Operation       | Description                                    |
  | --------------- | ---------------------------------------------- |
  | Analytics       | Get template analytics data                    |
  | Create          | Create a new message template                  |
  | Delete          | Delete a message template                      |
  | Delete Multiple | Delete multiple message templates at once      |
  | Get             | Get a message template by ID                   |
  | List            | List all message templates                     |

  ### Platform Banner

  | Operation | Description                     |
  | --------- | ------------------------------- |
  | List      | List active platform banners    |
  | Dismiss   | Dismiss a platform banner       |

  > Platform banners allow system administrators to display important notifications or announcements to users across the platform. Users can view and dismiss banners they've seen.

  ### Platform Banner (Platform API)

  | Operation | Description                                |
  | --------- | ------------------------------------------ |
  | Create    | Create a new platform banner               |
  | Delete    | Delete a platform banner                   |
  | Get       | Get a specific platform banner by ID       |
  | List      | List all active platform banners           |
  | Update    | Update a platform banner                   |

  > Platform API operations require platform-level authentication and permissions. These operations are for system administrators to manage banners that will be displayed across all accounts.

  ### Scheduled Message

  | Operation | Description                                        |
  | --------- | -------------------------------------------------- |
  | Cancel    | Cancel a pending scheduled message                 |
  | Create    | Create a new scheduled message                     |
  | Delete    | Delete a scheduled message                         |
  | Get       | Get a single scheduled message by ID               |
  | Get Many  | Get all scheduled messages for the account         |
  | Update    | Update an existing scheduled message               |

  ### Team

  | Operation        | Description                 |
  | ---------------- | --------------------------- |
  | Create           | Create a new team           |
  | Delete           | Delete a team               |
  | List             | List all teams              |
  | Get Team Members | Get all members of a team   |
  | Assign Agent     | Assign an agent to a team   |
  | Unassign Agent   | Remove an agent from a team |

  ### User

  | Operation    | Description                                    |
  | ------------ | ---------------------------------------------- |
  | Create       | Create a new user (Platform API)               |
  | Delete       | Delete a user (Platform API)                   |
  | Get          | Get details of a user (Platform API)           |
  | Get SSO Link | Get a SSO login link for a user (Platform API) |
  | Update       | Update a user (Platform API)                   |

  ## Trigger Events

  The **Mega Trigger** node supports the following webhook events:

  | Event                       | Description                                      |
  | --------------------------- | ------------------------------------------------ |
  | Contact Created             | Triggered when a new contact is created          |
  | Contact Updated             | Triggered when a contact is updated              |
  | Conversation Created        | Triggered when a new conversation is created     |
  | Conversation Status Changed | Triggered when conversation status changes       |
  | Conversation Updated        | Triggered when a conversation is updated         |
  | Conversation Typing On      | Triggered when someone starts typing             |
  | Conversation Typing Off     | Triggered when someone stops typing              |
  | Message Created             | Triggered when a message is created              |
  | Message Updated             | Triggered when a message is updated              |
  | Message Incoming ⚡         | Triggered for incoming messages only             |
  | Message Outgoing ⚡         | Triggered for outgoing messages only             |
  | Provider Event Received ⚡  | Triggered when a provider event is received      |
  | Live Chat Widget Opened     | Triggered when a user opens the live chat widget |

  > ⚡ These events are only available with MEGA

  ## Credentials

  To authenticate with MEGA, you need:

  ### 1. MEGA API URL

  The base URL of your MEGA instance (e.g., `https://app.mega.com` or your self-hosted URL).

  ### 2. Access Token

  A Personal Access Token from your MEGA profile:

  1. Log in to your MEGA dashboard
  2. Go to **Profile Settings** (click your avatar → Profile settings)
  3. Navigate all the way down to **Access Token**
  4. Copy your token

  The token is sent as the `Api-Access-Token` header with each request.

  ## Compatibility

  - **Minimum n8n version:** 1.0.0
  - **Tested with:** n8n 1.x and 2.x
  - **MEGA version:** Compatible with MEGA v4.x and later
  - **MEGA exclusive features:** WhatsApp provider operations, and additional webhook events

  ## Usage

  ### Basic Workflow: Auto-respond to New Conversations

  1. Add a **Mega Trigger** node
  2. Select your account and choose "Conversation Created" event
  3. Connect to a **MEGA** node
  4. Set resource to "Conversation" and operation to "Send Message"
  5. Use the conversation ID from the trigger output

  ### Working with Contacts

  The Contact resource supports E.164 phone number format validation (e.g., `+5511999999999`). You can also set social profiles and custom attributes when creating or updating contacts.

  ### Using Resource Locators

  All resources support two selection modes:

  - **From List**: Browse and search available items (accounts, inboxes, conversations, etc.)
  - **By ID**: Enter the ID directly for dynamic workflows

  ### Custom Attributes

  Custom attributes can be specified in three ways:

  1. **Definition mode**: Select from existing attribute definitions
  2. **Key-pair mode**: Enter key-value pairs manually
  3. **JSON mode**: Provide a JSON object for complex structures

  ### AI Tool Usage

  This node is enabled as an n8n AI tool (`usableAsTool: true`), allowing it to be used with AI agents for intelligent automation workflows.

  ## Resources

  - [Complete MEGA resource and endpoint reference](docs/resources-reference.md)
  - [Architecture and contract verification](docs/architecture.md)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE.md)

  Made with ❤️ by Mega

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with MEGA, a customer engagement platform, to automate workflows for managing accounts, agents, agent bots, and automation rules.","capabilities":["Create, read, update, and delete MEGA accounts","Manage users associated with accounts","Create, read, update, delete, and list agents","Create, read, update, delete, and list agent bots (Webhook and Typebot types)","Manage agent bot avatars and access tokens","Create, read, update, delete, and clone automation rules","Build automation rules with visual condition builders (18 attributes, 10 operators)","Execute automation rule actions (21 types) based on triggers like conversation events","Webhook trigger node for listening to MEGA events"],"authentication":"None (uses MEGA API credentials configured via n8n credentials)","commonUseCases":["Automating customer support workflows across multiple channels","Managing customer conversations and messages","Configuring and monitoring agent bots (Typebot/Webhook)","Setting up automated response rules based on conversation attributes","Synchronizing customer data between MEGA and other systems"],"limitations":["Requires external MEGA API credentials configured in n8n","Some operations (like custom role assignment) depend on MEGA platform configuration","Condition builder attributes are limited to 18 predefined options","Action builder actions are limited to 21 predefined types","Community node status may vary with MEGA API changes"],"relatedNodes":["Webhook","HTTP Request","Typebot","Code"]}


node_type: n8n-nodes-html-tag-extract.htmltagextract
package_name: n8n-nodes-html-tag-extract
display_name: htmltagextract
description: n8n helper nodes to extract HTML tags, parse JSON and more
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: danielvee
author_github_url: git+https://github.com/defmans7/n8n-nodes-html-tag-extract.git
npm_package_name: n8n-nodes-html-tag-extract
npm_version: 0.2.0
community_fetched_at: 2026-05-22T09:37:14.442Z
ai_summary_generated_at: 2026-05-02 09:00:04
npm_readme:
  # n8n-nodes-html-tag-extract

  This is an n8n community node. It lets you use extract common HTML tags from an HTML string in your n8n workflows.

  This is my first community node for n8n, I've also included a JSON parse helper node that I use in my workflows. 
  I find it useful to have a node that can parse JSON strings and return the parsed object, 
  because repeating the same custom code node for all my workflows is a bit cumbersome.

  HTML Tag Extract, provides helper nodes to extract HTML tags, parse JSON... and that's basically it.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Usage](#usage)  
  [Acknowledgements](#acknowledgements)  
  [Further (future) development](#further-future-development)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  * Extract HTML Tags
  * Parse JSON

  ## Usage

  ### Extract HTML Tags
  * Pass a string containing HTML to the Extract HTML Tags node, and it will return the data object containing the tags name and the tag's content.
  * Some tags will be an array of objects, for example, the heading tags (h1, h2, h3, h4, h5, h6) will be an array of objects, each object containing the tag's name and content.
  * There is also a word and character count for the text content of the page.

  ### Parse JSON
  * Pass a string containing JSON to the Parse JSON node, and it will return the parsed object.
  * Sometimes LLM output contains a JSON string within a code block: \```json {"key": "value"} ``` and this node will remove the junk and return the parsed object.

  ## Acknowledgements

  * [Cheerio provides the HTML Tag Extract node](https://www.npmjs.com/package/cheerio)
  * N8N team for the great platform and documentation
  * Aider, mainly for commit messages

  ## Further (future) development

  I'm planning to add more features to this node, such as allowing for extracting specific tags and CSS selectors.

  Also:
  * Parse YouTube iframes / links and extract the video ID
  * Extract images with alt text (currently only extracts the image URL)
  * Find all articles
  * List internal and external links separately
  * Implement better cleanup methods for the text content
  * Maybe include Markdown as an output format, but there's already a community node for [HTML to Markdown conversion](https://www.npmjs.com/package/n8n-nodes-turndown-html-to-markdown)

ai_documentation_summary:
  {"purpose":"Extracts common HTML tags from HTML strings and parses JSON strings into objects within n8n workflows.","capabilities":["Extract HTML tags from input strings","Return tag names and content as data objects","Handle heading tags (h1-h6) as arrays of objects","Provide word and character counts for text content","Parse JSON strings into structured objects","Remove markdown code block wrappers (e.g., ```json) from LLM outputs before parsing"],"authentication":"None","commonUseCases":["Cleaning and structuring HTML content from web scrapes","Parsing unstructured JSON strings from AI/LLM outputs","Extracting metadata like word counts from HTML documents"],"limitations":["Currently only extracts image URLs, not alt text","Does not support extracting specific tags via CSS selectors","Cannot extract specific tags by name (future feature)","Does not parse YouTube iframes or extract video IDs","Does not separate internal and external links"],"relatedNodes":["n8n-nodes-turndown-html-to-markdown"]}


node_type: n8n-nodes-nextcloud-ext.nextcloudext
package_name: n8n-nodes-nextcloud-ext
display_name: nextcloudext
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: kiriyama76
author_github_url: git+https://github.com/wdebonne/n8n-nodes-nextcloud-ext.git
npm_package_name: n8n-nodes-nextcloud-ext
npm_version: 1.0.43
community_fetched_at: 2026-05-22T09:37:14.443Z
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  n8n community nodes for Nextcloud — file management (list, upload, download, share), spreadsheet operations equivalent to Microsoft 365 Excel (including named table support), DOCX/ODT template rendering, and PDF form field read/write (AcroForm)

npm_readme:
  # n8n-nodes-nextcloud-ext

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-nextcloud-ext.svg)](https://www.npmjs.com/package/n8n-nodes-nextcloud-ext)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
  [![n8n community node](https://img.shields.io/badge/n8n-community%20node-orange)](https://docs.n8n.io/integrations/community-nodes/)

  Nodes n8n communautaires pour **Nextcloud** — l'équivalent self-hosted des nodes Microsoft 365.

  > Gérez vos fichiers, manipulez vos tableurs, générez des documents Word/ODT depuis des templates, et lisez/remplissez des formulaires PDF — directement depuis vos workflows n8n, sans aucune dépendance au cloud Microsoft ou Google.

  ---

  ## Nodes inclus

  | Node | Équivalent MS 365 | Description |
  |---|---|---|
  | **NextCloud Folder** | OneDrive | Gestion de fichiers et dossiers via WebDAV |
  | **NextCloud Spreadsheet** | Excel | Lecture/écriture de fichiers tableur + tables Excel nommées |
  | **NextCloud Search** | Excel VLOOKUP | Recherche une valeur dans une colonne et retourne une valeur correspondante (RECHERCHEV) |
  | **NextCloud Doc Template** | Word (Mail Merge) | Remplissage de templates DOCX/ODT (syntaxe Carbone) + fusion d'annexes conditionnelles |
  | **NextCloud PDF** | — | Lecture, extraction de texte et remplissage de formulaires PDF AcroForm |
  | **NextCloud OCR** | — | Extraction de texte par OCR (Docling local, Mistral OCR) pour PDFs scannés ou aplatis |

  ---

  ## Prérequis

  - n8n **≥ 1.0.0**
  - Instance Nextcloud **≥ 20** accessible en HTTPS
  - Node.js **≥ 18.10**

  ---

  ## Installation

  ### Via l'interface n8n (recommandé)

  1. Ouvrez n8n → **Settings** → **Community Nodes**
  2. Cliquez **Install a community node**
  3. Entrez `n8n-nodes-nextcloud-ext`
  4. Cliquez **Install** puis **redémarrez n8n**

  ### Installation manuelle

  ```bash
  npm install n8n-nodes-nextcloud-ext
  ```

  ---

  ## Configuration des credentials

  1. Dans n8n → **Credentials** → **New** → cherchez **Nextcloud API**
  2. Renseignez :

  | Champ | Description | Exemple |
  |---|---|---|
  | **Server URL** | URL de base de votre Nextcloud (sans slash final) | `https://cloud.mondomaine.fr` |
  | **Username** | Votre identifiant Nextcloud | `admin` |
  | **Password / App Password** | Mot de passe ou mot de passe d'application | `xxxx-xxxx-xxxx-xxxx` |

  > **Recommandé** : créez un **mot de passe d'application** dans Nextcloud → *Paramètres → Sécurité → Mots de passe d'application*.

  ---

  ## Node — NextCloud Folder

  Gestion de fichiers, dossiers et partages via l'API WebDAV de Nextcloud.

  ### Resource : File

  | Opération | Description |
  |---|---|
  | **List** | Liste les fichiers d'un dossier |
  | **Download** | Télécharge un fichier (sortie binaire) |
  | **Upload** | Envoie un fichier binaire vers Nextcloud |
  | **Delete** | Supprime un fichier |
  | **Move** | Déplace ou renomme un fichier |
  | **Copy** | Copie un fichier vers un autre chemin |

  ### Resource : Folder

  | Opération | Description |
  |---|---|
  | **List** | Liste le contenu d'un dossier |
  | **Create** | Crée un nouveau dossier |
  | **Delete** | Supprime un dossier et tout son contenu |

  ### Resource : Share

  | Opération | Description |
  |---|---|
  | **Create** | Crée un lien de partage public ou vers un utilisateur/groupe |
  | **Delete** | Supprime un partage par son ID |
  | **Get All** | Liste tous vos partages actifs |

  ---

  ## Node — NextCloud Spreadsheet

  Lit et écrit dans des fichiers tableur stockés sur Nextcloud. Supporte `.xlsx`, `.xls`, `.ods` et `.csv`.

  > Les écritures utilisent **xlsx-populate** qui modifie uniquement les cellules demandées sans reconstruire le fichier — tableaux Excel nommés, styles, cellules fusionnées et mise en page sont préservés intégralement.

  ### Sélection du fichier

  ```
  Depuis  ▼  Depuis une liste  ← ou "Par chemin (expression)"
  Dossier ▼  📁 Documents       ← liste à 2 niveaux
  Fichier ▼  Arrêtés.xlsx       ← fichiers du dossier sélectionné
  ```

  ### Resource : Sheet

  Travaille sur les données d'une feuille de calcul. La **première ligne** est traitée comme en-tête par défaut.

  **Paramètre clé : `Header Row`** — numéro de la ligne contenant les en-têtes (défaut : 1). Tous les dropdowns de colonnes se rechargent automatiquement quand cette valeur change.

  | Opération | Description |
  |---|---|
  | **Get Rows** | Retourne toutes les lignes en tant qu'items n8n |
  | **Append Row** | Ajoute une ligne à la fin (hérite des styles de la ligne précédente) |
  | **Update Row** | Modifie une ligne existante par son numéro |
  | **Delete Row** | Supprime une ligne par son numéro |
  | **Get Columns** | Retourne la liste des en-têtes de colonnes |
  | **Clear** | Supprime toutes les lignes de données en conservant l'en-tête |

  **Options pour Get Rows (Sheet) :**

  | Option | Défaut | Description |
  |---|---|---|
  | **Return Last N Rows** | 0 (= toutes) | Retourner seulement les N dernières lignes |
  | **Start From Column** | 1 | Ignorer les colonnes avant la position N |
  | **Column Names or IDs** | (toutes) | Sélectionner les colonnes à inclure dans la sortie |

  ### Resource : Table

  Travaille sur une **table Excel nommée** (créée via *Insertion → Tableau* dans Excel, `Ctrl+T`).

  | Opération | Description |
  |---|---|
  | **List** | Liste toutes les tables nommées du classeur |
  | **Get Rows** | Retourne les lignes de la table (filtres et options disponibles) |
  | **Append Row** | Ajoute une ligne et **étend automatiquement la plage de la table** |
  | **Update Row** | Modifie une ligne par son numéro dans la table |
  | **Delete Row** | Supprime une ligne et **rétracte la plage de la table** |
  | **Get Columns** | Retourne les en-têtes de colonnes de la table |

  **Options et filtres pour Get Rows (Table) :**

  | Option / Champ | Description |
  |---|---|
  | **Include Row Number** | Ajoute `__rowNumber` à chaque item (1 = première ligne de données). Attribué **avant** les filtres — reflète la position réelle dans la table. Utilisez-le dans Update Row ou Delete Row pour cibler la ligne exacte. |
  | **Return Last N Rows** | Retourner seulement les N dernières lignes |
  | **Start From Column** | Ignorer les colonnes avant la position N |
  | **Filters** | Filtrer les lignes par valeur de colonne (plusieurs filtres = logique AND) |
  | **Column Names or IDs** | Sélectionner les colonnes à inclure dans la sortie |

  **Workflow : trouver et modifier une ligne précise**

  ```
  1. Get Rows (Table)
     ├─ Table   : Suivi
     ├─ Options : Include Row Number ✓
     └─ Filters : N° = {{ $json.numero }}

  2. Update Row (Table)
     ├─ Table      : Suivi
     ├─ Row Number : {{ $json.__rowNumber }}
     └─ Column Values : Statut → Validé
  ```

  ### Resource : Workbook

  | Opération | Description |
  |---|---|
  | **Get Sheets** | Retourne tous les noms de feuilles du classeur |
  | **Get Tables** | Retourne toutes les tables nommées de toutes les feuilles |

  ---

  ## Node — NextCloud Search

  Recherche une valeur dans une colonne d'un fichier tableur Nextcloud et retourne la valeur d'une autre colonne sur la même ligne — l'équivalent d'un **VLOOKUP / RECHERCHEV** directement dans n8n.

  > L'item d'entrée est enrichi avec les valeurs trouvées. Plusieurs lookups peuvent être configurés en une seule exécution (un seul téléchargement du fichier).

  ### Sélection de la source

  ```
  Source Type ▼  Sheet  ← ou "Table" (table Excel nommée)
  From        ▼  From List
  Dossier     ▼  📁 Documents
  Fichier     ▼  catalogue.xlsx
  Sheet       ▼  Tarifs         ← ou "Table" si Source Type = Table
  ```

  ### Lookups

  Chaque entrée du bloc **Lookups** configure une recherche indépendante :

  | Champ | Exemple | Description |
  |---|---|---|
  | **Search Column** | `Nom du matériel` | Colonne où chercher (dropdown auto-chargé depuis le fichier) |
  | **Search Value** | `{{ $json.materiel_nom_1 }}` | Valeur à trouver — supporte les expressions n8n |
  | **Return Column** | `Prix` | Colonne dont la valeur est retournée (dropdown auto-chargé depuis le fichier) |
  | **Output Field Name** | `materiel_prix_1` | Nom du champ JSON écrit dans l'item de sortie |

  Exemple de résultat avec `Pass Through` activé (défaut) :

  ```json
  {
    "materiel_nom_1": "Table",
    "materiel_prix_1": "50€"
  }
  ```

  ### Options

  | Option | Défaut | Description |
  |---|---|---|
  | **Case Sensitive** | `false` | Correspondance exacte de la casse |
  | **If Not Found** | `Set to Null` | `Set to Null` : null silencieux · `Throw Error` : arrêt avec erreur |
  | **Pass Through Original Data** | `true` | Conserver tous les champs d'entrée dans l'item de sortie |

  ### Workflow typique — enrichir un bon de commande

  ```
  Webhook (reçoit materiel_nom_1 = "Table")
    → NextCloud Search
        Lookup 1 : Nom du matériel = {{ $json.materiel_nom_1 }} → Prix → materiel_prix_1
        Lookup 2 : Nom du matériel = {{ $json.materiel_nom_2 }} → Prix → materiel_prix_2
    → NextCloud Doc Template (utilise materiel_prix_1, materiel_prix_2 dans le template)
  ```

  ---

  ## Node — NextCloud Doc Template

  Génère des documents Word (DOCX) ou LibreOffice Writer (ODT) à partir de templates stockés sur Nextcloud, en utilisant le moteur **Carbone** — syntaxe identique à `n8n-nodes-carbonejs`.

  ### Syntaxe Carbone dans les templates

  | Placeholder dans le document | Description |
  |---|---|
  | `{d.nom}` | Valeur simple |
  | `{d.date:formatD('DD/MM/YYYY')}` | Date formatée |
  | `{d.montant:toFixed(2)}` | Nombre avec 2 décimales |
  | `{d.lignes[i].designation}` | Début de boucle — répète la ligne/section pour chaque item du tableau |
  | `{d.lignes[i+1].designation}` | Fin de boucle (dernière cellule de la boucle) |
  | `{d.actif ? 'Oui' : 'Non'}` | Condition ternaire |
  | `{!d.champ}` | Affiché uniquement si vide/falsy |

  > **Important** : tapez les accolades `{ }` directement au clavier dans du texte normal dans Word. N'utilisez pas *Insertion → Champ* (`Ctrl+F9`).

  ### Opération : Fill Template

  **Sélection du template :**

  ```
  Template From   ▼  From List
  Template Folder ▼  📁 Templates
  Template File   ▼  contrat.docx
  ```
  Ou mode *By Path (Expression)* pour un chemin dynamique.

  **Mode de données :**

  | Mode | Utilisation |
  |---|---|
  | **Key-Value Pairs** | Saisie variable par variable. Le dropdown *Variable Name or ID* charge automatiquement tous les `{d.xxx}` trouvés dans le template. |
  | **JSON Object** | Passage d'un objet JSON complet — obligatoire pour les boucles et les pages dynamiques. Supporte les expressions n8n : `={{ { "lignes": $json.items } }}` |

  **Format de sortie :**

  | Format | Dépendance |
  |---|---|
  | **DOCX** (défaut) | Aucune — fonctionne sur toutes les installations n8n |
  | **PDF** | Nécessite LibreOffice installé sur le serveur n8n |

  **Mode de sortie — Save to Nextcloud :**

  ```
  Output Destination  ▼  Select Folder + File Name
  Output Folder       ▼  📁 Documents / Filled
  Output File Name       contrat_{{ $json.client }}.docx
  ```
  Ou mode *By Path (Expression)* pour un chemin complet dynamique.

  **Mode de sortie — Return as Binary :**
  ```
  Binary Property  : data
  Output File Name : contrat_{{ $json.client }}.docx
  ```

  ### Opération : Get Variables

  Scanne le template et retourne tous les placeholders `{d.xxx}` trouvés.

  ```json
  {
    "variables": ["{d.nom}", "{d.date}", "{d.lignes[i].designation}"],
    "rawKeys": ["nom", "date", "lignes[i].designation"],
    "count": 3,
    "templatePath": "/Templates/contrat.docx"
  }
  ```

  ---

  ## NextCloud Doc Template — Annexes conditionnelles

  > Cette fonctionnalité permet d'**ajouter automatiquement des fichiers DOCX supplémentaires** (règlements, schémas, annexes légales…) à la fin du document généré, selon des conditions évaluées à l'exécution. Un saut de page est inséré automatiquement avant chaque annexe.

  **Exemple :** template principal (2 pages) + annexe trottoir (1 page) + annexe chaussée (1 page) → document final de **4 pages**, sans créer de template combiné.

  ### Configuration

  **1. Sélectionner le dossier des annexes (partagé) :**

  ```
  Annexes Folder  ▼  📁 Templates / Annexes
  ```

  **2. Ajouter une entrée par annexe ([+ Add Annexe]) :**

  ```
  Condition — Value to Check : {{ $json.trottoir }}
  Condition                  : Is Not Empty ▼
  Annexe File                : annexe_trottoir.docx ▼   ← dropdown chargé depuis Annexes Folder
  Or: Annexe File Path       : (vide)
  ```

  ### Conditions disponibles

  | Condition | L'annexe est ajoutée quand… |
  |---|---|
  | **Is Not Empty** | La valeur n'est pas vide / null / 0 / false |
  | **Equals** | La valeur correspond exactement à *Compare To* |
  | **Not Equals** | La valeur est différente de *Compare To* |
  | **Contains** | La valeur contient la chaîne *Compare To* |
  | **Always Append** | Toujours ajouter, quelle que soit la valeur |

  ### Chemin dynamique par expression

  Le champ **Or: Annexe File Path (Expression)** prend la priorité sur le dropdown — utile quand le nom du fichier dépend d'une donnée du workflow :

  ```
  Or: Annexe File Path : /Templates/Annexes/annexe_{{ $json.type_voirie }}.docx
  ```

  ### Cumul de plusieurs annexes

  Toutes les annexes dont la condition est vraie sont fusionnées **dans l'ordre** de la liste. La fusion gère les **images** (copie et renommage automatique pour éviter les conflits de rId) et les **hyperliens**.

  ```
  [Annexe 1] trottoir   Is Not Empty → annexe_trottoir.docx   ✓ ajoutée
  [Annexe 2] chaussee   Is Not Empty → annexe_chaussee.docx   ✗ ignorée (champ vide)
  [Annexe 3] securite   Equals "Barrières" → annexe_barriere.docx  ✓ ajoutée

  Résultat : template (2p) + annexe_trottoir (1p) + annexe_barriere (1p) = 4 pages
  ```

  ---

  ## Node — NextCloud Doc Template (suite)

  ### Formateurs Carbone

  | Formateur | Résultat |
  |---|---|
  | `{d.montant:toFixed(2)}` | `1500.00` |
  | `{d.date:formatD('DD/MM/YYYY')}` | `15/05/2025` |
  | `{d.nom:upper()}` | `MARTIN` |
  | `{d.nom:ucFirst()}` | `Martin` |
  | `{d.note:ifEmpty('N/A')}` | `N/A` si vide |
  | `{d.montant:convCurr('EUR','fr-FR')}` | `1 500,00 €` |

  ---

  ## Node — NextCloud PDF

  Lit, extrait le texte et remplit les champs de **formulaires PDF** stockés sur Nextcloud.

  ### Opération : Get Fields

  Extrait tous les champs d'un **formulaire AcroForm interactif** (PDF non aplati). Retourne un JSON structuré avec deux niveaux :
  - `values` : objet plat `{ NomChamp: valeur }` — utilisable directement dans les expressions (`$json.values.NomChamp`)
  - `fields` : tableau détaillé avec `name`, `type`, `value`, `options`, `required`, `readOnly`

  > Si `Get Fields` retourne 0 champs, le PDF est probablement aplati — utilisez **Get Text** ou le node **NextCloud OCR**.

  **Types de champs supportés :**

  | Type | Description | Valeur retournée |
  |---|---|---|
  | `text` | Champ texte | `string` |
  | `checkbox` | Case à cocher | `true` / `false` |
  | `radio` | Bouton radio | `string` (option sélectionnée) |
  | `dropdown` | Liste déroulante | `string` |
  | `optionList` | Liste à sélection multiple | `string[]` |
  | `signature` | Champ de signature | `null` |
  | `button` | Bouton | `null` |

  ### Opération : Get Text

  Extrait le **texte brut page par page** depuis la couche texte du PDF, sans OCR. Fonctionne sur les PDFs aplatis remplis numériquement (CERFA numérique, formulaires administratifs, etc.) dont le texte est vectoriel mais non sélectionnable comme champs AcroForm.

  ```json
  {
    "pdfPath": "/cerfa_14023.pdf",
    "text": "DÉCLARATION DE CESSION\nVendeur : DUPONT Jean\nMarque : Renault...",
    "pageCount": 2,
    "pages": [
      { "page": 1, "text": "DÉCLARATION DE CESSION\n..." },
      { "page": 2, "text": "..." }
    ]
  }
  ```

  > Si `text` est vide ou illisible, le PDF est scanné (image) — utilisez le node **NextCloud OCR** avec Docling.

  ### Opération : Fill Fields

  **Mode de saisie :**

  | Mode | Description |
  |---|---|
  | **Paires Clé-Valeur** | Le dropdown *Nom du champ* charge automatiquement tous les champs du PDF avec leur type et leurs options. |
  | **Objet JSON** | Passage d'un objet JSON complet — idéal pour les webhooks : `={{ $json.body }}` |

  **Valeurs acceptées pour les cases à cocher :**

  | Coché | Non coché |
  |---|---|
  | `Oui`, `Yes`, `True`, `1`, `Vrai`, `checked`, `on` | `Non`, `No`, `False`, `0`, `Faux` |

  *(insensible à la casse)*

  **Option Aplatir le formulaire :** les champs deviennent du texte imprimé non modifiable. Fonctionne même si certains champs n'ont pas été remplis — les champs vides sont aplatis comme espace blanc.

  **Mode de sortie — Save to Nextcloud :**

  ```
  Destination de sortie   ▼  Choisir un dossier + nom de fichier
  Dossier de sortie       ▼  📁 Documents / Remplis
  Nom du fichier de sortie   formulaire_{{ $json["Nom"] }}.pdf
  ```
  Ou mode *Par chemin complet (expression)*.

  ---

  ---

  ## Node — NextCloud OCR

  Extrait le texte de fichiers PDF stockés sur Nextcloud via un moteur OCR externe. Conçu pour les PDFs **scannés** (image) ou **aplatis sans couche texte** exploitable.

  > Pour les PDFs remplis numériquement (texte vectoriel), préférez **NextCloud PDF → Get Text** qui est plus rapide et ne nécessite aucun serveur externe.

  ### Choisir le bon outil

  | Situation | Node recommandé |
  |---|---|
  | PDF interactif avec champs AcroForm | **NextCloud PDF → Get Fields** |
  | PDF aplati rempli numériquement (texte sélectionnable) | **NextCloud PDF → Get Text** |
  | PDF scanné ou texte non sélectionnable | **NextCloud OCR → Docling ou Mistral** |

  ### Moteur : Docling (local)

  Envoie le PDF au serveur [`docling-serve`](https://github.com/DS4SD/docling-serve) auto-hébergé. Idéal pour les environnements self-hosted — aucune donnée ne quitte votre infrastructure.

  | Paramètre | Défaut | Description |
  |---|---|---|
  | **URL du serveur** | `http://localhost:5001` | URL de base du serveur docling-serve |
  | **Version API** | `/v1alpha/convert/source` | Chemin de l'endpoint — sélectionner selon la version installée |

  **Versions API :**

  | Version Docling-serve | Chemin |
  |---|---|
  | ≤ 0.4 | `/v1alpha/convert/source` |
  | ≥ 0.5 | `/v1/convert/source` |
  | Autre | *Personnalisé* (champ libre) |

  **Démarrer Docling en local (Docker) :**
  ```bash
  docker run -p 5001:5001 ds4sd/docling-serve
  ```

  ### Moteur : Mistral OCR

  Envoie le PDF (encodé base64) à l'[API Mistral OCR](https://docs.mistral.ai/capabilities/document/).

  | Paramètre | Défaut | Description |
  |---|---|---|
  | **Clé API Mistral** | — | Créer sur [console.mistral.ai/api-keys](https://console.mistral.ai/api-keys) |
  | **Modèle** | `mistral-ocr-latest` | Identifiant du modèle OCR |

  ### Sortie

  ```json
  {
    "pdfPath": "/cerfa_14023.pdf",
    "provider": "docling",
    "text": "DÉCLARATION DE CESSION\nVendeur : DUPONT Jean\n...",
    "markdown": "# DÉCLARATION DE CESSION\n\n**Vendeur :** DUPONT Jean\n...",
    "pageCount": 2,
    "pages": [
      { "index": 0, "text": "...", "markdown": "..." }
    ]
  }
  ```

  > `pages[]` est peuplé par les providers qui retournent une pagination (Mistral). `markdown` préserve la structure du document (titres, tableaux) — préférable pour le post-traitement AI.

  ### Option : Inclure la réponse brute

  Activez **Inclure la réponse brute** pour voir la réponse complète du provider dans le champ `raw` — utile pour diagnostiquer des problèmes ou explorer les métadonnées disponibles.

  ---

  ## Workflow CERFA — Extraire les champs d'un formulaire aplati

  ```
  NextCloud PDF → Get Text
    (si text vide → NextCloud OCR avec Docling)
      ↓
  Node AI (OpenAI / Claude)
    Prompt : "Voici le texte d'un CERFA N°14023*01 (déclaration de cession).
              Extrais en JSON : nom_vendeur, prenom_vendeur, adresse_vendeur,
              nom_acheteur, prenom_acheteur, adresse_acheteur, marque, modele,
              immatriculation, vin, date_cession, kilometrage.
              Si absent → null."
      ↓
  Utiliser les champs extraits dans le reste du workflow
  ```

  ---

  ## Chemins Nextcloud

  Tous les chemins sont **relatifs à la racine de votre espace Nextcloud** :

  ```
  /                                → racine
  /Documents/rapport.xlsx          → fichier dans Documents
  /Templates/Annexes/trottoir.docx → sous-dossier
  ```

  ---

  ## Workflows typiques

  ### Contrat depuis un formulaire n8n

  ```
  Form Trigger → NextCloud Doc Template (Fill Template, Return Binary) → Send Email
  ```

  ### Remplir un PDF depuis un webhook

  ```
  Webhook → NextCloud PDF (Fill Fields, Save to Nextcloud)
  ```

  ### Facture avec tableau de lignes dynamiques

  ```
  HTTP Request → NextCloud Doc Template (JSON Object mode, {d.lignes[i].xxx})
  ```

  ### Demande avec annexes conditionnelles

  ```
  Webhook → NextCloud Doc Template (Fill Template + Conditional Annexes)
  ```

  ### Extraire les données d'un CERFA rempli numériquement (aplati)

  ```
  NextCloud PDF (Get Text) → Node AI → traitement des champs extraits
  ```

  ### Extraire les données d'un CERFA scanné

  ```
  NextCloud OCR (Docling) → Node AI → traitement des champs extraits
  ```

  ---

  ## Développement local

  ```bash
  git clone https://github.com/wdebonne/n8n-nodes-nextcloud-ext.git
  cd n8n-nodes-nextcloud-ext

  NODE_OPTIONS=--use-system-ca npm install
  npm run build   # TypeScript → dist/
  npm run dev     # mode watch
  ```

  ### Tester dans n8n

  ```bash
  npm run build && npm link
  # Dans le répertoire de données n8n :
  npm link n8n-nodes-nextcloud-ext
  ```

  ---

  ## Roadmap

  - [ ] Support OAuth2 Nextcloud (PKCE)
  - [ ] Node **Nextcloud Talk** (messages, salons)
  - [ ] Node **Nextcloud Contacts** (CardDAV)
  - [ ] Node **Nextcloud Calendar** (CalDAV)

  ---

  ## Licence

  [MIT](LICENSE) — © 2025 wdebonne

  ---

  ## Liens

  - [npmjs.com/package/n8n-nodes-nextcloud-ext](https://www.npmjs.com/package/n8n-nodes-nextcloud-ext)
  - [GitHub](https://github.com/wdebonne/n8n-nodes-nextcloud-ext)
  - [Changelog](CHANGELOG.md)
  - [Guide Doc Template](GUIDE_NEXTCLOUD_DOC.md)
  - [Documentation n8n — Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

ai_documentation_summary:
  {"purpose":"A community n8n node package providing Nextcloud integration for file management, spreadsheet operations, document template rendering, and PDF form handling.","capabilities":["File listing, upload, download, delete, move, and copy via WebDAV","Folder creation and deletion","Public sharing link creation and management","Reading and writing Excel/CSV/ODS spreadsheets with named table support","Preserving Excel styles, merged cells, and formatting during edits","DOCX/ODT template rendering with Mail Merge syntax (Carbone)","Conditional attachment merging in documents","PDF text extraction and AcroForm field read/write","OCR text extraction from scanned or flattened PDFs using Docling local or Mistral OCR"],"authentication":"Username and Password (or App Password) required","commonUseCases":["Self-hosted alternative to Microsoft 365 Excel and OneDrive for n8n workflows","Automated document generation from templates with variable data","PDF form automation and data extraction","File organization and sharing management in Nextcloud"],"limitations":["Requires Nextcloud instance version 20 or higher","Requires HTTPS connection to Nextcloud","Requires n8n version 1.0.0 or higher","Requires Node.js version 18.10 or higher","Community node status (not official n8n package)"],"relatedNodes":["Nextcloud Folder","Nextcloud Spreadsheet","Nextcloud Search","Nextcloud Doc Template","Nextcloud PDF"]}


node_type: n8n-nodes-webpage-content-extractor.webpagecontentextractor
package_name: n8n-nodes-webpage-content-extractor
display_name: webpagecontentextractor
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: savjee
author_github_url: git+https://github.com/Savjee/n8n-nodes-webpage-content-extractor.git
npm_package_name: n8n-nodes-webpage-content-extractor
npm_version: 0.1.3
community_fetched_at: 2026-05-22T09:37:14.445Z
ai_summary_generated_at: 2026-05-02 08:57:17
description:
  Extracts the content from a given URL. Similar to the 'Reader' mode in your browser, it ignores headers, footers, banners, etc.

npm_readme:
  # n8n-nodes-webpage-content-extractor

  This is an n8n community node. It extracts the contents from a given URL. Similar to the 'Reader' mode in your browser, it ignores headers, footers, banners, etc.

  It's based on the [Readability library](https://github.com/mozilla/readability) that is used by Firefox's Reader View.


  ---

  [Installation](#installation)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  


  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.


  ## Compatibility

  Tested on n8n v1.20.0 and above.

  ## Usage

  To use this node, fetch a website's HTML code with a "HTTP Request" node and then pass it on to WebpageContentExtractor.

  This allows you to configure all aspects of the web request (method, authentication, headers, etc).


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)


  ## Version history

  ### 0.1.3 (2025-01-07)
  * Updated dependencies & removed Gulp

  ### 0.1.2 (2024-11-20)
  * Add "content" attribute to output

  ### 0.1.1
  * Fixing the README

  ### 0.1.0
  Initial release

ai_documentation_summary:
  {"purpose":"Extracts clean, readable content from a given URL by ignoring headers, footers, and banners, similar to a browser's Reader mode.","capabilities":["Extracts main article content from HTML","Ignores navigation headers, footers, and banners","Outputs structured content data","Works with HTML fetched via HTTP Request node"],"authentication":"None","commonUseCases":["Content summarization workflows","RSS feed processing","Blog post aggregation","News scraping"],"limitations":["Requires HTML to be fetched first via an HTTP Request node","Relies on Mozilla's Readability library which may not handle all dynamic or non-standard layouts perfectly"],"relatedNodes":["HTTP Request"]}


node_type: n8n-nodes-seo-scanner.seoscanner
package_name: n8n-nodes-seo-scanner
display_name: seoscanner
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: oxsr
npm_package_name: n8n-nodes-seo-scanner
npm_version: 1.2.36
community_fetched_at: 2026-05-22T09:37:14.446Z
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  Nodo n8n: escaneo SEO técnico completo de una página web, con opción de escanear enlaces internos, informe HTML tipo dashboard, detección de CMS/plugins, crawl extendido (DNS, CDN, SSL, analytics).

npm_readme:
  # n8n-nodes-seo-scanner

  Nodo comunitario de n8n para auditorias SEO tecnicas con marca UOPIX. Analiza una URL, puede rastrear paginas internas del mismo dominio y devuelve un JSON estructurado con problemas, avisos, checks correctos, recomendaciones y un informe HTML tipo dashboard.

  ## Que hace

  - Audita una pagina web a partir de una URL absoluta.
  - Puede rastrear URLs internas descubiertas en enlaces y sitemaps.
  - Permite forzar paginas obligatorias, excluir patrones y silenciar fallos concretos.
  - Detecta problemas SEO tecnicos, accesibilidad basica, enlaces rotos, headers de seguridad y metadatos sociales.
  - Puede renderizar JavaScript con Puppeteer para webs React, Vue, Angular u otras SPAs.
  - Genera un informe HTML listo para responder desde un Webhook de n8n.
  - Puede enviar el resultado final a una API externa mediante callback.
  - Soporta salida en ingles o espanol para los textos generados y el informe HTML.
  - Limita rafagas por dominio, respeta `Retry-After` y reintenta de forma acotada errores temporales (`403`, `429` y `5xx`).
  - Usa un User-Agent identificable en Wikimedia y un fallback ligero de navegador solo ante paginas de bloqueo que requieren JavaScript.

  ## Comprobaciones principales

  - Estado HTTP, HTTPS y redirecciones.
  - Title, meta description, viewport, robots y canonical.
  - H1, estructura de headings y conteo aproximado de palabras.
  - Imagenes sin `alt`, enlaces internos y externos, y enlaces rotos.
  - Open Graph, JSON-LD, favicon, charset y atributo `lang`.
  - Hreflang, idioma detectado y coherencia basica multidioma.
  - Robots.txt, sitemap, DNS, CDN, SSL y geolocalizacion tecnica.
  - Headers de seguridad y buenas practicas web.
  - CMS, plugins y tecnologias detectadas cuando hay senales suficientes.
  - Score 0-100, resumen por severidad y recomendaciones accionables.

  ## Instalacion desde GitHub

  En una instalacion local de n8n:

  ```bash
  cd ~/.n8n/nodes
  npm install github:OXSR/n8n-nodes-seo-scanner
  n8n start
  ```

  En Windows PowerShell:

  ```powershell
  New-Item -ItemType Directory -Force "$env:USERPROFILE\.n8n\nodes"
  Set-Location "$env:USERPROFILE\.n8n\nodes"
  npm install github:OXSR/n8n-nodes-seo-scanner
  n8n start
  ```

  Tambien puedes cargarlo como extension local durante el desarrollo:

  ```powershell
  cd C:\Users\oriol\.n8n\custom\n8n-nodes-seo-scanner
  npm install
  npm run build
  $env:N8N_CUSTOM_EXTENSIONS="C:\Users\oriol\.n8n\custom\n8n-nodes-seo-scanner"
  n8n start
  ```

  Despues de instalar o actualizar el nodo, reinicia n8n y recarga el editor.

  ## Uso en n8n

  1. Anade el nodo **SEO UOPIX** al workflow.
  2. Introduce la **URL de la pagina** que quieres analizar.
  3. Activa **Escanear todo el sitio** si quieres analizar tambien paginas internas.
  4. Ajusta el limite de paginas, timeout, user-agent, idioma de salida y opciones de detalle.
  5. Ejecuta el nodo y usa la salida JSON en tus siguientes pasos.

  Campos utiles:

  - **URL de la pagina**: URL absoluta, por ejemplo `https://example.com/pagina`.
  - **Escanear todo el sitio**: rastrea URLs internas del dominio.
  - **Limite de paginas a escanear**: controla el tamano del crawl.
  - **Paginas obligatorias a escanear**: URLs del mismo dominio que siempre se incluyen.
  - **Excluir URLs que contengan**: patrones para no rastrear rutas concretas.
  - **Ignorar fallos / paginas**: filtra mensajes o URLs conocidas.
  - **Usar JavaScript Rendering**: usa Puppeteer para contenido renderizado por cliente.
  - **Proteccion ante bloqueos**: el nodo aplica pausas cortas por dominio y evita repetir el sondeo pesado de recursos en cada pagina interna.
  - **Output Language**: `English` o `Spanish`.
  - **Generar informe HTML**: agrega `html` y `reportHtml` a la salida.
  - **Enviar resultados a API externa**: hace POST a una URL de callback al terminar.

  ## Salida

  La salida principal incluye:

  - `mainPage`: analisis completo de la URL principal.
  - `internalPages`: analisis de paginas internas cuando el crawl esta activo.
  - `internalScanSummary`: resumen del rastreo interno.
  - `severitySummary`: conteos por severidad.
  - `issues`, `warnings`, `passed` y `recommendations`.
  - `score`: puntuacion SEO de 0 a 100.
  - `html` y `reportHtml`: informe HTML cuando esta activado.

  El export JSON no se traduce por diseno: mantiene nombres de campo estables para automatizaciones.

  ## Informe HTML

  Para servir el informe desde n8n:

  1. Crea un workflow con **Webhook** -> **SEO UOPIX** -> **Respond to Webhook**.
  2. En **SEO UOPIX**, activa **Generar informe HTML**.
  3. En **Respond to Webhook**, usa:
     - **Respond With**: `Text`
     - **Response Body**: `{{ $json.html }}`
  4. Activa el workflow y abre la URL del webhook.

  Si tu version de n8n muestra el HTML dentro de un iframe con sandbox y ves una pantalla en blanco, puedes usar `N8N_INSECURE_DISABLE_WEBHOOK_IFRAME_SANDBOX=true` en entornos self-hosted controlados.

  ## Credenciales UOPIX

  El nodo incluye credenciales **SEO UOPIX API**:

  - `API Key`: clave personal generada en UOPIX.
  - `App Base URL`: URL base que valida la API key, por defecto `https://uopix.com`.

  Estas credenciales se usan cuando el flujo necesita validar o consumir usos de API asociados a UOPIX.

  ## Desarrollo

  ```bash
  npm install
  npm run build
  ```

  Archivos principales:

  - `nodes/SeoScanner/SeoScanner.node.ts`: definicion del nodo y ejecucion.
  - `nodes/SeoScanner/analyzeUtils.ts`: analisis SEO de pagina.
  - `nodes/SeoScanner/reportUtils.ts`: salida e informe HTML.
  - `nodes/SeoScanner/uopix-mark.svg`: icono del nodo.
  - `dist/nodes/SeoScanner`: build que carga n8n.

  Antes de publicar cambios:

  ```bash
  npm run build
  ```

  ## Licencia

  MIT

ai_documentation_summary:
  {"purpose":"Performs a comprehensive technical SEO scan of a webpage, including internal site crawling, and generates a detailed HTML dashboard report.","capabilities":["Analyzes URL status (HTTPS, response code)","Validates title tags (presence, length 30-60 chars)","Validates meta description (presence, length 120-160 chars)","Checks meta viewport for mobile responsiveness","Validates meta robots content and noindex warnings","Verifies canonical tag presence and self-referencing","Analyzes H1 tag count and content","Checks heading structure (H2, H3, etc.)","Scans images for alt tags and lists missing ones","Categorizes internal vs external links"],"authentication":"None","commonUseCases":["Technical SEO audit of a single landing page","Full site SEO audit with internal link analysis","Generating SEO reports for clients via HTML dashboard","Monitoring SEO health over time"],"limitations":["Requires Node.js 18+ to run","Depends on external 'cheerio' package","Internal scanning duration is limited by a configurable maximum page count","HTML report may require disabling iframe sandbox in n8n 1.103+ for direct browser viewing","Uses native fetch API, which may have limitations in certain server environments"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.respondtowebhook","n8n-nodes-base.html"]}


node_type: n8n-nodes-text-manipulation.textmanipulation
package_name: n8n-nodes-text-manipulation
display_name: textmanipulation
description: This node allows to modify texts.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: lublak
author_github_url: git+https://github.com/lublak/n8n-nodes-text-manipulation.git
npm_package_name: n8n-nodes-text-manipulation
npm_version: 1.4.0
community_fetched_at: 2026-05-22T09:37:14.446Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  <p align="center">
    <img width="180" height="180" src="/assets/textManipulation/icon.png">
  </p>

  # n8n-nodes-text-manipulation

  [![version](https://img.shields.io/npm/v/n8n-nodes-text-manipulation.svg)](https://www.npmjs.org/package/n8n-nodes-text-manipulation)
  [![downloads](https://img.shields.io/npm/dt/n8n-nodes-text-manipulation.svg)](https://www.npmjs.org/package/n8n-nodes-text-manipulation)
  [![status](https://github.com/lublak/n8n-nodes-text-manipulation/actions/workflows/node.js.yml/badge.svg)](https://github.com/lublak/n8n-nodes-text-manipulation/actions/workflows/node.js.yml)

  Text manipulation allows various manipulations of strings.
  Features:

  - From
  	- Text
  	- File (Binary)
  		- With decode options see icon-v (utf8, base64, utf16, etc...)
  	- JSON
  - To
  	- Text
  	- File (Binary)
  		- With encode options see icon-v (utf8, base64, utf16, etc...)
  	- JSON
  - Get Manipulated Data (use previously manipulated)
  - Skip Non-String
  - Concat
  	- Before
  	- After
  - Decode/Encode
  	- see icon-v (utf8, base64, utf16, etc...)
  	- with strip/add BOM
  - Decode Entities
  	- Url
  	- Url Component
  	- Xml
  		- Legacy
  		- Strict
  	- Html
  		- Legacy
  		- Strict
  - Encode Entities
  	- Url
  	- Url Component
  	- Xml
  		- Extensive
  		- UTF8
  		- NonAscii
  	- Html
  		- Extensive
  		- UTF8
  		- NonAscii
  - Letter Case
  	- Upper Case
  	- Lower Case
  	- Locale Upper Case
  	- Locale Lower Case
  	- Capitalize
  	- Titlecase
  	- Camel Case
  	- Kebab Case
  	- Snake Case
  	- Start Case
  - Replace
  	- Substring
  		- All
  		- Extended
  	- Extended Substring
  		- All
  		- Extended
  	- Regex
  		- Extended
  	- Predefined Rule
  		- Tags
  			- Only Recognised HTML
  		- Character Groups
  			- Newline
  				- Newline Min
  				- Newline Max
  			- Number
  				- Number Min
  				- Number Max
  			- Alpha
  				- Alpha Min
  				- Alpha Max
  			- Whitespace
  				- Whitespace Min
  				- Whitespace Mac
  - Trim
  	- Left
  		- as an unit
  	- Right
  		- as an unit
  	- Both
  		- as an unit
  - Pad
  	- Start
  	- End
  - Substring
  	- StartPosition
  	- With
  		- Complete
  		- Position
  		- Length
  - Repeat
  	- Times
  - Normalize

  ## Install

  ![Settings Animation](/assets/install.gif)

  1. Go to Settings (Cogwheel)
  2. Click on "Community Nodes"
  3. Enter "n8n-nodes-text-manipulation" into the text box
  4. Click on "I understand the risk ..."
  5. Click on "Install"

ai_documentation_summary:
  {"purpose":"The textmanipulation node allows users to perform various string operations, including decoding/encoding, case conversion, entity handling, and text formatting, on text or binary data.","capabilities":["Decode and encode text (UTF8, base64, UTF16)","Decode and encode entities (URL, XML, HTML)","Convert letter case (upper, lower, capitalize, titlecase, camel, kebab, snake)","Replace substrings using regex or predefined rules","Trim, pad, and substring text","Repeat text a specified number of times","Normalize text","Handle binary files with decode/encode options","Skip non-string inputs","Concatenate text before or after manipulation"],"authentication":"None","commonUseCases":["Cleaning and formatting user input","Encoding/decoding data for transmission","Converting text formats (e.g., camelCase to snake_case)","Processing binary files as text","Removing special characters or normalizing data"],"limitations":[],"relatedNodes":["n8n-nodes-core.code","n8n-nodes-core.binary","n8n-nodes-core.httprequest"]}


node_type: n8n-nodes-telegram-bot-gridasov.telegrambotgridasov
package_name: n8n-nodes-telegram-bot-gridasov
display_name: telegrambotgridasov
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-05-22 09:37:14
author_name: xoldxold2
npm_package_name: n8n-nodes-telegram-bot-gridasov
npm_version: 5.0.11
community_fetched_at: 2026-05-22T09:37:14.447Z
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  n8n community node for Telegram with Bot API and MTProto API support. Includes two nodes: Telegram Bot (simple setup with Bot API) and Telegram MTProto (advanced setup that can receive ALL messages including from bots in groups).

npm_readme:
  # n8n-nodes-telegram-bot

  This is a community node for n8n that provides two nodes for working with Telegram:

  - **Telegram Bot** - uses Bot API (simple setup, limitations on messages from bots)
  - **Telegram MTProto** - uses MTProto API (complex setup, receives ALL messages including from bots)

  ## Installation

  1. Open n8n
  2. Go to Settings > Community Nodes
  3. Install package: `n8n-nodes-telegram-bot-gridasov`

  ## Setup

  ### Creating a Telegram bot

  1. Find @BotFather in Telegram
  2. Send the `/newbot` command
  3. Follow the instructions to create a bot
  4. Save the received token

  ### Setting up credentials in n8n

  1. In n8n, create new credentials of type "Telegram Bot API"
  2. Enter your bot token in the "Bot Token" field
  3. Test the connection

  ## Usage

  ### Basic workflow

  1. Add a "Schedule Trigger" for periodic execution
  2. Add a "Telegram Bot" node
  3. Select "Get Updates" operation
  4. Configure parameters:
     - **Limit**: number of messages to receive (default 100)
     - **Offset**: ID of the first update to receive
     - **Timeout**: timeout for long polling

  ### Parameters

  - **Limit**: Maximum number of updates to receive (1-100)
  - **Timeout**: Timeout in seconds for long polling (0-50). Higher values reduce the number of API requests
  - **Auto Confirm Updates**: Automatically confirm received updates (recommended)
  - **Include Bot Messages**: Include messages from other bots in groups (requires disabling bot privacy)
  - **Debug Mode**: Enable debug information in output (shows API request details)

  ### Example workflow

  ```
  Schedule Trigger (every 5 minutes)
      ↓
  Telegram Bot (Get New Updates)
      ↓
  IF (check message type)
      ↓
  Process messages
  ```

  ## Automatic offset management

  The node **automatically tracks** the last processed messages:

  - ✅ No need to manually configure offset
  - ✅ Automatically avoids message duplication  
  - ✅ Preserves state between workflow runs
  - ✅ Confirms processed updates in Telegram

  ## Data structure

  ### When new messages are available:
  ```json
  {
    "update_id": 123456789,
    "message": {
      "message_id": 1,
      "from": {
        "id": 123456789,
        "is_bot": false,
        "first_name": "John",
        "username": "john_doe"
      },
      "chat": {
        "id": 123456789,
        "first_name": "John",
        "username": "john_doe",
        "type": "private"
      },
      "date": 1640995200,
      "text": "Hello, bot!"
    }
  }
  ```

  ### When no new messages are available:
  ```json
  {
    "message": "No new updates available",
    "last_offset": 123456790,
    "timestamp": "2025-07-16T08:30:00.000Z"
  }
  ```

  ## Receiving messages from bots in groups

  ⚠️ **IMPORTANT LIMITATION**: Telegram Bot API has server-side restrictions on receiving messages from other bots. This is a Telegram-level limitation and cannot be fully bypassed through Bot API.

  ### What you can try:

  1. **Add your bot to a group** with other bots
  2. **Disable bot privacy** via @BotFather:
     - Send `/mybots` 
     - Select your bot
     - Go to Bot Settings → Group Privacy
     - Select "Turn off"
  3. **Give the bot administrator rights** in the group
  4. **Enable the "Include Bot Messages" option** in the node settings

  ### Alternative solutions:

  - **Use the Telegram MTProto node** (included in this package) - receives ALL messages
  - **Webhook approach**: Set up webhook instead of polling
  - **Intermediate bot**: Create a relay bot that forwards messages from other bots

  ---

  # Telegram MTProto (New node!)

  ## 🚀 Solution for bot messages problem

  The **Telegram MTProto** node uses MTProto API and can receive **ALL messages**, including messages from other bots in groups.

  ### MTProto setup

  1. **Get API credentials**:
     - Go to https://my.telegram.org/apps
     - Log in with your phone number
     - Create a new application
     - Save the `api_id` and `api_hash`

  2. **Create credentials in n8n**:
     - Type: "Telegram MTProto API"
     - API ID: your api_id
     - API Hash: your api_hash
     - Phone Number: your phone number (for initial authentication)
     - Session String: leave empty on first use

  3. **First run**:
     - Authentication will be required on first run
     - Enable Debug Mode to get the session string
     - Save the session string in credentials for future use

  ### Using MTProto node

  ```
  Schedule Trigger (every 5 minutes)
      ↓
  Telegram MTProto (Get Chat Messages)
      ↓
  Process messages (including from bots!)
  ```

  ### MTProto node parameters

  - **Chat ID or Username**: Chat ID or @username
  - **Limit**: Number of messages to receive
  - **Offset ID**: Message ID to start from (0 = latest)
  - **Include Bot Messages**: Include messages from bots (default true)
  - **Debug Mode**: Debug information

  ### MTProto advantages

  ✅ **Receives ALL messages** including from bots  
  ✅ **No Telegram server limitations**  
  ✅ **More powerful API** with extended capabilities  
  ✅ **Works with any chats** where you have access  

  ### MTProto disadvantages

  ❌ **Complex setup** - requires API credentials  
  ❌ **Authentication** - requires phone number  
  ❌ **More dependencies** - uses telegram library  

  ---

  ### Troubleshooting

  If messages from bots are not coming:

  1. **Enable "Debug Mode"** in node settings to get debug information
  2. **Check bot settings** via @BotFather with `/mybots` → select bot → Bot Settings
  3. **Ensure Group Privacy = OFF**
  4. **Check bot permissions** in the group (must be administrator)
  5. **Ask another bot to write** a test message in the group

  ### Testing API directly

  You can test the API directly using a test script:

  ```bash
  # Download test script
  curl -O https://raw.githubusercontent.com/your-repo/test-telegram-api.js

  # Run test
  node test-telegram-api.js YOUR_BOT_TOKEN
  ```

  ## Recommendations

  1. **Use timeout > 0** for long polling - this reduces API load
  2. **Keep Auto Confirm enabled** - this prevents message reprocessing
  3. **Configure Schedule Trigger** with an interval greater than timeout for optimal operation
  4. **Handle different types** of updates (messages, callback queries, inline queries)
  5. **To receive messages from bots** be sure to disable privacy via @BotFather

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community node package providing two Telegram integration options: a simple Bot API node for basic message retrieval and an advanced MTProto node for receiving all messages including those from other bots.","capabilities":["Retrieve messages via Bot API (long polling)","Retrieve messages via MTProto API","Automatic offset management to prevent duplicate messages","Receive messages from bots in groups (MTProto only)","Receive messages from bots in groups (Bot API with privacy settings)","Schedule-based message polling","Debug mode for API request details","Support for private chats and groups"],"authentication":"Bot API: Token required. MTProto: API ID, API Hash, and Phone Number required.","commonUseCases":["Chatbot automation","Monitoring Telegram channels","Receiving notifications from other bots","Periodic message polling","Group chat monitoring"],"limitations":["Bot API cannot receive messages from other bots by default due to Telegram server restrictions","Bot API requires disabling bot privacy settings to receive bot messages in groups","MTProto requires complex setup with phone number authentication","Bot API has limitations on message retrieval compared to MTProto","Manual configuration of offset is not needed but state is preserved between runs"],"relatedNodes":["n8n-nodes-base.scheduleTrigger","n8n-nodes-base.if","n8n-nodes-base.webhook","n8n-nodes-base.telegrambot","n8n-nodes-base.telegrammtproto"]}


node_type: @splainez/n8n-nodes-phonenumber-parser.phonenumberparser
package_name: @splainez/n8n-nodes-phonenumber-parser
display_name: phonenumberparser
description: Parse a phone number and return its information
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: splainez
author_github_url: git+https://github.com/splainez/n8n-nodes-phonenumber-parser.git
npm_package_name: @splainez/n8n-nodes-phonenumber-parser
npm_version: 1.2.0
community_fetched_at: 2026-06-26T10:18:48.829Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-phonenumber-parser

  [![version](https://img.shields.io/npm/v/@splainez/n8n-nodes-phonenumber-parser.svg)](https://www.npmjs.org/package/@splainez/n8n-nodes-phonenumber-parser)

  ## Description

  The `PhoneNumberParser` node is a powerful tool for working with phone numbers in your n8n workflows. It uses the `libphonenumber-js` library to format phone numbers into human-readable formats and extract useful information, such as the country code, area code, and phone number.


  You can also clone the repository from GitHub and build the package yourself.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n Community Nodes documentation.

  ## Usage

  To use the `PhoneNumberParser` node in your n8n workflows, drag and drop the node from the node palette onto your workflow canvas. Then, connect the output of any preceding node to the input of the `PhoneNumberParser` node.

  The `PhoneNumberParser` node has a single input parameter: the phone number to be formatted. This should be a string containing only digits. Once the node receives the phone number, it will automatically format it into a human-readable format and extract useful information, such as the country code, area code, and phone number. The formatted phone number will be output as a JSON object containing these fields.

  This node parses a phone number using the `libphonenumber-js` library and returns its information in JSON format. The following information is included in the output:

  * `country`: The country code associated with the phone number.
  * `countryCallingCode`: The country calling code of the phone number.
  * `nationalNumber`: The national (significant) part of the phone number.
  * `formatNational`: The phone number formatted in national format.
  * `formatInternational`: The phone number formatted in international format.
  * `formatE164`: The phone number formatted in E.164 format.
  * `formatRFC3966`: The phone number formatted in RFC3966 format.
  * `possible`: Whether the length of the phone number is valid, although it may not necessarily be correctly formatted.
  * `valid`: Whether the phone number is valid, based on both length and format.
  * `nonGeographic`: Whether the phone number is non-geographic (i.e., not tied to a specific location).
  * `type`: The type of phone number (e.g., FIXED_LINE_OR_MOBILE, MOBILE, FIXED_LINE, TOLL_FREE, etc.).


  ## License

  This project is licensed under the MIT License. See the `LICENSE` file for more details.

  This project uses the `libphonenumber-js` library, which is also licensed under the MIT License. See the `libphonenumber-js/LICENSE` file for more details.

ai_documentation_summary:
  {"purpose":"The PhoneNumberParser node parses phone numbers using the libphonenumber-js library to extract metadata and format them into various human-readable standards.","capabilities":["Extract country code","Extract area code","Extract national number","Format phone number in national format","Format phone number in international format","Format phone number in E.164 format","Format phone number in RFC3966 format","Validate phone number length","Validate phone number format","Determine if number is non-geographic"],"authentication":"None","commonUseCases":["Standardizing phone number formats across workflow outputs","Validating user-provided phone numbers before processing","Extracting country codes for routing or display purposes","Normalizing phone numbers for database storage"],"limitations":["Input must be a string containing only digits"],"relatedNodes":["httprequest","json","string","if"]}


node_type: n8n-nodes-waha.waha
package_name: n8n-nodes-waha
display_name: waha
description: n8n to connect with WAHA (Whatsapp HTTP API)
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: morning-bird
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-waha.git
npm_package_name: n8n-nodes-waha
npm_version: 2024.11.5
community_fetched_at: 2026-06-26T10:18:48.830Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # @devlikeapro/n8n-nodes-waha
  <p align="center">
    <img src="https://github.com/devlikeapro/n8n-nodes-waha/blob/master/WAHA+n8n.png?raw=true" width='300'/>
  </p>

  This is a n8n community node. 
  It lets you use [WAHA - WhatsApp HTTP API](https://waha.devlike.pro) in your n8n workflows.

  - [**WAHA**](https://waha.devlike.pro) - **WhatsApp API** that you can run in a click!
  - [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  👉 Generated from
  [**WAHA OpenAPI**](https://waha.devlike.pro/swagger/)
  using [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  ![NPM Version](https://img.shields.io/npm/v/%40devlikeapro%2Fn8n-nodes-waha)

  <!-- toc -->

  - [Install WAHA n8n node](#install-waha-n8n-node)
  - [Links](#links)
  - [Workflow Examples](#workflow-examples)

  <!-- tocstop -->

  ![WAHA Workflow Example Screenshot](./waha-n8n-workflow-example.png)

  ## Install WAHA n8n node
  Go to your **n8n** => **Settings** => **Community nodes** and install:

  ```
  @devlikeapro/n8n-nodes-waha
  ```

  If you need help with that, check the
  [**Install community nodes**](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)

  ## Links
  - [**WAHA + n8n: No Code Low Code WhatsApp Automation Step-By-Step Guide**](https://waha/devlike.pro/blog/waha-n8n/)
  - [**🧩 WAHA + n8n Integration**](https://waha.devlike.pro/docs/integrations/n8n/)
  - [**WAHA n8n Workflow Templates**](http://waha-n8n-templates.devlike.pro/)

  ## Workflow Examples
  👉 Check out [**n8n-workflows**](http://waha-n8n-templates.devlike.pro/) folder for examples.

ai_documentation_summary:
  {"purpose":"Connects n8n workflows with WAHA (WhatsApp HTTP API) to automate WhatsApp messaging and interactions.","capabilities":["Send WhatsApp messages","Receive WhatsApp messages","Manage WhatsApp contacts","Create and manage WhatsApp groups","Automate WhatsApp business operations"],"authentication":"API key required (via WAHA credentials)","commonUseCases":["Automated customer support responses","Order status notifications","Appointment reminders","Marketing campaigns"],"limitations":["Requires WAHA account setup","Limited to WhatsApp Business API features supported by WAHA"],"relatedNodes":["n8n-nodes-waha.waha","n8n-nodes-openapi-node"]}


node_type: n8n-nodes-tembory.tembory
package_name: n8n-nodes-tembory
display_name: tembory
description: Tembory node for n8n AI Agents with operational memory, tool history and decision state
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: lucas.lima.elefai
author_github_url: git+https://github.com/temboryhq/n8n-nodes-tembory.git
npm_package_name: n8n-nodes-tembory
npm_version: 1.3.6
community_fetched_at: 2026-06-26T10:18:48.854Z
ai_summary_generated_at: 2026-05-22 10:26:01
npm_readme:
  # Tembory

  Node de memoria operacional da Tembory para agentes de IA no n8n.

  Versao atual: `1.3.6`.

  ## 1.3.6

  - Fortalece o default recomendado para agentes mini/SLM em workflows reais.
  - `Memoria Inteligente (Recomendado)` agora usa `productionBalanced` com contexto de 20000 caracteres, entrada do SLM em 12000 caracteres, resumo SLM em 3000 caracteres e active summary em 3500 caracteres.
  - Mantem 30 tools recentes no contexto operacional e TTL de tool history em 86400 segundos.
  - Alinha os defaults visiveis em `Ajustes Tecnicos` para nao mostrar configuracao mais fraca quando o usuario abre os grupos.
  - Esclarece que o cache tecnico SLM usa segundos; 300 segundos equivalem a 5 minutos.

  ## 1.3.5

  - Atualiza o `Tembory Agent Memory` para usuarios leigos: o padrao agora e `Modo da Memoria -> Memoria Inteligente (Recomendado)`.
  - Esse modo aplica `productionBalanced` sem exigir que a pessoa abra ajustes tecnicos: contexto estruturado, active summary, tool history/results, action ledger, decision state, operational state e mensagens recentes ficam ligados por padrao.
  - Renomeia campos visiveis para linguagem operacional: `Tamanho do Contexto`, `Mensagens Recentes`, `Mostrar Evidencias no Output` e `Mostrar Ajustes Tecnicos`.
  - Mantem os controles brutos escondidos em `Ajustes Tecnicos Tembory`, para debug e casos avancados, sem tornar isso obrigatorio para o usuario comum.

  ## 1.3.4

  - Torna a credencial `Tembory API` obrigatoria nos nodes `Tembory Memory` e `Tembory Agent Memory`.
  - Bloqueia `loadMemoryVariables`, `saveContext` e execucao direta quando nao houver API key configurada.
  - Remove o comportamento enganoso de fallback local silencioso sem credencial: fallback interno so pode existir depois que o node estiver autenticado.

  ## 1.3.3

  - Remove texto generico de trabalho como `continue according to the agent prompt...` quando a memoria nao inferiu uma acao concreta.
  - Para mensagens gerais, a memoria registra conversa e contexto, mas nao inventa `currentGoal`, `currentTask` ou `nextExpectedAction`.
  - Para turnos que podem exigir tool, o debug visual passa a mostrar uma orientacao objetiva: avaliar se precisa de tool e consultar `conversation_frame`, `tool_state`, `tool_history` e `action_ledger` antes de executar algo novo.

  ## 1.3.2

  - Remodela o output visual para debug simples no n8n com `sentToAgent`, `slm`, `memory`, `conversation`, `tools`, `io` e `save`.
  - Remove duplicacoes visuais de `saveContext`: `savedMessages`, `conversationTimeline`, `toolNames` e `toolEvents` deixam de aparecer como blocos paralelos no topo.
  - Expõe o status real da SLM no visual: fonte, geração no load atual, cache técnico, active summary carregado/atualizado, chars e preview.
  - Mantem o contexto enviado ao Agent como `tembory.agent_context.v2`; a mudança é no side channel visual e na instrução da SLM para resumir objetivo, próxima ação e evidências operacionais.

  ## 1.3.1

  - Republica o pacote como `latest` sem a marcacao deprecated aplicada por engano na `1.3.0`.
  - Mantem o mesmo contrato da `1.3.0`: node legado `Tembory` e node opt in `Tembory Agent Memory`.

  ## 1.3.0

  - Adiciona um segundo node no pacote: `Tembory Agent Memory`, com internal name `temboryAgentMemory`.
  - Mantem o node atual `Tembory` com internal name `temboryMemory`, sem migracao automatica de workflows existentes.
  - O novo node nasce como caminho opt in para a experiencia v2: menos campos visiveis, controles avancados recolhidos e base para `tembory.visual.v2`.
  - Reaproveita o runtime estavel de memoria, captura de tools e persistencia enquanto a timeline v2 e a `slmAnalysis` incremental sao implementadas em cortes posteriores.

  ## 1.2.2

  - No `Modo Simples Recomendado`, remove campos visuais redundantes do side channel: `toolEvents`, `toolNames` e `savedMessages`.
  - Mantem as mesmas informacoes em `toolLog`, `conversation`, `conversationTimeline`, `userInput`, `assistantOutput` e `toolCapture`.
  - O contexto interno do Agent e a persistencia das tools nao mudam; a alteracao e apenas na organizacao do JSON visual do n8n.

  ## 1.2.1

  - Remove duplicacao visual no output do `saveContext`: o resumo fica apenas em `memorySummary`, sem repetir os mesmos campos no topo do JSON.
  - Mantem `toolLog`, `toolEvents`, conversa, input/output e captura de tools dentro de `memorySummary` para debug humano organizado.

  ## 1.2.0

  - Remodela o contexto compacto do Agent para `tembory.agent_context.v2`, com contrato unico para conversa, fatos canonicos, evidencias de tools, politica de reuso, frescor, captura e budget.
  - Remove duplicacao estrutural de mensagens no prompt do Agent: a conversa passa por `conversationFrame` e nao e repetida em blocos equivalentes.
  - Preserva inputs, outputs, timestamps, fatos extraidos e resultados parseados de tools em `toolEvidence`, incluindo tools de busca vetorial quando o n8n entrega o payload.
  - Mantem `toolReuseGuard` generico para evitar repeticao indevida de side effects e reutilizar outputs anteriores como evidencia sem transformar memoria em ToolMessage.
  - Enriquece o resumo visual do n8n lendo o novo schema v2 sem vazar o `chatHistory` bruto no output do Agent.

  ## 1.1.44

  - Adiciona `toolReuseGuard` no contexto compacto do agente para reduzir repeticao indevida de tools entre turnos.
  - Registra chamadas bem sucedidas recentes com `input_hash` e classifica tools de leitura versus side effect de forma generica.
  - Instrui o agente a consultar `tool_ledger` antes de nova tool e a nao repetir side effects sem pedido explicito do usuario.
  - Remove duplicacoes do payload compacto para manter o contexto balanceado abaixo do limite de regressao.

  ## 1.1.43

  - Adiciona `toolCapture` no payload visual de `saveContext`, deixando explicito quando nenhuma execucao de tool chegou para a memoria.
  - Suporta tambem `intermediate_steps` em snake case, alem de `intermediateSteps`.
  - Quando `toolCallsCaptured` for `0`, o payload informa que e necessario o AI Agent entregar `intermediateSteps`, `__temboryToolCalls` ou tool messages para a memoria conseguir salvar a tool.

  ## 1.1.42

  - Explicita `conversation` e `conversationTimeline` tambem no payload visual de `saveContext`.
  - Aumenta a timeline visual de conversa do `loadMemoryVariables` para ate 16 mensagens recentes.
  - Parseia resultados de tools de busca vetorial em `outputParsed.documents`, preservando `pageContent`, `metadata`, `id`, `source` e `score` quando existirem.

  ## 1.1.41

  - Padroniza a saida visual do node com `visualSchema`, `memorySummary` e `toolLog` tanto no `loadMemoryVariables` quanto no `saveContext`.
  - Mantem `toolEvents` para compatibilidade, mas agora tambem mostra `inputParsed`, `outputParsed`, timestamps e `facts` com IDs operacionais quando existirem.
  - Aumenta a visibilidade do historico recente de tools no resumo visual para evitar esconder eventos importantes no debug humano.

  ## 1.1.40

  - Extrai fatos operacionais path aware de inputs e outputs de tools, preservando IDs como `serviceId`, `providerId`, `locationId`, `customerId`, `reservationId` e `bookingId`.
  - Injeta esses fatos em `operationalState`, `actionLedger`, `toolLedger` e `action_directive`.
  - Corrige o risco de o Agent usar `serviceId` antigo de memoria vetorial quando o `check_availabilities` mais recente ja retornou o ID correto para o `Booking`.

  ## 1.1.39

  - Ajusta a semantica de repeticao de tools: `do_not_repeat_tools` fica restrito a turnos de recall, status operacional ou pedido explicito para nao chamar tools.
  - Em turnos normais, o Agent recebe `repeat_tool_policy` e `avoid_repeating_tools_unless_needed`, deixando claro que tools anteriores sao evidencia reutilizavel, nao ferramentas proibidas.
  - Compacta `decisionState.tool_decision_state` para evitar duplicar outputs longos de tools no contexto balanceado.

  ## 1.1.38

  - Torna o resumo visual independente do tipo da mensagem LangChain, procurando o contexto Tembory em qualquer mensagem carregada.
  - Enriquece eventos `chatHistory.addMessage(s)` com `savedMessages`, input/output resumidos e tool events quando esse for o caminho usado pelo Agent.
  - Mantem a separacao entre contexto interno do Agent e output compacto para humano.

  ## 1.1.37

  - Normaliza `chatHistory` legado para `chat_history` no modo simples, evitando que historico bruto vaze no output final do Agent.
  - Mantem `chatHistory` apenas como alias nao enumeravel no contrato interno de memoria.
  - O caminho de execucao normal do node passa a retornar resumo visual compacto, nao o array bruto de mensagens.

  ## 1.1.36

  - Mantem o comportamento funcional da `1.1.35`.
  - Corrige o resumo visual do n8n para mensagens LangChain serializadas, incluindo objetos com `kwargs.content`.
  - Evita o fallback pobre `{ action, messages }` quando o contexto foi carregado corretamente mas o output humano nao conseguiu parsear o `SystemMessage`.

  ## 1.1.35

  - Corrige a chave default de memoria do runtime para `chat_history`, que e o placeholder usado pelo AI Agent do n8n.
  - Mantem compatibilidade com `chatHistory`, devolvendo aliases para workflows antigos.
  - Faz o contexto operacional do Tembory entrar no prompt principal do Agent em modo simples.

  ## 1.1.34

  - Adiciona `statusAnswerMaterial` no contexto do Agent para perguntas sobre historico operacional.
  - Quando o usuario pergunta quais tools foram chamadas, o Agent recebe um bloco direto com tool count, inputs, outputs, timestamps e action ledger.
  - Instrui explicitamente o Agent a responder desse material e nao dizer que nao tem acesso quando o historico existe.

  ## 1.1.33

  - Corrige o runtime do `Modo Simples Recomendado` para usar defaults seguros nos parametros que ficam escondidos na interface.
  - Evita erro `Could not get parameter` em nodes novos quando `memoryKey`, `retrievalMode` e `payloadFormat` nao estao gravados no workflow.
  - Mantem o modo avancado com todas as opcoes disponiveis.

  ## 1.1.32

  - Adiciona `Modo de Configuracao` com `Simples Recomendado` e `Avancado`.
  - O modo simples usa os defaults validados nos testes reais: contexto estruturado, resumo por contexto ativo, tool history/results/action ledger, backend persistente e diagnostico pesado desligado.
  - O modo avancado continua exibindo todas as opcoes existentes, sem remover nenhum controle.
  - Atualiza a expressao padrao de `Consulta` para ler tambem `$json.body.chatInput`.

  ## 1.1.31

  - Adiciona `agentContextBudget` no payload visual do n8n com caracteres e tokens aproximados injetados no Agent.
  - Mostra `loadedSections` fora do bloco de diagnostico para facilitar debug humano.
  - Melhora o parsing de outputs comuns de tools do n8n, incluindo envelopes `json`, `data`, `body` e `result`.
  - Mantem `outputParsed`, `capturedAt`, `toolTimestamp`, `toolStatus`, conversa e save visual por execucao.

  ## Contrato operacional atual

  O Tembory e memoria operacional generica. Ele nao decide regra de negocio, nao escolhe a tool pelo dominio do cliente e nao substitui o prompt do agente.

  O que ele deve guardar e devolver:

  - Mensagens recentes por `threadId` ou `sessionId`.
  - Tool calls genericas, independente do nome da tool.
  - Input enviado para a tool.
  - Output bruto retornado pela tool.
  - Output util em `outputParsed`, quando o formato permitir parsing seguro.
  - Status da tool.
  - `capturedAt`, que e quando o Tembory capturou o evento.
  - `toolTimestamp`, que e o timestamp retornado pela propria tool quando existir.
  - `actionLedger`, `workingMemory`, `decisionState`, `operationalState` e resumo ativo.

  O que ele nao deve fazer:

  - Inventar politica de tool.
  - Considerar uma acao lateral concluida sem tool bem sucedida no turno correto.
  - Transformar observacao ou inferencia em regra obrigatoria.
  - Esconder falha de save no payload visual.

  ## Visao geral

  O Tembory entrega contexto operacional para o AI Agent sem depender apenas do historico textual da conversa. Ele combina transcript curto, profile facts, tool history, estado operacional, action ledger, working memory, decision state, active summary persistente, compressao de memoria e diagnosticos.

  A SLM conectada ao node organiza o estado ativo em bullets curtos e persistentes. Ela e contexto auxiliar read-only: nao decide politica de negocio, nao escolhe tools e nao substitui o prompt do agente.

  ## Principais recursos

  - Porta `ai_memory` para conectar direto no AI Agent do n8n.
  - Entrada `LLM` obrigatoria para gerar e atualizar o resumo ativo.
  - Campo `Projeto` para isolar memorias por cliente/workspace.
  - Profile facts: nome, empresa, email, telefone, preferencias e contexto comercial.
  - Tool history: tools chamadas, inputs, outputs, status e ordem.
  - Working memory: objetivo atual, intencao recente, entidades ativas, ultimo erro e proxima acao esperada.
  - Decision state: decisoes ativas, ferramentas que nao devem ser repetidas e politica de conflitos.
  - Operational state: resumo deterministico do estado atual das tools e do proximo passo seguro.
  - Action ledger: linha cronologica das acoes executadas pelo agente.
  - Memory compression: resumos de turno, sessao, entidades e workflow.
  - Active summary persistente gerado pela SLM.

  ## Custo de IA

  O node usa o modelo de linguagem conectado no proprio n8n. Para esse papel, um modelo pequeno e barato costuma ser suficiente, porque a tarefa e resumir, organizar e compactar contexto operacional.

  ## Credencial

  Use a credencial `Tembory API` com a API key gerada no SaaS. A API key identifica a conta e o projeto comercial no Tembory.

  ## Presets operacionais

  O campo `Preset Operacional` preenche defaults de producao:

  - `Producao Rapida (Thread + SLM)`: padrao recomendado para a maioria dos agentes.
  - `Producao Balanceada`: mais contexto, ainda compacto.
  - `Producao Economica`: reduz resultados e secoes para economizar tokens.
  - `Producao Nano/SLM`: otimizado para modelo pequeno.
  - `Diagnostico Completo`: teste e auditoria.
  - `Auditoria`: payload detalhado para depuracao.

  Recomendacao pratica:

  - Use `Modo Simples Recomendado` em producao normal.
  - Use `Producao Balanceada` quando o agente precisar comparar mais historico.
  - Use `Auditoria` ou `Diagnostico Completo` apenas enquanto estiver depurando.

  No modo simples, o node aplica automaticamente:

  - `Modo de Recuperacao`: operacional estruturado.
  - `Formato do Contexto`: producao estruturado.
  - `Preset Operacional`: producao balanceada.
  - `Fonte do Resumo do SLM`: automatica.
  - `Maximo de Caracteres do Contexto`: 20000.
  - `Maximo de Caracteres de Entrada do SLM`: 12000.
  - `Maximo de Caracteres do Resumo do SLM`: 3000.
  - `Maximo de Caracteres do Active Summary`: 3500.
  - Tool history, resultados de tools, action ledger, working memory, decision state, operational state e memory compression ligados.
  - Persistencia no backend e active summary ligados.
  - Diagnostico pesado, scores, semantic fallback e tool facts desligados.
  - Cache tecnico do SLM em 300 segundos.
  - TTL de tool history em 86400 segundos.
  - Ultimas tools mantidas no contexto compacto: 30.

  ## Uso com `$fromAI()`

  Em tools conectadas ao AI Agent, o n8n permite que o modelo preencha parametros dinamicamente com `$fromAI()`. Isso e responsabilidade do Agent e da tool do n8n. O Tembory apenas fornece contexto operacional para o Agent, incluindo conversa, tools anteriores, inputs, outputs e timestamps.

  Referencia oficial do n8n: https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/

  ## Payload visual do n8n

  No output do node durante uma execucao, o Tembory mostra um resumo compacto para humano:

  - `memorySummary.intent`: classificacao operacional leve do turno.
  - `memorySummary.conversation`: contagem e ultimas mensagens.
  - `memorySummary.conversationTimeline`: timeline curta com timestamps.
  - `memorySummary.toolEvents`: ultimas tool calls com input, output, `outputParsed`, status e timestamps.
  - `memorySummary.lastSave`: ultimo save persistido.
  - `memorySummary.loadedSections`: quais blocos foram injetados no contexto do Agent.
  - `memorySummary.agentContextBudget`: tamanho aproximado do contexto enviado ao Agent.

  Exemplo de budget:

  ```json
  {
    "agentContextBudget": {
      "messages": 1,
      "chars": 12000,
      "approxTokens": 3000,
      "largestSections": [
        { "section": "tools", "chars": 1600, "approxTokens": 400 }
      ]
    }
  }
  ```

  ## Blocos de contexto

  Quando habilitados, o agente recebe:

  - `Conversation frame`
  - `Profile facts`
  - `Working memory`
  - `Decision state`
  - `Operational state`
  - `Action ledger`
  - `Memory compression`
  - `Recent messages`
  - `Recent highlights`
  - `Tool history`
  - `Active summary`
  - `SLM summary`
  - `Diagnostics`

  ## Validacao local

  ```bash
  npm test
  npm run simulate:n8n-agent
  ```

ai_documentation_summary:
  {"purpose":"This node provides operational memory for AI agents in n8n, managing context through transcript, profile facts, tool history, decision state, and persistent summaries.","capabilities":["Store and retrieve operational memory including working memory and decision state","Maintain tool history with inputs, outputs, and status","Generate and update active summaries using a Small Language Model (SLM)","Manage project isolation via workspace/project settings","Provide memory compression across sessions and workflows","Support multiple operational presets for different production needs","Track action ledgers and diagnostic information"],"authentication":"API key required (Tembory API key from SaaS)","commonUseCases":["Enhancing AI agent context beyond simple conversation history","Maintaining persistent operational state across agent interactions","Tracking tool usage and decision history for audit purposes","Isolating memory by client or workspace project"],"limitations":["Requires an LLM input to be mandatory for generating active summaries","SLM is mandatory as part of the production contract","Some legacy visualization options for vectors, graphs, and configuration have been removed"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.sllm"]}


node_type: @growsalesai/n8n-nodes-datacrazy.datacrazy
package_name: @growsalesai/n8n-nodes-datacrazy
display_name: datacrazy
description: n8n community node para o Datacrazy CRM - Growsales IA
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: growsalesai
author_github_url: git+https://github.com/growsalesai/n8n-nodes-datacrazy.git
npm_package_name: @growsalesai/n8n-nodes-datacrazy
npm_version: 3.8.22
community_fetched_at: 2026-06-26T10:18:48.866Z
ai_summary_generated_at: 2026-05-22 10:26:01
npm_readme:
  # @growsalesai/n8n-nodes-datacrazy

  [![npm version](https://badge.fury.io/js/%40growsalesai%2Fn8n-nodes-datacrazy.svg)](https://badge.fury.io/js/%40growsalesai%2Fn8n-nodes-datacrazy)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  Nó da comunidade N8N para integração completa com a plataforma **Datacrazy CRM**, oferecendo acesso a todas as funcionalidades de CRM, automações de messaging, gestão de pipelines, leads, negócios e muito mais.

  ## 📋 Índice

  - [Instalação](#instalação)
  - [Configuração](#configuração)
  - [Nós Disponíveis](#nós-disponíveis)
  - [Módulos do CRM](#módulos-do-crm)
  - [Templates WhatsApp](#-templates-whatsapp)
  - [Nó de Automações](#nó-de-automações)
    - [Webhook & Mensagens](#webhook--mensagens)
    - [Lead & Pipeline](#lead--pipeline)
    - [Utilitários Locais](#utilitários-locais)
  - [Desenvolvimento](#desenvolvimento)
  - [Reportar Issues](#reportar-issues)
  - [Contribuição](#contribuição)
  - [Desenvolvedor](#desenvolvedor)
  - [Licença](#licença)

  ## 🚀 Instalação

  ### Via n8n Community Nodes

  1. Acesse as configurações do n8n
  2. Vá para **Community Nodes**
  3. Instale o pacote: `@growsalesai/n8n-nodes-datacrazy`

  ### Via npm

  ```bash
  npm install @growsalesai/n8n-nodes-datacrazy
  ```

  ## ⚙️ Configuração

  1. Crie uma nova credencial do tipo **Datacrazy API**
  2. Configure os seguintes campos:

  | Campo | Padrão | Descrição |
  |---|---|---|
  | **URL CRM** | `https://crm.g1.datacrazy.io` | URL base para rotas `/api/crm/` |
  | **URL API v1** | `https://api.g1.datacrazy.io` | URL base para rotas `/api/v1/` — deixe em branco para usar a URL CRM |
  | **URL Messaging** | `https://messaging.g1.datacrazy.io` | URL base para rotas `/api/messaging/` (templates, mensagens agendadas) |
  | **Fuso Horário** | `America/Sao_Paulo` | Fuso horário usado nas operações de agendamento |
  | **Token da API** | — | Token JWT de acesso (sem o prefixo `Bearer`) |

  ## 🧩 Nós Disponíveis

  Este pacote instala **três nós** no seu n8n:

  | Nó | Descrição |
  |---|---|
  | **Datacrazy CRM** | Acesso completo a todos os recursos da API: leads, negócios, conversas, pipelines e mais |
  | **Datacrazy Automações** | Utilitários de automação: parser de webhook, switch, roteamento IA e muito mais |
  | **Datacrazy Trigger** | Recebe eventos (webhooks) em tempo real do Datacrazy |

  ## 📦 Módulos do CRM

  ### 🎯 Leads
  > `resources/leads/`

  Gerenciamento completo de leads no Datacrazy CRM.

  **Operações e rotas:**

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Leads | `GET` | `/api/v1/leads` |
  | Buscar por ID | `GET` | `/api/v1/leads/:id` |
  | Criar Lead | `POST` | `/api/v1/leads` |
  | Criar com Campos Personalizados | `POST` | `/api/v1/leads/additional-fields` |
  | Atualizar Lead | `PATCH` | `/api/v1/leads/:id` |
  | Excluir Lead | `DELETE` | `/api/v1/leads/:id` |

  **Recursos:** paginação (skip/take), busca por texto, suporte a tags, cidade, estado, endereço, empresa e CPF/CNPJ.

  ---

  ### 📁 Sub-recursos do Lead
  > `resources/leads/`

  Recursos associados diretamente a um lead:

  #### Negócios do Lead

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Negócios | `GET` | `/api/v1/leads/:leadId/businesses` |

  #### Anexos do Lead

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Anexos | `GET` | `/api/v1/leads/:leadId/attachments` |
  | Criar Anexo | `POST` | `/api/v1/leads/:leadId/attachments` |
  | Excluir Anexo | `DELETE` | `/api/v1/leads/:leadId/attachments/:attachmentId` |

  #### Anotações do Lead

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Anotações | `GET` | `/api/v1/leads/:leadId/notes` |
  | Criar Anotação | `POST` | `/api/v1/leads/:leadId/notes` |
  | Atualizar Anotação | `PUT` | `/api/v1/leads/:leadId/notes/:noteId` |
  | Excluir Anotação | `DELETE` | `/api/v1/leads/:leadId/notes/:noteId` |

  #### Histórico do Lead

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Histórico | `GET` | `/api/v1/leads/:leadId/history` |

  #### Atividades do Lead

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Atividades | `GET` | `/api/v1/leads/:leadId/activities` |

  ---

  ### 💼 Negócios
  > `resources/businesses/`

  Gestão completa do pipeline de vendas.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Negócios | `GET` | `/api/v1/businesses` |
  | Buscar por ID | `GET` | `/api/v1/businesses/:id` |
  | Criar Negócio | `POST` | `/api/v1/businesses` |
  | Atualizar Negócio | `PATCH` | `/api/v1/businesses/:id` |
  | Excluir Negócio | `DELETE` | `/api/v1/businesses/:id` |
  | Adicionar Produto | `PATCH` | `/api/v1/businesses/:id` |

  ---

  ### 🎬 Ações de Negócio
  > `resources/businessActions/`

  Operações de transição de estado para negócios.

  | Operação | Método | Rota |
  |---|---|---|
  | Mover | `POST` | `/api/v1/businesses/actions/move` |
  | Ganhar | `POST` | `/api/v1/businesses/actions/win` |
  | Perder | `POST` | `/api/v1/businesses/actions/lose` |
  | Restaurar | `POST` | `/api/v1/businesses/actions/restore` |

  ---

  ### ❌ Motivos de Perda
  > `resources/businessLossReasons/`

  Gerenciamento dos motivos de perda de negócios.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar | `GET` | `/api/v1/business-loss-reasons` |
  | Buscar por ID | `GET` | `/api/v1/business-loss-reasons/:id` |
  | Criar | `POST` | `/api/v1/business-loss-reasons` |
  | Atualizar | `PUT` | `/api/v1/business-loss-reasons/:id` |
  | Excluir | `DELETE` | `/api/v1/business-loss-reasons/:id` |

  ---

  ### 🏷️ Tags
  > `resources/tags/`

  Sistema de etiquetas para categorização de leads.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todas | `GET` | `/api/v1/tags` |
  | Buscar por ID | `GET` | `/api/v1/tags/:id` |
  | Criar | `POST` | `/api/v1/tags` |
  | Atualizar | `PUT` | `/api/v1/tags/:id` |
  | Excluir | `DELETE` | `/api/v1/tags/:id` |
  | Adicionar ao Lead | `PATCH` | `/api/v1/leads/:leadId` |
  | Remover do Lead | `PATCH` | `/api/v1/leads/:leadId` |

  ---

  ### 📋 Listas
  > `resources/lists/`

  Gerenciamento de listas de segmentação.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todas | `GET` | `/api/v1/lists` |
  | Buscar por ID | `GET` | `/api/v1/lists/:id` |
  | Criar | `POST` | `/api/v1/lists` |
  | Atualizar | `PUT` | `/api/v1/lists/:id` |
  | Excluir | `DELETE` | `/api/v1/lists/:id` |

  ---

  ### 📦 Produtos
  > `resources/products/`

  Catálogo de produtos do CRM.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todos | `GET` | `/api/v1/products` |
  | Buscar por ID | `GET` | `/api/v1/products/:id` |
  | Criar | `POST` | `/api/v1/products` |
  | Atualizar | `PUT` | `/api/v1/products/:id` |
  | Excluir | `DELETE` | `/api/v1/products/:id` |

  ---

  ### 📅 Atividades
  > `resources/activities/`

  Gerenciamento de atividades e tarefas do CRM.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todas | `GET` | `/api/v1/activities` |
  | Buscar por ID | `GET` | `/api/v1/activities/:id` |
  | Criar | `POST` | `/api/v1/activities` |
  | Atualizar | `PATCH` | `/api/v1/activities/:id` |
  | Excluir | `DELETE` | `/api/v1/activities/:id` |

  ---

  ### 💬 Conversas
  > `resources/conversations/`

  Sistema de messaging e atendimento ao cliente.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Conversas | `GET` | `/api/v1/conversations` |
  | Buscar Mensagens | `GET` | `/api/v1/conversations/:id/messages` |
  | Enviar Mensagem | `POST` | `/api/v1/conversations/:id/messages` |
  | Cancelar Mensagem Agendada | `DELETE` | `/api/messaging/conversations/:id/scheduled-message/:msgId` |
  | Finalizar Conversa | `POST` | `/api/v1/conversations/:id/finish` |

  **Tipos de mensagem suportados:** Texto · Imagem · Vídeo · Áudio · Arquivo / Documento

  **Opções avançadas:** mensagem interna (nota para equipe) · responder mensagem (reply por ID) · agendamento de envio (data/hora futura)

  **Cancelar agendamento:** selecione a conversa e informe o ID da mensagem agendada (retornado no output do Enviar Mensagem).

  ---

  ### 🖥️ Instâncias
  > `resources/instances/`

  Gerenciamento de instâncias de mensageria.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todas | `GET` | `/api/v1/instances` |
  | Buscar por ID | `GET` | `/api/v1/instances/:id` |

  ---

  ### 👥 Atendentes
  > `resources/attendants/`

  Gerenciamento de atendentes do CRM e do multiatendimento.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todos | `GET` | `/api/v1/attendants/crm` ou `/api/v1/attendants/multi` |
  | Buscar por ID | `GET` | `/api/v1/attendants/crm/:id` ou `/api/v1/attendants/multi/:id` |

  ---

  ### 🔧 Pipelines
  > `resources/pipelines/`

  Gerenciamento de pipelines de vendas e seus estágios.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todas | `GET` | `/api/v1/pipelines` |
  | Buscar por ID | `GET` | `/api/v1/pipelines/:id` |
  | Listar Estágios | `GET` | `/api/v1/pipelines/:id/stages` |

  ---

  ### ➕ Campos Personalizados
  > `resources/additionalFields/`

  Sistema flexível de campos customizados para leads.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todos | `GET` | `/api/crm/additionalFields` |
  | Criar | `POST` | `/api/crm/additionalFields` |
  | Atualizar | `PUT` | `/api/crm/additionalFields/:id` |
  | Excluir | `DELETE` | `/api/crm/additionalFields/:id` |
  | Definir Valor no Lead | `POST` | `/api/crm/additional-fields/lead/:leadId/:fieldId` |

  ---

  ### 📊 Métricas de Negócios
  > `resources/businessMetrics/`

  Relatórios e métricas do CRM.

  | Operação | Método | Rota |
  |---|---|---|
  | Funil | `GET` | `/api/crm/businesses/metrics/funnel` |
  | Resumo de Atendentes | `GET` | `/api/crm/businesses/metrics/summary/attendants` |
  | Resumo Geral | `GET` | `/api/crm/businesses/metrics/summary` |
  | Listar Negócios | `GET` | `/api/v1/businesses` |
  | Resumo Diário | `GET` | `/api/crm/businesses/metrics/summary/daily` |
  | Resumo de Produtos | `GET` | `/api/crm/businesses/metrics/summary/products` |

  ---

  ### ⚡ Flows
  > `resources/flows/`

  Gerenciamento de automações e fluxos do Datacrazy.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Todos | `GET` | `/api/crm/flows` |
  | Buscar por ID | `GET` | `/api/crm/flows/:id` |
  | Listar Grupos | `GET` | `/api/crm/flows/groups` |
  | Executar Automação para Lead | `POST` | `/api/crm/flows/triggers/leads/execute-lead` |
  | Atualizar | `PATCH` | `/api/crm/flows/:id` |
  | Excluir | `DELETE` | `/api/crm/flows/:id` |
  | Ativar | `PATCH` | `/api/crm/flows/:id` |
  | Desativar | `PATCH` | `/api/crm/flows/:id` |
  | Métricas de Versão | `GET` | `/api/crm/flows/:id/versions/:versionId/metrics` |

  **Executar Automação para Lead:** selecione a automação (dropdown com filtro por tipo manual) e o lead. Dispara a automação manualmente para o lead escolhido sem precisar aguardar um trigger automático.

  ---

  ### 📲 Templates WhatsApp
  > `resources/whatsappTemplates/`

  Gerenciamento e envio de templates aprovados do WhatsApp Cloud API.

  | Operação | Método | Rota |
  |---|---|---|
  | Listar Templates | `GET` | `/api/messaging/whatsapp-cloud/templates/:channelId` |
  | Enviar Template | `POST` | `/api/messaging/whatsapp-cloud/templates/send` |

  **Listar Templates:** retorna todos os templates aprovados do canal com `id`, `name`, `language`, `status`, `category`, `templateId` e variáveis/botões.

  **Enviar Template:**
  - Selecione o **Canal** (instância WhatsApp) → o dropdown de templates é carregado automaticamente
  - O dropdown exibe cada template com a contagem de variáveis: ex. `id002 (pt_BR) — 2 variáveis — APPROVED`
  - Preencha as **Variáveis do Template** em ordem (1º item = `{{1}}`, 2º = `{{2}}`, etc.)
  - Botões e `parameter_format` são incluídos automaticamente a partir dos metadados do template

  ---

  ## 🤖 Nó de Automações

  O nó **Datacrazy Automações** oferece **17 utilitários inteligentes** para construir fluxos com webhooks e lógica de CRM sem precisar escrever código.

  ### Webhook & Mensagens

  #### ⚡ Analisar Webhook Datacrazy
  > `automations/webhookParser/`

  Normaliza o payload recebido de um webhook do Datacrazy e extrai os campos principais: provedor, tipo de mensagem, texto, mídia, lead, token, conversa e muito mais.

  - Detecção automática de provedor (WhatsApp Cloud API, Instagram API, UAZAP)
  - Extração de `leadId`, `token_datacrazy`, `conversationId`, `contactPhone`
  - Suporte a detecção de anúncios (referral/CTWA)

  ---

  #### ⚡ Switch Tipo de Mensagem
  > `automations/messageTypeSwitch/`

  Roteia o item para a saída correta com base no tipo da mensagem recebida.

  **Saídas:** Texto · Imagem · Vídeo · Áudio · Arquivo · Outro

  ---

  #### ⚡ É Mensagem Referenciada?
  > `automations/replyChecker/`

  Verifica se a mensagem recebida é uma resposta (reply) a outra mensagem.

  **Saídas:** Sim · Não

  ---

  #### ⚡ Detectar Provedor do Webhook
  > `automations/providerDetector/`

  Identifica o provedor de origem do webhook.

  **Provedores suportados:** WhatsApp Cloud API · Instagram API · UAZAP · Desconhecido

  ---

  #### ⚡ Extrair Info do Webhook
  > `automations/webhookExtractor/`

  Estrutura todos os campos do payload em objetos aninhados e organizados: `contact`, `message`, `attachment`, `referral`, `instance`, `conversation`.

  ---

  #### ⚡ Contexto de Mensagem Referenciada
  > `automations/messageContext/`

  Verifica se a mensagem é um reply e, se for, busca o conteúdo da mensagem original na conversa do Datacrazy.

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/conversations/:id/messages` | `GET` | Busca mensagens da conversa para encontrar o contexto |

  ---

  #### ⚡ Buscar Mensagens (Avançado)
  > `automations/advancedMessageFetcher/`

  Busca o histórico de mensagens de uma conversa aplicando filtros avançados nativamente. Muito superior à busca padrão, ideal para fluxos de IA (ChatGPT, Agentes AI) e economia de processamento.

  - **Filtros Globais:** Direção (Enviadas/Recebidas), Tipo (Texto, Imagem, Link, etc), Palavras-chave, Limite (últimas N mensagens).
  - **Módulo WhatsApp API:** Filtre mensagens encaminhadas, status (Lida/Recebida/Falhou), e tags ou estágios do contato remetente.
  - **Módulo Instagram API:** Filtre por conta conectada, posts/stories compartilhados (`EXTERNAL_LINK`) e tags do contato.
  - **Módulo UAZAPI:** Filtre por mensagens internas (equipe), editadas, primeira do ticket e assinatura do atendente.
  - **Modo IA:** Formata nativamente todas as mensagens extraídas em texto corrido (incluindo tratamento dinâmico de `vcard` e arquivos de mídia), estruturando o contexto da conversa e devolvendo em `aiContext`.

  ---

  #### ⚡ Roteador por Palavra-chave
  > `automations/keywordRouter/`

  Verifica o texto da mensagem contra até 4 grupos de palavras-chave configuráveis e roteia para a saída correspondente.

  **Saídas:** Grupo 1 · Grupo 2 · Grupo 3 · Grupo 4 · Nenhuma

  - Palavras-chave separadas por vírgula em cada grupo
  - Opção de diferenciação de maiúsculas/minúsculas
  - Retorna `matchedGroup` e `matchedGroupIndex` no output
  - Operação puramente local — sem chamadas de API

  ---

  ### Lead & Pipeline

  #### ⚡ Verificar se Lead Existe
  > `automations/leadExistsChecker/`

  Busca um lead e roteia para **Sim** (encontrado) ou **Não**.

  **Métodos de busca:** WhatsApp · E-mail · Nome · CPF/CNPJ · Instagram · Campo Personalizado

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/leads` | `GET` | Busca com text search e varredura paginada |
  | `/api/v1/conversations` | `GET` | Fallback para busca via conversas (WhatsApp) |
  | `/api/crm/additional-fields/lead/:leadId/:fieldId` | `GET` | Verifica valor de campo personalizado |

  ---

  #### ⚡ Upsert de Lead
  > `automations/leadUpsert/`

  Busca o lead pelo identificador informado; se não encontrar, cria automaticamente.

  **Saídas:** Criado · Já Existia

  **Métodos de busca/criação:** WhatsApp · E-mail · CPF/CNPJ

  - O valor de busca é automaticamente usado como `phone`, `email` ou `document` na criação
  - Campo JSON opcional para incluir campos extras na criação
  - Retorna os dados completos do lead em ambas as saídas

  ---

  #### ⚡ Verificar Duplicatas de Lead
  > `automations/leadDuplicateChecker/`

  Varre toda a base de leads e encontra todos que possuem o mesmo identificador.

  **Saídas:** Com Duplicatas (≥2 leads) · Único (0 ou 1 lead)

  **Métodos de busca:** WhatsApp · E-mail · CPF/CNPJ

  - Retorna `duplicateCount` e a lista completa de leads duplicados
  - Varredura paginada de até 2.000 leads

  ---

  #### ⚡ Mover Lead na Pipeline
  > `automations/leadMover/`

  Busca os negócios do lead, filtra pela pipeline desejada e move para a etapa destino.

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/leads/:leadId/businesses` | `GET` | Lista negócios do lead |
  | `/api/v1/businesses/:id` | `PATCH` | Move o negócio para o novo estágio |
  | `/api/v1/leads/:leadId/notes` | `POST` | Cria anotação opcional ao mover |

  **Recursos:** seleção do negócio mais recente ou todos, dropdowns dinâmicos de pipelines e etapas.

  ---

  #### ⚡ Criar Negócio Condicional
  > `automations/businessCreator/`

  Verifica se o lead já possui um negócio aberto na pipeline; se não tiver, cria automaticamente.

  **Saídas:** Criado · Já Existe

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/leads/:leadId/businesses` | `GET` | Verifica negócios existentes |
  | `/api/v1/businesses` | `POST` | Cria o negócio se não houver um aberto |

  - Dropdowns dinâmicos para pipeline e etapa inicial
  - Retorna dados completos do negócio em ambas as saídas

  ---

  #### ⚡ If Condicional do Lead
  > `automations/leadIfCondition/`

  Verifica uma condição no lead e roteia para **Sim** ou **Não**.

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/leads/:leadId` | `GET` | Lê dados do lead |
  | `/api/crm/additionalFields` | `GET` | Busca definições de campos (cache por execução) |
  | `/api/crm/additional-fields/lead/:leadId/:fieldId` | `GET` | Lê valor do campo no lead |
  | `/api/v1/leads/:leadId/businesses` | `GET` | Verifica pipeline/estágio |

  **Condições suportadas:** possui/não possui tag · campo personalizado igual/contém valor · está em pipeline · está em estágio · está em pipeline e estágio.

  ---

  #### ⚡ Tracker do Lead
  > `automations/leadTracker/`

  Define múltiplos campos personalizados em um lead de uma só vez, com controle de erro por campo.

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/crm/additional-fields/lead/:leadId/:fieldId` | `POST` | Define valor de cada campo |

  ---

  #### ⚡ Detector de Primeira Mensagem
  > `automations/firstMessageDetector/`

  Verifica se é o primeiro contato do lead com base no tempo de criação.

  **Saídas:** Sim (primeira vez) · Não (recorrente)

  | Rota usada | Método | Descrição |
  |---|---|---|
  | `/api/v1/leads/:leadId` | `GET` | Lê `createdAt` do lead |

  - Configura um limiar em minutos (padrão: 5 min)
  - Retorna `isFirstMessage` e `leadAgeMinutes` no output

  ---

  ### Integrações Externas & IA

  #### ⚡ Transcritor de Áudio (IA)
  > `automations/audioTranscriber/`

  Transcreve áudios enviados por leads (como mensagens de voz do WhatsApp) usando as melhores inteligências artificiais do mercado.

  **Provedores Suportados:**
  - **OpenAI Whisper:** via arquivo binário (rápido, usando credencial nativa do n8n).
  - **AssemblyAI:** via URL pública do áudio, com *polling adaptativo progressivo* (extremamente rápido para áudios curtos e seguro contra timeouts para áudios de até 15 minutos).

  - Opção de postar a transcrição automaticamente como uma **Mensagem Interna** no chat do Datacrazy.
  - Seleção de modelo inteligente e detecção de idioma.

  ---

  #### ⚡ Meta Conversions API (Facebook Pixel)
  > `automations/metaConversionsApi/`

  Dispara eventos de conversão offline (ex: *Purchase*, *Lead*) diretamente para o Pixel do Facebook/Meta de forma 100% server-side, driblando bloqueadores de anúncios (AdBlock) e restrições do iOS 14.

  - Identificação rica do lead enviando e-mail, telefone (hashed automaticamente no nó), nome, cidade, estado, IP e User Agent.
  - Suporte a dados de conversão como valor (`value`) e moeda (`currency`).
  - Ideal para alimentar as campanhas de tráfego pago baseadas em leads ganhos no CRM.

  ---

  #### ⚡ Sincronização Google Calendar
  > `automations/activityGoogleSync/`

  Sincroniza automaticamente as atividades/tarefas (ex: reuniões, visitas, calls) criadas no CRM diretamente com o Google Agenda (Google Calendar).

  - Usa a credencial OAuth2 nativa do Google Calendar no n8n.
  - Permite mapeamento detalhado: Título, Descrição, Data/Hora de Início e Fim.
  - Adiciona e-mails de convidados automaticamente ao evento.

  ---

  #### ⚡ Roteador de Etapa por IA (AI Stage Router)
  > `automations/leadAiStageRouter/`

  Facilita o roteamento de leads no funil usando Inteligência Artificial. Após um assistente LLM analisar a intenção do cliente (ex: "Quente", "Frio", "Agendou Reunião"), este nó direciona o fluxo para caminhos diferentes com base na análise.

  ---

  ### Utilitários Locais

  > Estas automações operam **sem chamadas de API** — sem necessidade de credencial.

  #### ⚡ Verificar Horário de Atendimento
  > `automations/businessHoursChecker/`

  Verifica se o momento atual está dentro do horário de atendimento configurado.

  **Saídas:** Dentro do Horário · Fora do Horário

  - Configuração independente para dias úteis, sábado e domingo
  - Suporte a qualquer fuso horário (ex: `America/Sao_Paulo`, `America/New_York`)
  - Retorna `withinBusinessHours`, `dayOfWeek` e `currentTimeMinutes`

  ---

  #### ⚡ Formatar Número de WhatsApp
  > `automations/phoneFormatter/`

  Normaliza números de telefone para o formato padrão (somente dígitos, com DDI).

  - Adiciona DDI automaticamente se ausente (padrão: `55` para Brasil)
  - Opção para remover o 9º dígito de celulares brasileiros
  - Retorna `phoneFormatted`, `phoneOriginal` e `phoneDDI`

  ---

  ## 🛠️ Desenvolvimento

  ### Pré-requisitos

  - Node.js >= 18.10
  - npm >= 9

  ### Configuração do Ambiente

  ```bash
  # Clone o repositório
  git clone https://github.com/growsalesai/n8n-nodes-datacrazy.git

  # Instale as dependências
  npm install

  # Build para produção
  npm run build

  # Execute em modo de desenvolvimento (watch)
  npm run dev

  # Lint
  npm run lint
  ```

  ### Estrutura do Projeto

  ```
  nodes/Datacrazy/
  ├── Datacrazy.node.ts              # Nó principal CRM
  ├── DatacrazyUtils.node.ts         # Nó de automações utilitárias
  ├── DatacrazyMsgSwitch.node.ts     # Switch de tipo de mensagem (standalone)
  ├── DatacrazyReplyCheck.node.ts    # Verificador de reply (standalone)
  │
  ├── resources/                     # Recursos da API CRM (cada um com description + handler)
  │   ├── leads/
  │   │   ├── lead.description.ts
  │   │   ├── lead.handler.ts
  │   │   ├── leadSubResource.description.ts
  │   │   └── leadSubResources.handler.ts
  │   ├── businesses/
  │   │   ├── business.description.ts
  │   │   └── business.handler.ts
  │   ├── businessActions/
  │   │   ├── businessAction.description.ts
  │   │   └── businessAction.handler.ts
  │   ├── businessLossReasons/
  │   │   ├── businessLossReason.description.ts
  │   │   └── businessLossReason.handler.ts
  │   ├── businessMetrics/
  │   │   ├── businessMetrics.description.ts
  │   │   └── businessMetrics.handler.ts
  │   ├── tags/
  │   │   ├── tag.description.ts
  │   │   └── tag.handler.ts
  │   ├── lists/
  │   │   ├── list.description.ts
  │   │   └── list.handler.ts
  │   ├── products/
  │   │   ├── product.description.ts
  │   │   └── product.handler.ts
  │   ├── activities/
  │   │   ├── activity.description.ts
  │   │   └── activity.handler.ts
  │   ├── conversations/
  │   │   ├── conversation.description.ts
  │   │   └── conversation.handler.ts
  │   ├── instances/
  │   │   ├── instance.description.ts
  │   │   └── instance.handler.ts
  │   ├── attendants/
  │   │   ├── attendant.description.ts
  │   │   └── attendant.handler.ts
  │   ├── pipelines/
  │   │   ├── pipeline.description.ts
  │   │   └── pipeline.handler.ts
  │   ├── additionalFields/
  │   │   ├── additionalField.description.ts
  │   │   └── additionalField.handler.ts
  │   ├── flows/
  │   │   ├── flow.description.ts
  │   │   └── flow.handler.ts
  │   └── whatsappTemplates/
  │       ├── whatsappTemplate.description.ts
  │       └── whatsappTemplate.handler.ts
  │
  ├── automations/                   # Nós utilitários de automação (cada um com description + handler)
  │   ├── webhookParser/
  │   ├── webhookExtractor/
  │   ├── providerDetector/
  │   ├── messageContext/
  │   ├── messageTypeSwitch/
  │   ├── replyChecker/
  │   ├── keywordRouter/
  │   ├── leadMover/
  │   ├── leadIfCondition/
  │   ├── leadTracker/
  │   ├── leadExistsChecker/
  │   ├── leadUpsert/
  │   ├── leadDuplicateChecker/
  │   ├── businessCreator/
  │   ├── firstMessageDetector/
  │   ├── businessHoursChecker/
  │   └── phoneFormatter/
  │
  ├── methods/
  │   └── loadOptions.ts             # Carregamento dinâmico de dropdowns
  └── utils/
      └── request.ts                 # Camada de requisições HTTP autenticadas
  credentials/
  └── DatacrazyApi.credentials.ts    # Definição da credencial
  ```

  ## 🐛 Reportar Issues

  Encontrou um bug ou tem uma sugestão? Abra uma issue no repositório!

  ### Como Reportar

  1. **Verifique Issues Existentes**: Antes de criar uma nova, veja se o problema já foi reportado em [Issues](https://github.com/growsalesai/n8n-nodes-datacrazy/issues).
  2. **Crie uma Nova Issue**: Se não encontrar, [crie uma nova](https://github.com/growsalesai/n8n-nodes-datacrazy/issues/new).

  ### Informações Necessárias

  **Para Bugs:**
  - **Descrição**: Descreva o problema claramente
  - **Passos para Reproduzir**: Liste os passos exatos
  - **Comportamento Esperado**: O que deveria acontecer
  - **Comportamento Atual**: O que está acontecendo
  - **Ambiente**:
    - Versão do n8n
    - Versão do `@growsalesai/n8n-nodes-datacrazy`
    - Sistema operacional
  - **Logs de Erro**: Inclua mensagens de erro completas

  **Para Solicitações de Recursos:**
  - **Descrição**: Descreva o recurso desejado
  - **Justificativa**: Por que seria útil
  - **Casos de Uso**: Exemplos práticos de uso

  ### Template de Issue

  ```markdown
  ## Tipo
  - [ ] Bug
  - [ ] Solicitação de Recurso
  - [ ] Melhoria
  - [ ] Documentação

  ## Descrição
  [Descreva o problema ou recurso]

  ## Ambiente (para bugs)
  - Versão do n8n:
  - Versão do @growsalesai/n8n-nodes-datacrazy:
  - Sistema Operacional:
  - Node.js:

  ## Passos para Reproduzir (para bugs)
  1.
  2.
  3.

  ## Comportamento Esperado
  [O que deveria acontecer]

  ## Comportamento Atual
  [O que está acontecendo]

  ## Logs de Erro
  [Cole os logs aqui]

  ## Informações Adicionais
  ```

  ## 🤝 Contribuição

  Contribuições são bem-vindas!

  1. Faça um fork do repositório
  2. Crie uma branch para sua feature: `git checkout -b feature/minha-feature`
  3. Faça commit das suas alterações: `git commit -m 'Adiciona minha feature'`
  4. Envie para a branch: `git push origin feature/minha-feature`
  5. Abra um Pull Request

  ## 👨‍💻 Desenvolvedor

  Desenvolvido por **Vitor Maciel**

  - Instagram: [@vitormacielsr](https://www.instagram.com/vitormacielsr/)

  ## 📄 Licença

  Este projeto está licenciado sob a [MIT License](https://opensource.org/licenses/MIT).

ai_documentation_summary:
  {"purpose":"Integrates the Datacrazy CRM platform into n8n, enabling full access to CRM features, messaging automation, pipeline management, and lead handling.","capabilities":["Create, read, update, and delete leads with custom fields","Manage sales pipelines and business opportunities","Handle business actions (move, win, lose, restore)","Manage attachments, notes, and activity history for leads","Configure WhatsApp templates and scheduled messages","Set up webhooks for real-time event triggering","Implement AI routing and switch logic for automation","Manage tags and segmentation lists"],"authentication":"API Key (JWT Token required)","commonUseCases":["Automated lead qualification and nurturing","Sales pipeline management and tracking","WhatsApp marketing campaigns and messaging","Real-time CRM data synchronization","Automated follow-up workflows based on lead status"],"limitations":["Requires manual installation via n8n Community Nodes or npm","Configuration requires setting up multiple API URLs (CRM, API v1, Messaging)","Timezone operations default to America/Sao_Paulo unless configured"],"relatedNodes":["n8n Webhook Node","n8n HTTP Request Node","n8n Switch Node","n8n Code Node (for custom logic)"]}


node_type: n8n-nodes-simpro.simpro
package_name: n8n-nodes-simpro
display_name: simpro
description: SimPRO OpenAPI-based community node for n8n (OAuth2, tags/operations from spec).
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: mitofham
author_github_url: git+https://github.com/timothyhami/n8n-nodes-simpro.git
npm_package_name: n8n-nodes-simpro
npm_version: 0.4.16
community_fetched_at: 2026-06-26T10:18:48.872Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # n8n-nodes-simpro

  This is an n8n community node that provides integration with the [SimPRO](https://www.simprogroup.com/) API.

  [n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.

  ## Features

  This package provides two nodes:

  ### 1. **SimPRO Node** - User-Friendly API Access
  A completely redesigned, user-friendly interface for accessing the SimPRO API:

  - ✅ **Individual parameter fields** instead of manual JSON entry
  - ✅ **Organized parameter collections** for path params and query params
  - ✅ **Common parameters built-in**: Search, Pagination, Display options
  - ✅ **Clean operation dropdown** with method badges `[GET]`, `[POST]`, etc.
  - ✅ **Helpful error messages** that tell you exactly where to set parameters
  - ✅ **Supports all SimPRO API endpoints** via OpenAPI spec

  ### 2. **SimPRO AI Tool** - AI Agent Integration
  Designed for use with AI agents (OpenAI, Anthropic, etc.):

  - 🤖 Exposes SimPRO operations as tool calls
  - 🎯 Smart operation matching (list vs get specific items)
  - 📊 Detailed logging for debugging
  - 🔍 Automatic resource and operation detection

  ## Installation

  ### Community Nodes (Recommended)

  For production use, install via n8n's Community Nodes:

  1. Go to **Settings** → **Community Nodes**
  2. Click **Install**
  3. Enter: `n8n-nodes-simpro`
  4. Click **Install**

  ### Manual Installation

  For development or custom deployment:

  ```bash
  npm install n8n-nodes-simpro
  ```

  ## Prerequisites

  - n8n installed (version 1.0.0 or higher)
  - SimPRO account with API access
  - SimPRO API Bearer token

  ## Configuration

  ### Setting up Credentials

  1. In n8n, go to **Credentials** → **New**
  2. Search for "SimPRO API"
  3. Enter your SimPRO API Bearer token
  4. Test and save

  ### Getting Your API Token

  1. Log in to your SimPRO instance
  2. Go to **System** → **Setup** → **API** (or **Security**)
  3. Generate or copy your API token
  4. Use the token (with or without "Bearer " prefix)

  ## Usage

  ### SimPRO Node - Basic Examples

  #### Get a Customer
  1. **Resource**: Customers
  2. **Operation**: `[GET] Retrieve details for a specific customer`
  3. **Company ID**: `0`
  4. **Additional Parameters** → **Customer ID**: `123`

  #### Search Jobs
  1. **Resource**: Jobs
  2. **Operation**: `[GET] List all jobs`
  3. **Company ID**: `0`
  4. **Query Parameters**:
     - **Search**: `urgent`
     - **Page Size**: `10`

  #### Create a Customer
  1. **Resource**: Customers
  2. **Operation**: `[POST] Create a new customer`
  3. **Company ID**: `0`
  4. **Request Body**:
  ```json
  {
    "GivenName": "John",
    "FamilyName": "Smith",
    "Phone": "555-1234"
  }
  ```

  ### SimPRO AI Tool - With AI Agents

  Connect to an AI Agent node (OpenAI, Anthropic, etc.):

  **User**: "Get details for job number 12345"

  **AI Tool Call**:
  ```json
  {
    "resource": "Jobs",
    "operation": "get",
    "pathParams": {
      "jobID": "12345"
    }
  }
  ```

  See [FILTERING_AND_SPECIFIC_ITEMS.md](FILTERING_AND_SPECIFIC_ITEMS.md) for detailed AI tool usage.

  ## Recent Improvements (v0.4.10+)

  The SimPRO node has been completely redesigned for better user experience:

  ### Before vs After

  **Before** (Manual JSON):
  ```
  Path Params: {"companyID": "0", "customerID": "123"}
  Query: {"search": "test", "pageSize": 10}
  ```

  **After** (Structured Fields):
  ```
  Company ID: 0
  Additional Parameters → Customer ID: 123
  Query Parameters → Search: test
  Query Parameters → Page Size: 10
  ```

  ### Key Improvements

  - 🎯 **Individual fields** for common parameters (Customer ID, Job ID, etc.)
  - 📋 **Parameter collections** organize related options
  - 🏷️ **Better operation names**: `[GET] List all jobs` instead of long paths
  - 💡 **Helpful errors** that show exactly where to set missing parameters
  - 🔧 **JSON fallback** still available for advanced use cases

  See [SIMPRO_NODE_IMPROVEMENTS.md](SIMPRO_NODE_IMPROVEMENTS.md) for complete details.

  ## Documentation

  - [Improvements Guide](SIMPRO_NODE_IMPROVEMENTS.md) - What's new and how to use it
  - [AI Tool Guide](FILTERING_AND_SPECIFIC_ITEMS.md) - Using with AI agents
  - [Query Parameters](QUERY_PARAMETERS_ISSUE.md) - Query parameter usage
  - [Troubleshooting](TROUBLESHOOTING.md) - Common issues and solutions
  - [Testing Guide](TESTING_GUIDE.md) - How to test the nodes

  ## Development

  ### Build

  ```bash
  npm run build
  ```

  ### Lint

  ```bash
  npm run lint
  npm run lintfix  # Auto-fix issues
  ```

  ### Local Testing

  ```bash
  npm run build
  n8n start
  ```

  The nodes will be available in your local n8n instance.

  ## Resources

  - [n8n Documentation](https://docs.n8n.io/)
  - [SimPRO API Documentation](https://docs.simpro.com/api)
  - [Community Forum](https://community.n8n.io/)

  ## Version

  Current version: **0.4.10**

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues, questions, or contributions:
  - 🐛 Report bugs via GitHub Issues
  - 💬 Ask questions in n8n Community Forum
  - 🤝 Contributions welcome via Pull Requests

ai_documentation_summary:
  {"purpose":"Integrates n8n with the SimPRO API, providing a user-friendly node for direct API operations and a separate AI tool node for agent-driven automation. It supports access to SimPRO endpoints through an OpenAPI-based spec with structured parameters and built-in common fields.","capabilities":["Access all SimPRO API endpoints from an operation dropdown","Use structured fields for path parameters, query parameters, and request bodies","Built-in common parameters such as search, pagination, and display options","Support for GET, POST, and other HTTP-method-based operations","Create, retrieve, and list SimPRO resources such as customers and jobs","Expose SimPRO operations as AI tool calls for OpenAI, Anthropic, and similar agents","Automatic resource and operation detection for AI tool usage","Detailed logging for debugging AI-driven calls"],"authentication":"SimPRO API Bearer token required","commonUseCases":["Retrieving customer or job details from SimPRO","Searching and listing jobs with filters and pagination","Creating new SimPRO records such as customers","Connecting SimPRO actions to AI agents for natural-language workflow automation"],"limitations":["Requires a SimPRO account with API access","Requires n8n version 1.0.0 or higher","Some advanced use cases may still require JSON fallback input"],"relatedNodes":["n8n AI Agent","OpenAI","Anthropic"]}


node_type: n8n-nodes-baserow-advanced.baserowadvanced
package_name: n8n-nodes-baserow-advanced
display_name: baserowadvanced
description: Copy of the baserow node with added batch functionality using the batch options of the API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: bramknuever
author_github_url: git+https://github.com/bramkn/n8n-nodes-baserow-advanced.git
npm_package_name: n8n-nodes-baserow-advanced
npm_version: 0.1.0
community_fetched_at: 2026-06-26T10:18:48.873Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

  To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  ## Prerequisites

  You need the following installed on your development machine:

  * [git](https://git-scm.com/downloads)
  * Node.js and npm. Minimum version Node 16. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
  * Install n8n with:
  	```
  	npm install n8n -g
  	```
  * Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).


  ## Using this starter

  These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

  1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
  2. Clone your new repo:
      ```
      git clone https://github.com/<your organization>/<your-repo-name>.git
      ```
  3. Run `npm i` to install dependencies.
  4. Open the project in your editor.
  5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
  6. Update the `package.json` to match your details.
  7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
  8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
  9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
  10. Update the LICENSE file to use your details.
  11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

  Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"This node is a copy of the standard Baserow n8n node with added batch functionality using Baserow API batch options. It is intended to help users perform Baserow operations more efficiently in bulk.","capabilities":["Baserow integration","Batch operations using API batch options","Custom node for n8n workflows"],"authentication":"Not specified in the README","commonUseCases":["Creating or updating multiple Baserow records in bulk","Automating workflows that interact with Baserow tables","Reducing API calls by using batch requests"],"limitations":["README does not document the specific operations, parameters, or authentication setup","README appears to be a starter template rather than node-specific documentation"],"relatedNodes":["Baserow"]}


node_type: n8n-nodes-uazapi.uazapi
package_name: n8n-nodes-uazapi
display_name: uazapi
description: n8n community node for UazAPI - Complete WhatsApp automation with 90+ endpoints
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: aifocus
author_github_url: git+https://github.com/aifocusdev/n8n-nodes-uazapi.git
npm_package_name: n8n-nodes-uazapi
npm_version: 1.0.4
community_fetched_at: 2026-06-26T10:18:48.881Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-uazapi

  [![NPM Version](https://img.shields.io/npm/v/n8n-nodes-uazapi)](https://www.npmjs.com/package/n8n-nodes-uazapi)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![Downloads](https://img.shields.io/npm/dm/n8n-nodes-uazapi)](https://www.npmjs.com/package/n8n-nodes-uazapi)
  [![GitHub Stars](https://img.shields.io/github/stars/aifocusdev/n8n-nodes-uazapi?style=social)](https://github.com/aifocusdev/n8n-nodes-uazapi)

  > **Community node for n8n** - Integração completa com UazAPI para automação WhatsApp

  <div align="center">

  **💝 Projeto Open Source Gratuito** | [⭐ Dê uma Estrela](#) | [💰 Apoie via PIX](#-apoie-o-projeto)

  **Desenvolvido com ❤️ por [AI Focus Company](https://github.com/aifocusdev)**

  </div>

  Este é um node da comunidade n8n que fornece integração completa com a [UazAPI](https://uazapi.com), permitindo automação avançada do WhatsApp Business com mais de 90 endpoints disponíveis.

  ## 📋 Índice

  - [Características](#-características)
  - [Instalação](#-instalação)
  - [Credenciais](#-credenciais)
  - [Operações Disponíveis](#-operações-disponíveis)
  - [Exemplos de Uso](#-exemplos-de-uso)
  - [Desenvolvimento](#-desenvolvimento)
  - [Contribuindo](#-contribuindo)
  - [Licença](#-licença)

  ## ✨ Características

  ### 🖥️ **Gerenciamento de Instâncias**
  - Criar nova instância WhatsApp
  - Conectar ao WhatsApp (QR Code ou código de pareamento)
  - Verificar status da conexão
  - Desconectar e deletar instâncias
  - Listar todas as instâncias
  - Atualizar nome da instância

  ### 💬 **Mensagens**
  - **Texto:** Envio simples com preview de links
  - **Mídia:** Imagens, vídeos, áudios, documentos, PTT, stickers
  - **Contatos:** Envio de vCard
  - **Localização:** Coordenadas geográficas
  - **Menus Interativos:** Botões, listas, enquetes
  - **Stories/Status:** Publicação de status
  - **Ações:** Reagir, editar, deletar, marcar como lida

  ### 🚀 **Campanhas em Massa**
  - Disparo simples com mesma mensagem
  - Disparo avançado com personalização
  - Controle de campanhas (pausar, continuar, parar)
  - Delays aleatórios anti-ban
  - Agendamento de envios
  - Relatórios detalhados

  ### 👥 **Grupos WhatsApp**
  - Criar e gerenciar grupos
  - Adicionar/remover participantes
  - Promover/rebaixar administradores
  - Atualizar nome e descrição
  - Gerenciar links de convite
  - Listar todos os grupos

  ### 💬 **Gestão de Chats**
  - Arquivar/desarquivar conversas
  - Fixar chats importantes
  - Silenciar notificações
  - Deletar conversas
  - Marcar como lido
  - Buscar chats com filtros
  - Verificar números no WhatsApp

  ### 📞 **Contatos**
  - Listar contatos da agenda
  - Adicionar novos contatos
  - Remover contatos
  - Obter detalhes completos

  ### 🏷️ **Etiquetas/Labels**
  - Listar todas as etiquetas
  - Gerenciar etiquetas de chats
  - Editar etiquetas existentes

  ### 🤖 **Chatbot com IA**
  - Configurar chatbot inteligente
  - Criar agentes de IA personalizados
  - Suporte a múltiplos provedores:
    - **OpenAI** (GPT-4, GPT-4o-mini)
    - **Anthropic** (Claude 3.5 Sonnet)
    - **Google** (Gemini Pro)
    - **DeepSeek**
  - Gerenciar base de conhecimento
  - Criar funções para APIs externas

  ## 📦 Instalação

  ### Via n8n Community Nodes (Recomendado)

  1. Acesse o n8n
  2. Vá em **Settings** → **Community Nodes**
  3. Clique em **Install**
  4. Digite: `n8n-nodes-uazapi`
  5. Clique em **Install**

  ### Via NPM (Manual)

  ```bash
  npm install n8n-nodes-uazapi
  ```

  ### Via Docker

  Adicione ao seu `Dockerfile`:

  ```dockerfile
  FROM n8nio/n8n

  # Instalar node da comunidade
  RUN cd /usr/local/lib/node_modules/n8n && \
      npm install n8n-nodes-uazapi
  ```

  ## 🔐 Credenciais

  Para usar este node, você precisa configurar as credenciais da UazAPI:

  ### 1. Obter Credenciais

  1. Acesse [seudominio.uazapi.com](https://seudominio.uazapi.com)
  2. Crie uma conta ou faça login
  3. Obtenha seu **Admin Token**
  4. Ao criar uma instância, você receberá um **Instance Token**

  ### 2. Configurar no n8n

  1. No workflow, clique no node **UazAPI**
  2. Clique em **Create New Credentials**
  3. Preencha os campos:
     - **Base URL:** `https://seudominio.uazapi.com` (padrão)
     - **Admin Token:** Seu token de administrador (para criar/listar instâncias)
     - **Instance Token:** Token da instância específica (opcional - para operações de mensagens)

  > **💡 Dica:** Você pode usar variáveis do n8n para gerenciar múltiplas instâncias:
  > - Crie credenciais diferentes para cada instância
  > - Use expressões para selecionar dinamicamente a credencial

  ## 🎯 Operações Disponíveis

  ### Instance (Instâncias)
  - ✅ Create - Criar nova instância
  - ✅ Connect - Conectar ao WhatsApp
  - ✅ Get Status - Verificar status
  - ✅ Disconnect - Desconectar
  - ✅ Delete - Deletar instância
  - ✅ List All - Listar todas
  - ✅ Update Name - Renomear instância

  ### Message (Mensagens)
  - ✅ Send Text - Texto simples
  - ✅ Send Media - Imagem/vídeo/áudio/documento
  - ✅ Send Contact - Cartão vCard
  - ✅ Send Location - Localização GPS
  - ✅ Send Menu - Botões/listas/enquetes
  - ✅ Send Status - Story/Status
  - ✅ React to Message - Enviar emoji
  - ✅ Edit Message - Editar texto
  - ✅ Delete Message - Apagar para todos
  - ✅ Download Media - Baixar arquivo
  - ✅ Mark as Read - Marcar como lida

  ### Campaign (Disparos em Massa)
  - ✅ Create Simple - Campanha básica
  - ✅ Create Advanced - Com personalização
  - ✅ Control Campaign - Pausar/continuar/parar
  - ✅ List Campaigns - Listar todas
  - ✅ List Messages - Mensagens da campanha
  - ✅ Clear Sent - Limpar antigas

  ### Group (Grupos)
  - ✅ Create - Criar grupo
  - ✅ Get Info - Informações do grupo
  - ✅ List All - Listar grupos
  - ✅ Update Participants - Gerenciar membros
  - ✅ Update Name - Alterar nome
  - ✅ Update Description - Alterar descrição
  - ✅ Leave Group - Sair do grupo
  - ✅ Get Invite Link - Link de convite

  ### Chat (Conversas)
  - ✅ Archive - Arquivar/desarquivar
  - ✅ Delete - Deletar chat
  - ✅ Mark as Read - Marcar como lido
  - ✅ Pin - Fixar/desafixar
  - ✅ Mute - Silenciar
  - ✅ Find - Buscar chats
  - ✅ Check Number - Verificar WhatsApp

  ### Contact (Contatos)
  - ✅ List All - Listar contatos
  - ✅ Add - Adicionar contato
  - ✅ Remove - Remover contato
  - ✅ Get Details - Obter detalhes

  ### Label (Etiquetas)
  - ✅ List All - Listar etiquetas
  - ✅ Manage Chat - Gerenciar por chat
  - ✅ Edit - Editar etiqueta

  ### Chatbot (IA)
  - ✅ Update Settings - Configurar chatbot
  - ✅ Create Agent - Criar agente IA
  - ✅ List Agents - Listar agentes
  - ✅ Create Knowledge - Base de conhecimento
  - ✅ List Knowledge - Listar conhecimentos

  ## 📖 Exemplos de Uso

  ### Exemplo 1: Enviar Mensagem de Texto

  ```javascript
  // Configuração do node
  Resource: Message
  Operation: Send Text
  Number: 5511999999999
  Text: Olá! Esta é uma mensagem enviada via n8n + UazAPI
  ```

  ### Exemplo 2: Criar Campanha de Disparo

  ```javascript
  // Configuração do node
  Resource: Campaign
  Operation: Create Simple
  Numbers: 5511999999999, 5511888888888, 5511777777777
  Message Type: text
  Message Text: Olá {{nome}}! Promoção especial para você!
  Delay Min: 10
  Delay Max: 30
  ```

  ### Exemplo 3: Criar Grupo e Adicionar Membros

  ```javascript
  // Node 1: Criar Grupo
  Resource: Group
  Operation: Create
  Group Name: Meu Grupo Automático
  Participants: 5511999999999, 5511888888888

  // Node 2: Enviar Mensagem de Boas-vindas
  Resource: Message
  Operation: Send Text
  Number: {{$node["Criar Grupo"].json["groupJid"]}}
  Text: Bem-vindos ao grupo!
  ```

  ### Exemplo 4: Chatbot com IA (GPT-4)

  ```javascript
  // Node 1: Configurar Chatbot
  Resource: Chatbot
  Operation: Update Settings
  OpenAI API Key: sk-...
  Chatbot Enabled: true

  // Node 2: Criar Agente
  Resource: Chatbot
  Operation: Create Agent
  Agent Name: Atendente Virtual
  AI Provider: openai
  Model: gpt-4o-mini
  System Prompt: Você é um assistente de atendimento amigável...
  ```

  ### Exemplo 5: Workflow Completo - Auto-Resposta

  ```
  Webhook Trigger (Recebe mensagem)
    ↓
  IF (mensagem contém "oi" ou "olá")
    ↓
  UazAPI - Send Text (Responde automaticamente)
    ↓
  UazAPI - Mark as Read (Marca como lida)
  ```

  ### Exemplo 6: Disparos com CSV

  ```
  Read Binary File (CSV com contatos)
    ↓
  Split In Batches (Lotes de 50)
    ↓
  Loop Over Items (Para cada contato)
    ↓
  UazAPI - Send Text (Personalizado)
    ↓
  Wait (Delay aleatório 10-30s)
  ```

  ## 🛠️ Desenvolvimento

  ### Requisitos

  - Node.js 18+
  - npm ou yarn
  - n8n instalado localmente

  ### Setup do Projeto

  ```bash
  # Clonar repositório
  git clone https://github.com/seu-usuario/n8n-nodes-uazapi.git
  cd n8n-nodes-uazapi

  # Instalar dependências
  npm install

  # Build
  npm run build

  # Linkar localmente para testes
  npm link
  cd ~/.n8n
  npm link n8n-nodes-uazapi

  # Iniciar n8n
  n8n start
  ```

  ### Scripts Disponíveis

  ```bash
  npm run build      # Compilar TypeScript
  npm run dev        # Watch mode
  npm run lint       # Verificar código
  npm run lintfix    # Corrigir problemas
  npm run format     # Formatar código
  npm test           # Executar testes
  ```

  ### Estrutura do Projeto

  ```
  n8n-nodes-uazapi/
  ├── credentials/
  │   └── UazApiApi.credentials.ts
  ├── nodes/
  │   └── UazApi/
  │       ├── UazApi.node.ts
  │       └── uazapi.svg
  ├── package.json
  ├── tsconfig.json
  ├── gulpfile.js
  └── README.md
  ```

  ## 🤝 Contribuindo

  Contribuições são bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (`git checkout -b feature/MinhaFeature`)
  3. Commit suas mudanças (`git commit -m 'Adiciona MinhaFeature'`)
  4. Push para a branch (`git push origin feature/MinhaFeature`)
  5. Abra um Pull Request

  ### Diretrizes

  - Siga o estilo de código do projeto (ESLint + Prettier)
  - Adicione testes para novas funcionalidades
  - Atualize a documentação conforme necessário
  - Mantenha commits atômicos e descritivos

  ## 🐛 Reportar Bugs

  Encontrou um bug? Por favor, abra uma [issue](https://github.com/seu-usuario/n8n-nodes-uazapi/issues) com:

  - Descrição detalhada do problema
  - Passos para reproduzir
  - Versão do n8n e do node
  - Screenshots (se aplicável)

  ## 📝 Changelog

  ### v1.0.0 (2025-01-XX)

  **Adicionado:**
  - ✨ Implementação inicial com 90+ endpoints
  - 🔐 Sistema de credenciais com admin token e instance token
  - 📱 Operações de instância (criar, conectar, status, deletar)
  - 💬 Envio de mensagens (texto, mídia, contato, localização)
  - 🚀 Sistema de campanhas em massa
  - 👥 Gerenciamento completo de grupos
  - 💬 Gestão de chats e conversas
  - 📞 Operações de contatos
  - 🏷️ Sistema de etiquetas
  - 🤖 Chatbot com IA (OpenAI, Claude, Gemini, DeepSeek)
  - 📚 Base de conhecimento para IA
  - 🎨 Interface visual intuitiva
  - 📖 Documentação completa

  ## 🔗 Links Úteis

  - [Documentação UazAPI](https://docs.uazapi.com)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
  - [GitHub Repository](https://github.com/seu-usuario/n8n-nodes-uazapi)
  - [NPM Package](https://www.npmjs.com/package/n8n-nodes-uazapi)

  ## 💬 Suporte e Contato

  ### 📧 Contato
  - **Empresa:** AI Focus Company
  - **Desenvolvedor:** Paulo Henrique
  - **Email:** aifocusdev@gmail.com
  - **GitHub:** [@aifocusdev](https://github.com/aifocusdev)

  ### 🐛 Reportar Problemas
  - **Issues:** [GitHub Issues](https://github.com/aifocusdev/n8n-nodes-uazapi/issues)
  - **Discussões:** [GitHub Discussions](https://github.com/aifocusdev/n8n-nodes-uazapi/discussions)

  ### 💡 Sugestões e Melhorias
  Abra uma issue ou discussão no GitHub. Todas as contribuições são bem-vindas!

  ---

  ## 💰 Apoie o Projeto

  Se este projeto foi útil para você ou sua empresa, considere apoiar o desenvolvimento!

  ### ☕ Contribua via PIX

  Sua contribuição ajuda a manter este projeto gratuito e open source!

  ```
  PIX (Celular): (99) 99229-1983
  Favorecido: Paulo Henrique
  Empresa: AI Focus Company
  ```

  **Outras formas de apoiar:**
  - ⭐ Dê uma estrela no GitHub
  - 🐛 Reporte bugs e sugira melhorias
  - 📝 Contribua com código
  - 📢 Compartilhe o projeto com outros desenvolvedores
  - 💬 Ajude outros usuários nas discussões

  Toda contribuição, por menor que seja, faz diferença! 🙏

  ---

  ## 📜 Licença

  Este projeto está licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

  ## 👏 Agradecimentos

  - Equipe [n8n](https://n8n.io) pela plataforma incrível
  - Equipe [UazAPI](https://uazapi.com) pela API robusta
  - Comunidade open source
  - A todos que contribuíram com doações e feedback

  ---

  <div align="center">

  **Desenvolvido com ❤️ por [AI Focus Company](https://github.com/aifocusdev)**

  **Paulo Henrique** | aifocusdev@gmail.com

  Se este projeto foi útil, considere dar uma ⭐ no GitHub e contribuir via PIX!

  [![GitHub Stars](https://img.shields.io/github/stars/aifocusdev/n8n-nodes-uazapi?style=social)](https://github.com/aifocusdev/n8n-nodes-uazapi)
  [![NPM Version](https://img.shields.io/npm/v/n8n-nodes-uazapi)](https://www.npmjs.com/package/n8n-nodes-uazapi)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  </div>

ai_documentation_summary:
  {"purpose":"A community n8n node that provides complete integration with UazAPI for advanced WhatsApp Business automation, supporting over 90 endpoints for messaging, campaigns, groups, and AI chatbots.","capabilities":["Create, connect, disconnect, and manage WhatsApp instances","Send text, media, contacts, locations, and interactive menus","Post stories and react to messages","Execute mass campaigns with personalization and anti-ban delays","Create and manage WhatsApp groups and participants","Archive, pin, mute, and search chats","Manage contact lists and labels","Deploy AI chatbots with support for OpenAI, Anthropic, Google, and DeepSeek","Create custom AI agents and external API functions"],"authentication":"API Token (Admin Token and Instance Token required)","commonUseCases":["Automated customer support via WhatsApp","Marketing campaigns and broadcast messaging","AI-powered chatbots for business inquiries","Automated group management and announcements","Lead nurturing through scheduled messages"],"limitations":["Community node (not official n8n node)","Requires UazAPI account and tokens","May have rate limits based on UazAPI service"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-ai","n8n-nodes-http-request"]}


node_type: n8n-nodes-aws-sdk-v3.awssdkv3
package_name: n8n-nodes-aws-sdk-v3
display_name: awssdkv3
description: Wrapper for the AWS SDK for n8n, contains every service and operation in a very utilitarian way
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-06-26 10:18:48
author_name: tobinbc
author_github_url: git+https://github.com/tobinbc/n8n-nodes-aws-sdk-v3.git
npm_package_name: n8n-nodes-aws-sdk-v3
npm_version: 3.0.4
community_fetched_at: 2026-06-26T10:18:48.885Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # n8n-nodes-aws-sdk-v3

  This is an n8n community node. It lets you use any AWS service by wrapping the javascript AWS SDK V2 in your n8n workflows.

  This AWS SDK Node isn't affiliated or endorsed by AWS. It starts with the latest V2 version of the JS SDK and iterates through the various services already built in and exported. These are assembled into a gigantic list which the Node makes available in the UI. This isn't as beautiful as the dedicated Service Nodes, however it at least makes calling any service possible. It's called V3 because I intended to use the V3 SDK however that doesn't have the ability to iterate on every service, so it's using V2 and the various V3 modules can be imported over time after the V2 sunset date.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials) <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage) <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history) <!-- delete if not using this section -->

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Use the package at (here)[https://www.npmjs.com/package/n8n-nodes-aws-sdk-v3].

  ## Operations

  - Every AWS Service
    - The latest supported Api Version
      - Every Operation for each Service

  ## Credentials
  ![Add Credentials](images/credentials.png)

  Add your User Access Key and store securely; either a single User for all your actions using this Node, or a single User / credential per Node.

  ## Compatibility

  I'm not sure, only tested with `n8n v1.45.1`. Due to intricate linting rules, only version 3.0.0 upwards of this package works when pulled as a Community Node (you can use V1 and V2 as local/Custom Node packages).

  ## Usage

  ![Actions](images/actions.png)

  It always presents these top 15 actions, click on any of them to bring in the Node and select a Service

  ![Builder](images/builder.png)

  ![Running it](images/testRun.png)

  Select your region, service, version, then operation. The list is ginormous (the json config is 83k lines) so it might be a bit slow on your browser.

  ![No input](images/listBuckets.png)

  The HasInput switch should be off when the Operation doesn't have arguments or it will error (e.g. `s3.listBuckets`).

  ![Editing the input](images/editExpression.png)

  The Input JSON is untyped so you need to ensure it's correct as per the [AWS SDK V2 documentation](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html) arguments for the SDK.

  ![Error cases](images/handleError.png)

  The Node passes AWS errors back up as Code or Message, so you can act on those. It'll either throw or catch, up to you. If it's an auth error check your Role Permissions. It'll also conveniently log any errors to console too.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)


  ## Testing

  `npm test` will validate the config is still correct for changing over V2 => V3 services.

  ## Version history

  This is the first version, over time I might switch individual services to the AWS SDK V3 and add Input types for more popular services.

ai_documentation_summary:
  {"purpose":"Provides a generic wrapper for AWS services in n8n, allowing workflows to call virtually any AWS service and operation through the AWS JavaScript SDK. It is designed as a utilitarian catch-all alternative to dedicated per-service AWS nodes.","capabilities":["Access to every AWS service available in the SDK list","Supports the latest API version for each service","Exposes every operation for each supported service","Region, service, version, and operation selection in the node UI","Allows passing raw JSON input parameters for operations that require arguments","Returns AWS errors back to the workflow as code or message","Logs errors to console"],"authentication":"AWS Access Key credentials (User Access Key); you can use one credential for all actions or separate credentials per node","commonUseCases":["Calling AWS services not covered by a dedicated n8n node","Running AWS operations directly from n8n workflows using raw SDK parameters","Managing AWS resources across services such as S3 and others","Automating custom AWS API actions with flexible service/operation selection"],"limitations":["Uses AWS SDK V2 internally, not V3 yet","The service/operation list is very large and may be slow in the browser","Input JSON is untyped and must match AWS SDK V2 documentation exactly","HasInput must be disabled for operations that take no arguments or errors will occur","Only tested with n8n v1.45.1"],"relatedNodes":["AWS service-specific n8n nodes","n8n AWS credentials nodes","n8n community nodes"]}


node_type: n8n-nodes-datacrazy.datacrazy
package_name: n8n-nodes-datacrazy
display_name: datacrazy
description: N8N community node for DataCrazy
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-06 09:50:12
author_name: joaoarturdev
author_github_url: git+https://github.com/joaoartur/n8n-nodes-datacrazy.git
npm_package_name: n8n-nodes-datacrazy
npm_version: 1.0.59
community_fetched_at: 2026-07-06T09:50:12.541Z
ai_summary_generated_at: 2026-06-26 10:27:23
npm_readme:
  # DataCrazy Community Node N8N

  [![npm version](https://badge.fury.io/js/n8n-nodes-datacrazy.svg)](https://badge.fury.io/js/n8n-nodes-datacrazy)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  Este é um nó da comunidade N8N para integração completa com a plataforma DataCrazy, oferecendo acesso a todas as funcionalidades de CRM, messaging e gerenciamento de dados.

  ## 📋 Índice

  - [Instalação](#instalação)
  - [Configuração](#configuração)
  - [Módulos Disponíveis](#módulos-disponíveis)
  - [Exemplos de Uso](#exemplos-de-uso)
  - [Desenvolvimento](#desenvolvimento)
  - [Reportar Issues](#reportar-issues)
  - [Contribuição](#contribuição)
  - [Licença](#licença)

  ## 🚀 Instalação

  ### Via n8n Community Nodes

  1. Acesse as configurações do n8n
  2. Vá para "Community Nodes"
  3. Instale o pacote: `n8n-nodes-datacrazy`

  ### Via npm

  ```bash
  npm install n8n-nodes-datacrazy
  ```

  ## ⚙️ Configuração

  1. Crie uma nova credencial do tipo "DataCrazy Credentials"
  2. Configure os seguintes campos:
     - **API Key**: Sua chave de API do DataCrazy

  ## 📦 Módulos Disponíveis

  ### 🎯 Leads

  Gerenciamento completo de leads no sistema DataCrazy.

  **Operações Disponíveis:**
  - **Buscar Leads**: Lista todos os leads com filtros avançados
  - **Criar Lead**: Cria um novo lead no sistema
  - **Buscar por ID**: Recupera um lead específico
  - **Atualizar Lead**: Modifica dados de um lead existente
  - **Excluir Lead**: Remove um lead do sistema
  - **Buscar Atividades**: Lista atividades relacionadas ao lead
  - **Buscar Histórico**: Recupera histórico de alterações
  - **Buscar Negócios do Lead**: Lista negócios associados

  **Recursos:**
  - Filtros por pipeline, estágio, atendente
  - Paginação com skip/take
  - Busca por texto
  - Campos personalizáveis

  ### 💼 Negócios (Deals)

  Gestão completa do pipeline de vendas e negócios.

  **Operações Disponíveis:**
  - **Buscar Negócios**: Lista todos os negócios
  - **Criar Negócio**: Cria um novo negócio
  - **Buscar por ID**: Recupera um negócio específico
  - **Atualizar Negócio**: Modifica dados de um negócio
  - **Excluir Negócio**: Remove um negócio

  **Recursos:**
  - Associação com leads
  - Definição de valor e pipeline
  - Campos adicionais personalizáveis
  - Filtros avançados por estágio

  ### 🎬 Ações de Negócios (Deal Actions)

  Operações em lote para gerenciamento eficiente de negócios.

  **Operações Disponíveis:**
  - **Mover**: Move negócios para outro estágio/pipeline
  - **Ganhar**: Marca negócios como ganhos
  - **Perder**: Marca negócios como perdidos com motivo
  - **Restaurar**: Restaura negócios para estado ativo

  **Recursos:**
  - Processamento em lote
  - Seleção dinâmica de pipelines e estágios
  - Motivos de perda configuráveis
  - Justificativas opcionais

  ### 💬 Conversas

  Sistema completo de messaging e atendimento ao cliente.

  **Operações Disponíveis:**
  - **Buscar Conversas**: Lista todas as conversas
  - **Buscar Conversa por ID**: Recupera conversa específica com mensagens
  - **Enviar Mensagem**: Envia mensagem para uma conversa
  - **Finalizar Conversa**: Finaliza atendimento ao cliente

  **Recursos:**
  - Suporte a anexos e arquivos
  - Mensagens agendadas
  - Mensagens internas
  - Resposta a mensagens específicas
  - Base URL específica para messaging

  ### 📎 Anexos

  Gerenciamento de arquivos e documentos associados aos leads.

  **Operações Disponíveis:**
  - **Listar Anexos**: Lista todos os anexos de um lead
  - **Anexar Arquivo**: Adiciona arquivo ao lead
  - **Apagar Anexo**: Remove anexo do lead

  **Recursos:**
  - Upload de múltiplos tipos de arquivo
  - Associação automática com leads
  - Controle de permissões

  ### 📝 Anotações

  Sistema de comentários e observações para leads.

  **Operações Disponíveis:**
  - **Buscar Comentários**: Lista comentários de um lead
  - **Adicionar Comentário**: Cria novo comentário
  - **Atualizar Comentário**: Modifica comentário existente
  - **Excluir Comentário**: Remove comentário

  **Recursos:**
  - Comentários com timestamp
  - Associação com usuários
  - Histórico completo de alterações

  ### 🏷️ Tags

  Sistema de etiquetas para categorização e organização.

  **Operações Disponíveis:**
  - **Buscar Todas**: Lista todas as tags disponíveis
  - **Criar**: Cria nova tag
  - **Buscar por ID**: Recupera tag específica
  - **Atualizar**: Modifica tag existente
  - **Excluir**: Remove tag do sistema

  **Recursos:**
  - Cores personalizáveis
  - Categorização flexível
  - Associação com múltiplos recursos

  ### 🔧 Pipelines

  Gerenciamento de pipelines de vendas e seus estágios.

  **Operações Disponíveis:**
  - **Listar Todos**: Lista todos os pipelines
  - **Listar Estágios**: Lista estágios de um pipeline específico

  **Recursos:**
  - Estrutura hierárquica
  - Configuração de estágios
  - Filtros e paginação

  ### ➕ Campos Adicionais

  Sistema flexível de campos personalizados para leads e negócios.

  **Operações Disponíveis:**
  - **Buscar Campos Adicionais**: Lista campos disponíveis
  - **Definir Campo Adicional**: Define valor para campo personalizado

  **Recursos:**
  - Escopo por tipo (Lead/Deal)
  - Tipos de dados variados
  - Validação automática
  - Carregamento dinâmico de opções

  ## 🛠️ Desenvolvimento

  ### Pré-requisitos

  - Node.js >= 18.10
  - pnpm >= 9.1

  ### Configuração do Ambiente

  ```bash
  # Clone o repositório
  git clone https://github.com/joaoartur/n8n-nodes-datacrazy.git

  # Instale as dependências
  pnpm install

  # Execute em modo de desenvolvimento
  pnpm dev

  # Build para produção
  pnpm build

  # Execute linting
  pnpm lint
  ```

  ### Estrutura do Projeto

  ```
  nodes/DataCrazy/
  ├── DataCrazy.node.ts          # Nó principal
  ├── GenericFunctions.ts        # Funções utilitárias
  └── properties/                # Módulos organizados
      ├── leads/                 # Módulo de leads
      ├── deals/                 # Módulo de negócios
      ├── conversations/         # Módulo de conversas
      ├── annotations/           # Módulo de anotações
      ├── attachments/           # Módulo de anexos
      ├── tags/                  # Módulo de tags
      ├── pipelines/             # Módulo de pipelines
      ├── deal-actions/          # Módulo de ações de negócios
      └── additional-fields/     # Módulo de campos adicionais
  ```

  Cada módulo segue a estrutura:
  - `*.operations.ts` - Definição das operações disponíveis
  - `*.fields.ts` - Campos de entrada do usuário
  - `*.functions.ts` - Lógica de integração com API
  - `*.types.ts` - Interfaces TypeScript
  - `index.ts` - Exportações centralizadas

  ## 🐛 Reportar Issues

  Encontrou um bug ou tem uma sugestão? Ajude-nos a melhorar!

  ### Como Reportar

  1. **Verifique Issues Existentes**: Antes de criar uma nova issue, verifique se o problema já foi reportado em [Issues](https://github.com/joaoartur/n8n-nodes-datacrazy/issues).

  2. **Crie uma Nova Issue**: Se não encontrar uma issue similar, [crie uma nova](https://github.com/joaoartur/n8n-nodes-datacrazy/issues/new).

  ### Informações Necessárias

  Para nos ajudar a resolver o problema rapidamente, inclua:

  **Para Bugs:**
  - **Descrição**: Descreva o problema claramente
  - **Passos para Reproduzir**: Liste os passos exatos para reproduzir o bug
  - **Comportamento Esperado**: O que deveria acontecer
  - **Comportamento Atual**: O que está acontecendo
  - **Ambiente**:
    - Versão do n8n
    - Versão do node DataCrazy
    - Sistema operacional
  - **Logs de Erro**: Inclua mensagens de erro completas
  - **Screenshots**: Se aplicável, adicione capturas de tela

  **Para Solicitações de Recursos:**
  - **Descrição**: Descreva o recurso desejado
  - **Justificativa**: Por que este recurso seria útil
  - **Casos de Uso**: Exemplos de como seria usado
  - **Alternativas**: Soluções alternativas consideradas

  ### Template de Issue

  ```markdown
  ## Tipo
  - [ ] Bug
  - [ ] Solicitação de Recurso
  - [ ] Melhoria
  - [ ] Documentação

  ## Descrição
  [Descreva o problema ou recurso]

  ## Ambiente (para bugs)
  - Versão do n8n:
  - Versão do n8n-nodes-datacrazy:
  - Sistema Operacional:
  - Node.js:

  ## Passos para Reproduzir (para bugs)
  1.
  2.
  3.

  ## Comportamento Esperado
  [O que deveria acontecer]

  ## Comportamento Atual
  [O que está acontecendo]

  ## Logs de Erro
  ```
  [Cole os logs aqui]
  ```

  ## Informações Adicionais
  [Qualquer informação adicional relevante]
  ```

  ### Prioridade de Issues

  - **🔴 Crítica**: Falhas que impedem o uso básico
  - **🟡 Alta**: Bugs importantes ou recursos muito solicitados
  - **🟢 Média**: Melhorias e bugs menores
  - **🔵 Baixa**: Documentação e otimizações

  ## 🤝 Contribuição

  Contribuições são bem-vindas! Por favor, leia nosso guia de contribuição antes de submeter pull requests.

  ### Processo de Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
  3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
  4. Push para a branch (`git push origin feature/AmazingFeature`)
  5. Abra um Pull Request

  ## 📄 Licença

  Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

  ## 📞 Suporte

  - **Email**: contato@datacrazy.io
  - **Documentação**: [DataCrazy Docs](https://docs.datacrazy.io)
  - **Issues**: [GitHub Issues](https://github.com/joaoartur/n8n-nodes-datacrazy/issues)

  ---

  **Desenvolvido com ❤️ pela equipe DataCrazy**

ai_documentation_summary:
  {"purpose":"Community node for integrating n8n with the DataCrazy platform, providing access to CRM, messaging, lead/deal management, and custom field operations. It supports full lifecycle actions across sales, customer conversations, and related records.","capabilities":["Manage leads: list/search with filters, create, get by ID, update, delete, view activities, history, and associated deals","Manage deals: list, create, get by ID, update, delete, and filter by pipeline/stage","Perform bulk deal actions: move between stages/pipelines, mark as won, mark as lost with reason, restore active status","Manage conversations: list conversations, get conversation details with messages, send messages, and close conversations","Handle attachments: list, upload/add, and delete files associated with leads","Manage notes/comments: list, add, update, and delete comments on leads","Manage tags: list, create, get by ID, update, and delete tags","Manage pipelines: list pipelines and list stages for a specific pipeline","Work with custom fields: list additional fields and set values for lead/deal custom fields"],"authentication":"API key required via a custom 'DataCrazy Credentials' credential","commonUseCases":["Syncing and updating CRM lead/deal records in n8n workflows","Automating customer support messaging and conversation closure","Adding notes, tags, attachments, and custom field values to enrich CRM data"],"limitations":["README does not document OAuth or alternative authentication methods","README excerpt is truncated, so any additional modules or constraints beyond those listed may not be documented"],"relatedNodes":[]}


node_type: n8n-nodes-evolution-go.evolutiongo
package_name: n8n-nodes-evolution-go
display_name: evolutiongo
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-06 09:50:12
author_name: oriondesign
author_github_url: git+https://github.com/Administrador/n8n-nodes-evo-go.git
npm_package_name: n8n-nodes-evolution-go
npm_version: 1.0.4
community_fetched_at: 2026-07-06T09:50:12.585Z
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  Evolution Go API is a REST API developed in Go to integrate WhatsApp with applications, offering support for multiple instances and advanced messaging features.

npm_readme:
  # n8n-nodes-evo-go

  This is an n8n community node for **EvoGo** integration. Use EvoGo in your n8n workflows.

  EvoGo provides automation and integration features for your workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Credentials](#credentials)  
  [Operations](#operations)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Credentials

  The EvoGo node uses **EvoGo API** credentials with:

  - **Base URL** – API base URL (e.g. `https://api.evogo.com`)

  **ApiKey • Global** is a node field (shown after Operation), sent in the `apikey` header.

  When saving credentials, n8n validates the connection with a `GET` request to `{{baseUrl}}/health`.

  ## Operations

  ### Resource: Instance

  - **Create Instance**: Creates a new instance in EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance Name** (required): Instance name
    - **Token** (required): Instance token
    - **Instance ID** (optional): Instance ID
    - Sends `POST` to `{{baseUrl}}/instance/create` with header `apikey: {{adminApiKey}}`

  - **Fetch All Instances**: Get all instances from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - Sends `GET` to `{{baseUrl}}/instance/all` with header `apikey: {{adminApiKey}}`

  - **Fetch Instance**: Get a single instance by ID from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to fetch
    - Sends `GET` to `{{baseUrl}}/instance/info/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Delete Instance**: Delete an instance from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to delete
    - Sends `DELETE` to `{{baseUrl}}/instance/delete/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Delete Proxy**: Delete proxy for an instance from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID for the proxy to delete
    - Sends `DELETE` to `{{baseUrl}}/instance/proxy/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Instance Connect**: Connect an instance to EvoGo
    - **ApiKey • Instance** (required): Instance API key sent in the `apikey` header
    - **Subscribe** (optional): Events to subscribe to - MESSAGE, READ_RECEIPT, PRESENCE, etc. or ALL (default: ALL)
    - **Additional Fields** (optional): Webhook URL, WebSocket, RabbitMQ, NATS enable/disable
    - Sends `POST` to `{{baseUrl}}/instance/connect` with header `apikey: {{instanceApiKey}}`

  - **Get Logs**: Get logs for an instance
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to get logs from
    - **Start Date** (optional): Start date filter (date picker)
    - **End Date** (optional): End date filter (date picker)
    - **Level** (optional): Log levels to filter - DEBUG, WARN, ERROR, INFO (multi-select, all selected by default)
    - **Limit** (optional): Max log entries to return (default: 50)
    - Sends `GET` to `{{baseUrl}}/instance/logs/{{instanceId}}?start_date=...&end_date=...&level=...&limit=...`

  ### Resource: Send Message

  All Send Message operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **Send Text**: Send a text message to a phone number
    - **Number** (required), **Text** (required), **Delay (Ms)** (optional), **Additional Fields** (Mentions, Reply)
    - Sends `POST` to `{{baseUrl}}/send/text`

  - **Send Link**: Send a message with link preview
    - **Number** (required), **Text** (required), **Delay (Ms)** (optional), **Additional Fields** (Mentions, Reply)
    - Sends `POST` to `{{baseUrl}}/send/link`

  - **Send Media URL**: Send image, video or document from URL
    - **Number** (required), **Media URL** (required), **Caption**, **Filename**, **Type** (image/video/document), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/media`

  - **Send Poll**: Send a poll to a phone number
    - **Number** (required), **Question** (required), **Max Answer**, **Options** (array), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/poll`

  - **Send Sticker**: Send a sticker from URL
    - **Number** (required), **Sticker URL** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/sticker`

  - **Send Location**: Send a location to a phone number
    - **Number** (required), **Name** (required), **Address**, **Latitude** (required), **Longitude** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/location`

  - **Send Contact**: Send a contact (vcard) to a phone number
    - **Number** (required), **Full Name** (required), **Organization**, **Phone** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/contact`

  - **Send Button**: Send a message with buttons (PIX, reply, copy, URL, call)
    - **Number** (required), **Title** (required), **Description**, **Footer**, **Buttons** (required: add buttons, choose Type — PIX, Reply, Copy, URL, Call — and fill the fields for each type), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/button`

  - **Send List**: Send a message with sections and rows (list)
    - **Number** (required), **Title** (required), **Button Text** (required), **Description**, **Footer Text**, **Sections** (with rows: title, description, rowId), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/list`

  - **Send Status**: Publish a status/story (text, image, video or audio)
    - **Type** (text/image/video/audio), **Content** (required), **Caption** (for image/video), **Background Color**, **Font** (for text), **Send to All Contacts**, **Status JID List** (when not all contacts). No number or mentions/reply.
    - Sends `POST` to `{{baseUrl}}/send/status`

  ### Resource: User

  All User operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **User Info**: Get info for one or more numbers
    - **Numbers** (required: phone numbers with country code, separated by commas)
    - Sends `POST` to `{{baseUrl}}/user/info`

  - **Check User**: Check if one or more numbers exist
    - **Numbers** (required: phone numbers separated by commas)
    - Sends `POST` to `{{baseUrl}}/user/check`

  - **Get Avatar**: Get avatar for a number
    - **Number** (required), **Preview** (optional, default false)
    - Sends `POST` to `{{baseUrl}}/user/avatar`

  - **Get Contacts**: Get all contacts
    - No parameters. Sends `GET` to `{{baseUrl}}/user/contacts`

  - **Get Privacy Settings**: Get privacy settings
    - No parameters. Sends `GET` to `{{baseUrl}}/user/privacy`

  - **Block Contact**: Block a number
    - **Number** (required). Sends `POST` to `{{baseUrl}}/user/block`

  - **UnBlock Contact**: Unblock a number
    - **Number** (required). Sends `POST` to `{{baseUrl}}/user/unblock`

  - **Block List**: Get list of blocked numbers
    - No parameters. Sends `GET` to `{{baseUrl}}/user/blocklist`

  - **Set Profile Picture**: Set profile picture from image URL
    - **Image URL** (required). Sends `POST` to `{{baseUrl}}/user/profile`

  ### Resource: Message

  All Message operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **React to Message**: Send a reaction (emoji) to a message
    - **Number** (required), **Message ID** (required), **Reaction** (required, emoji). Sends `POST` to `{{baseUrl}}/message/react`

  - **Send Presence**: Send typing/recording presence
    - **Number** (required), **State** (composing/paused), **Is Audio** (boolean). Sends `POST` to `{{baseUrl}}/message/presence`

  - **Mark as Read**: Mark one or more messages as read
    - **Number** (required), **Message IDs** (required, separated by commas). Sends `POST` to `{{baseUrl}}/message/markread`

  - **Download Media**: Download media by URL, directPath or mediaKey
    - **Media Type**: Image, Video, Document ou Audio (imageMessage, videoMessage, documentMessage, audioMessage)
    - **Source**: URL, Direct Path ou Media Key
    - Se **URL**: campo **URL** (obrigatório)
    - Se **Direct Path**: campo **Direct Path** (obrigatório)
    - Se **Media Key**: **Media Key** (obrigatório), **File Enc SHA256**, **File SHA256**, **File Length**
    - **Mimetype** (opcional) em qualquer caso
    - Envia `POST` para `{{baseUrl}}/message/downloadmedia`

  - **Get Message Status**: Get status of a message
    - **Message ID** (required). Sends `POST` to `{{baseUrl}}/message/status`

  - **Delete Message**: Delete a message from chat
    - **Chat** (required, JID), **Message ID** (required). Sends `POST` to `{{baseUrl}}/message/delete`

  - **Edit Message**: Edit message text
    - **Chat** (required, JID), **Message ID** (required), **Message** (required, new text). Sends `POST` to `{{baseUrl}}/message/edit`

  ### Resource: Chat

  Uso de **ApiKey • Instance** para todas as operações.

  - **Pin Chat**: Fixar chat no topo
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/pin`

  - **UnPin Chat**: Desfixar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unpin`

  - **Archive Chat**: Arquivar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/archive`

  - **Unarchive Chat**: Desarquivar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unarchive`

  - **Mute Chat**: Silenciar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/mute`

  - **Unmute Chat**: Dessilenciar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unmute`

  - **History Sync Request**: Solicitar sincronização de histórico
    - **Chat** (obrigatório, JID do grupo/contato), **ID** (obrigatório, ID da mensagem), **Is From Me** (boolean), **Is Group** (boolean), **Timestamp** (obrigatório), **Count** (número). Envia `POST` para `{{baseUrl}}/chat/history-sync`

  ### Resource: Group

  Uso de **ApiKey • Instance** para todas as operações.

  - **List Groups**: Listar grupos. Sem parâmetros. Envia `GET` para `{{baseUrl}}/group/list`

  - **Get Group Info**: Obter informações do grupo
    - **Group JID** (obrigatório). Envia `POST` para `{{baseUrl}}/group/info`

  - **Get Group Invite Link**: Obter link de convite do grupo
    - **Group JID** (obrigatório). Envia `POST` para `{{baseUrl}}/group/invitelink`

  - **Set Group Picture**: Definir foto do grupo (URL)
    - **Group JID** (obrigatório), **Image** (obrigatório, URL). Envia `POST` para `{{baseUrl}}/group/photo`

  - **Set Group Name**: Definir nome do grupo
    - **Group JID** (obrigatório), **Name** (obrigatório). Envia `POST` para `{{baseUrl}}/group/name`

  - **Create Group**: Criar grupo
    - **Group Name** (obrigatório), **Participants** (obrigatório, números separados por vírgula). Envia `POST` para `{{baseUrl}}/group/create`

  - **Update Participant**: Adicionar, remover, promover ou rebaixar participantes
    - **Group JID** (obrigatório), **Participants** (obrigatório, números separados por vírgula), **Action** (add, remove, promote, demote). Envia `POST` para `{{baseUrl}}/group/participant`

  - **Get My Groups**: Listar meus grupos. Sem parâmetros. Envia `GET` para `{{baseUrl}}/group/myall`

  - **Join Group Link**: Entrar em grupo por link
    - **Code** (obrigatório, código do link de convite). Envia `POST` para `{{baseUrl}}/group/join`

  ### Resource: Community

  Uso de **ApiKey • Instance** para todas as operações.

  - **Create Community**: Criar community
    - **Community Name** (obrigatório). Envia `POST` para `{{baseUrl}}/community/create`

  - **Add Group to Community**: Adicionar grupo à community
    - **Community JID** (obrigatório), **Group JID** (obrigatório, um ou mais JIDs separados por vírgula). Envia `POST` para `{{baseUrl}}/community/add`

  - **Remove Group from Community**: Remover grupo da community
    - **Community JID** (obrigatório), **Group JID** (obrigatório, um ou mais JIDs separados por vírgula). Envia `POST` para `{{baseUrl}}/community/remove`

  ### Resource: Label

  Uso de **ApiKey • Instance** para todas as operações.

  - **Add Label on Chat**: Adicionar label em chat
    - **JID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/label/chat`

  - **Remove Label on Chat**: Remover label de chat
    - **JID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/unlabel/chat`

  - **Add Label on Message**: Adicionar label em mensagem
    - **JID** (obrigatório), **Message ID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/label/message`

  - **Remove Label on Message**: Remover label de mensagem
    - **JID** (obrigatório), **Message ID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/unlabel/message`

  - **Edit Label**: Editar label (nome, cor, deleted)
    - **Label ID** (obrigatório), **Name**, **Color** (número), **Deleted** (boolean). Envia `POST` para `{{baseUrl}}/label/edit`

  - **List Labels**: Listar labels. Sem parâmetros. Envia `GET` para `{{baseUrl}}/label/list`

  ### Resource: Newsletter

  Uso de **ApiKey • Instance** para todas as operações.

  - **Create Newsletter**: Criar newsletter
    - **Name** (obrigatório), **Description** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/create`

  - **List Newsletters**: Listar newsletters. Sem parâmetros. Envia `GET` para `{{baseUrl}}/newsletter/list`

  - **Get Newsletter Info**: Obter informações do newsletter
    - **JID** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/info`

  - **Get Newsletter Link**: Obter link do newsletter
    - **Key** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/link`

  - **Subscribe on Newsletter**: Inscrever-se em newsletter
    - **JID** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/subscribe`

  - **Get Newsletter Messages**: Obter mensagens do newsletter
    - **JID** (obrigatório), **Count** (número, default 1). Envia `POST` para `{{baseUrl}}/newsletter/messages`

  ## Compatibility

  - **Minimum n8n version**: 1.0
  - Tested with n8n 1.x

  ## Development

  ### Timeout when starting (`npm run dev`)

  If `npm run dev` fails with "n8n startup timeout after 120 seconds" (common on Windows on first run), use external mode:

  **Terminal 1** – link the node and watch:
  ```bash
  npm run dev:external
  ```

  **Terminal 2** – start n8n manually:
  ```powershell
  $env:N8N_USER_FOLDER = "$env:USERPROFILE\.n8n-node-cli"
  $env:N8N_DEV_RELOAD = "true"
  cd $env:N8N_USER_FOLDER
  npx -y n8n@latest
  ```

  Open n8n at http://localhost:5678.

  ### Alternative: pre-install n8n

  To try to avoid the timeout next time:
  ```powershell
  cd $env:USERPROFILE\.n8n-node-cli
  npx -y n8n@latest --version
  ```
  This downloads n8n in advance; then `npm run dev` tends to start faster.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Project repository](https://github.com/Administrador/n8n-nodes-evo-go)

  ## Version history

  ### 0.1.0
  - Initial EvoGo node release
  - Basic node with Instance resource and Create Instance operation

ai_documentation_summary:
  {"purpose":"An n8n community node that integrates with EvoGo's REST API to manage WhatsApp instances and send various types of messages.","capabilities":["Create, fetch, and delete EvoGo instances","Connect instances to EvoGo with event subscriptions","Retrieve instance logs with date and level filtering","Send text messages","Send messages with link previews","Send media (images, videos, documents) from URLs","Send polls with custom options","Send stickers from URLs","Send location data","Send contact information (vCard)"],"authentication":"API Key required (ApiKey • Global for instance management, ApiKey • Instance for messaging operations)","commonUseCases":["Automating WhatsApp messaging workflows in n8n","Managing multiple WhatsApp instances through a unified API","Sending promotional messages with media and interactive elements","Monitoring instance activity through log retrieval"],"limitations":["Read-only access to instance information (no update operation mentioned)","Media sending requires external URLs (no direct file upload mentioned)","Poll creation requires predefined options (no dynamic option generation mentioned)","Interactive message types are limited to predefined button types (PIX, Reply, Copy, URL, Call)"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-http-request","n8n-nodes-webhook"]}


node_type: @indahash/n8n-nodes-idh-argus-execute.idhargusexecute
package_name: @indahash/n8n-nodes-idh-argus-execute
display_name: idhargusexecute
description: Community node from @indahash/n8n-nodes-idh-argus-execute
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-06 09:50:12
author_name: dwroblewski
author_github_url: https://github.com/indahash
npm_package_name: @indahash/n8n-nodes-idh-argus-execute
npm_version: 0.1.85
community_fetched_at: 2026-07-06T09:50:12.593Z
npm_readme: ERROR: No README data found!
ai_summary_generated_at: 2026-06-26 10:29:17
ai_documentation_summary:
  {"purpose":"No README data was found for this community node, so its exact purpose cannot be determined from the provided information.","capabilities":[],"authentication":"Not specified","commonUseCases":[],"limitations":["No README data available","Supported operations and configuration details cannot be determined from the provided information"],"relatedNodes":[]}


node_type: @n8n-dev/n8n-nodes-gitlab.gitlab
package_name: @n8n-dev/n8n-nodes-gitlab
display_name: gitlab
description: GitLab DevOps platform
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: kelvinzero
author_github_url: git+https://github.com/n8n-code/n8n-nodes-gitlab.git
npm_package_name: @n8n-dev/n8n-nodes-gitlab
npm_version: 1.0.47
community_fetched_at: 2026-07-08T22:00:53.084Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # @n8n-dev/n8n-nodes-gitlab

  ![gitlab Banner](banner.svg)

  [![npm version](https://img.shields.io/npm/v/@n8n-dev/n8n-nodes-gitlab.svg)](https://www.npmjs.com/package/@n8n-dev/n8n-nodes-gitlab)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  ---

  **Stop writing gitlab API integrations by hand.**

  Every time you connect n8n to gitlab, you waste hours mapping endpoints, defining parameters, and debugging schemas. You copy-paste from docs, fix edge cases, and pray nothing breaks.

  **What if connecting n8n to gitlab took 5 minutes, not half a day?**

  This node gives you **147+ resources** out of the box: **Award Emoji**, **Badges**, **Custom Attributes**, **Groups**, **Ldap**, and 142 more: with full CRUD operations, typed parameters, and zero manual configuration.

  ---

  ## What You Get

  - **Zero boilerplate**: Resources, operations, and fields are pre-configured and ready to use
  - **Full CRUD**: Create, read, update, and delete support where the API allows it
  - **Typed parameters**: No more guessing field types
  - **Built-in auth**: API key authentication, ready to go
  - **Declarative**: Native n8n performance, no custom execute() overhead

  ---

  ## Install

  ```bash
  npm install @n8n-dev/n8n-nodes-gitlab
  ```

  **Or in n8n:**
  1. **Settings → Community Nodes → Install**
  2. Search: `@n8n-dev/n8n-nodes-gitlab`
  3. Click **Install**

  ---

  ## Quick Start

  1. Install the node (above)
  2. Add credentials: **gitlab API** → paste your API key
  3. Drag the **gitlab** node into your workflow
  4. Pick a resource → pick an operation → done.

  That's it. No configuration files. No code. It just works.

  ---

  ## Resources

  <details>
  <summary><b>Groups</b> (1 operations)</summary>

  - Post Reset the runner registration token for the instance

  </details>

  <details>
  <summary><b>Runners</b> (1 operations)</summary>

  - Post Reset the runner registration token for the instance

  </details>

  <details>
  <summary><b>Group Import And Export</b> (1 operations)</summary>

  - Post Workhorse authorize the group import upload

  </details>

  <details>
  <summary><b>Packages Npm</b> (2 operations)</summary>

  - Post NPM registry bulk advisory endpoint
  - Post NPM registry quick audit endpoint

  </details>

  <details>
  <summary><b>Access Tokens</b> (2 operations)</summary>

  - Get Retrieve a personal access token
  - Delete Revoke a personal access token

  </details>

  <details>
  <summary><b>Ci Jobs</b> (1 operations)</summary>

  - Get Retrieve a job by job token

  </details>

  <details>
  <summary><b>Packages Conan</b> (3 operations)</summary>

  - Get Retrieve an authentication token
  - Get Verify authentication credentials
  - Get Verify availability of a Conan repository

  </details>

  <details>
  <summary><b>Applications</b> (1 operations)</summary>

  - Get applications

  </details>

  <details>
  <summary><b>Agents</b> (1 operations)</summary>

  - Get List all GitLab agents for Kubernetes by job token

  </details>

  <details>
  <summary><b>Ci Runners</b> (1 operations)</summary>

  - Get Discover Job Router information

  </details>

  <details>
  <summary><b>Internal Operations</b> (2 operations)</summary>

  - Post Process Slack interaction events
  - Post Get Slack interactive component options

  </details>

  <details>
  <summary><b>Jira Forge Installation</b> (1 operations)</summary>

  - Post Register the GitLab for Jira Forge system token for direct dev info sync

  </details>

  <details>
  <summary><b>Jira Forge Subscriptions</b> (1 operations)</summary>

  - Get List GitLab for Jira Forge namespace subscriptions

  </details>

  <details>
  <summary><b>Usage Data</b> (3 operations)</summary>

  - Get Retrieve Service Ping payload
  - Get List all non SQL metrics
  - Get List all Service Ping SQL queries

  </details>

  <details>
  <summary><b>Users</b> (1 operations)</summary>

  - Get Return the user specific counts

  </details>

  <details>
  <summary><b>Instance</b> (2 operations)</summary>

  - Get API v4 Application Appearance
  - Get Retrieve application statistics

  </details>

  <details>
  <summary><b>Web Commits</b> (1 operations)</summary>

  - Get Retrieve the public signing key

  </details>

  <details>
  <summary><b>Clusters</b> (1 operations)</summary>

  - Get List all instance clusters

  </details>

  <details>
  <summary><b>Container Registry</b> (1 operations)</summary>

  - Post Receives notifications from the container registry when an operation occurs

  </details>

  <details>
  <summary><b>Features</b> (2 operations)</summary>

  - Get List all feature flags
  - Get List all feature flag definitions

  </details>

  <details>
  <summary><b>Geo</b> (1 operations)</summary>

  - Get Determine if a Geo site should proxy requests

  </details>

  <details>
  <summary><b>Integrations</b> (2 operations)</summary>

  - Post Process Slack interaction events
  - Post Get Slack interactive component options

  </details>

  <details>
  <summary><b>Metadata</b> (2 operations)</summary>

  - Get Retrieve metadata information for this GitLab instance
  - Get Retrieves version information for the GitLab instance

  </details>

  <details>
  <summary><b>Project Import</b> (2 operations)</summary>

  - Post Workhorse authorize the project import upload
  - Post Workhorse authorize the project relation import upload

  </details>

  ---

  ## Why This Node?

  **Without this node:**
  - Hours of manual API integration
  - Copy-pasting from gitlab docs
  - Debugging auth, pagination, error handling
  - Maintaining your own client code

  **With this node:**
  - Install → configure → use. 5 minutes.
  - Auto-generated from the official gitlab OpenAPI spec
  - Always up to date when the API changes
  - Native n8n performance

  ---

  ## Auto-Generated
  This node was auto-generated from the official **gitlab** OpenAPI specification using
  [@n8n-dev/n8n-openapi-node-ultimate](https://github.com/kelvinzer0/n8n-openapi-node-ultimate),
  then validated against the live API so you get accurate types and real parameters, not guesswork.

  When the gitlab API updates, this node updates too.

  ---


  ## License

  MIT © [kelvinzer0](https://github.com/n8n-code)

ai_documentation_summary:
  {"purpose":"Provides an n8n integration for GitLab DevOps platform APIs, with prebuilt resources and operations for interacting with GitLab instances. It is auto-generated from the GitLab OpenAPI specification and designed to reduce manual API wiring.","capabilities":["Supports 145+ GitLab resources with typed fields and preconfigured operations","Full CRUD-style operations where the GitLab API allows it","Access token management: retrieve and revoke personal access tokens","GitLab instance and metadata queries such as application appearance, statistics, version, and instance metadata","Group, runner, and cluster-related operations including runner token reset and listing instance clusters","CI and job-related lookups such as retrieving jobs by job token and job router information","Package and registry operations for NPM, Conan, and container registry notifications","Feature flag and feature definition listing","Slack interaction-related internal/integration operations","Usage and service ping metrics retrieval"],"authentication":"API key required (GitLab API credentials)","commonUseCases":["Automating GitLab administration tasks in n8n workflows","Retrieving GitLab metadata, statistics, and configuration information","Managing access tokens, runners, and group/project import workflows","Integrating CI/CD and package registry-related GitLab endpoints into workflows","Reading feature flag, usage data, and instance health information"],"limitations":["Operations are limited to what the GitLab API allows; not all resources support full CRUD","Some resource names in the README appear duplicated or overlap (e.g., Slack interaction operations under multiple sections)","Authentication is API-key based rather than OAuth2"],"relatedNodes":[]}


node_type: n8n-nodes-discord-trigger.discordtrigger
package_name: n8n-nodes-discord-trigger
display_name: discordtrigger
description: A node that triggers a workflow whenever a message from discord is sent.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: katerlol
author_github_url: git+https://github.com/katerlol/n8n-discord-trigger.git
npm_package_name: n8n-nodes-discord-trigger
npm_version: 0.8.0
community_fetched_at: 2026-07-08T22:00:53.086Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-discord-trigger

  ![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)

  [n8n](https://www.n8n.io) nodes to trigger workflows from Discord messages.


  This node utilizes a Discord bot to transmit or receive data from child processes when a node is executed.


  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Bot Setup](#bot-setup)  
  [Operations](#operations)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.


  ## Bot Setup

  To send, listen to messages, or fetch the list of channels or roles, you need to set up a bot using the [Discord Developer Portal](https://discord.com/developers/applications).

  1. Create a new application and set it up as a bot.
  2. Enable the **Privileged Gateway Intents** for Message Intent.
  3. Add the bot to your server with at least **read channel permissions**.



  ## Operations

  With this node, you can:
  - Listen to Discord chat messages (both server messages and direct messages).
  - React to messages with specific patterns or triggers.
  - Fetch lists of channels and roles.



  ## Credentials

  You need to authenticate the node with the following credentials:
  - **Client ID**: The OAuth2 client ID of the Discord App.
  - **Bot Token**: The bot token of the Discord App.
  - **n8n API Key**: The API key of your n8n server.
  - **Base URL**: The API URL of your n8n instance (e.g., `https://n8n.example.com/api/v1`).

  Refer to the [official n8n documentation](https://docs.n8n.io/) for more details.


  ## Compatibility

  - Tested on n8n version 1.75.2
  (coming soon)


  ## Usage

  To use this node:
  1. Install it as a community node in your n8n instance.
  2. Configure the required credentials.
  3. Set up triggers for Discord messages based on your use case.

  For more help on setting up n8n workflows, check the [Try it out documentation](https://docs.n8n.io/try-it-out/).


  ## Version history

  - **v0.8.0**: Add GuildMemberUpdate trigger, add option to rename confirm button choices.
  - **v0.7.0**: Add multiclient support. Multiple credentials across multiple workflows are now possible.
  - **v0.6.0**: Add direct message support (Thank you [Fank](https://github.com/Fank)) 
  - **v0.5.1**: Add additional timeout field for confirmation message
  - **v0.5.0**: Add a reaction trigger on messages, add attachments to message
  - **v0.4.0**: Introduce additional trigger options, such as User joins guild, User leaves guild, Role created, Role deleted or Role updated. 
  - **v0.3.2**: Update for multiple simultaneous trigger nodes with one bot.
  - **v0.3.1**: Added additional option to trigger node to trigger on other bot messages
  - **v0.3.0**: Added option to require a reference message in order to trigger the node. Enhance interaction node with a confirmation node
  - **v0.2.9**: Bug fix, where a message won't trigger when multiple trigger nodes are included.
  - **v0.2.8**: Multiple trigger nodes are now supported.
  - **v0.2.7**: A second node Discord Interaction is added to send a message with the same credentials. Additionally roles of users can be added or removed based on interaction.
  - **v0.1.5**: Initial release with message triggers and channel/role fetching capabilities.

ai_documentation_summary:
  {"purpose":"Triggers an n8n workflow automatically when specific events occur in a Discord server, such as messages, reactions, or user/role changes.","capabilities":["Listen to Discord chat messages (server and direct messages)","React to messages with specific patterns or triggers","Fetch lists of channels and roles","Trigger on GuildMemberUpdate events (user joins/leaves guild)","Trigger on Role created/deleted/updated events","Support multiple clients across different workflows","Require reference messages for triggering","Send confirmation messages with timeout options"],"authentication":"OAuth2 (Discord Client ID and Bot Token) + n8n API Key","commonUseCases":["Automate responses to incoming Discord messages","Monitor server activity and react to specific keywords","Automatically assign roles when users join or leave","Create automated workflows based on role changes","Fetch channel and role information for other nodes"],"limitations":["Requires Privileged Gateway Intents (Message Intent) to be enabled in Discord Developer Portal","Bot must have read channel permissions to function","Compatibility limited to n8n version 1.75.2 (as of documentation)","Community node (requires manual installation)"],"relatedNodes":["discordinteraction","discordwebhook","discordmessage"]}


node_type: @raevon/n8n-nodes-whatsapp.whatsapp
package_name: @raevon/n8n-nodes-whatsapp
display_name: whatsapp
description: n8n community nodes for WhatsApp via Baileys REST API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: raevon
npm_package_name: @raevon/n8n-nodes-whatsapp
npm_version: 3.0.25
community_fetched_at: 2026-07-08T22:00:53.087Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # n8n-nodes-whatsapp

  n8n community nodes for WhatsApp messaging via the Baileys REST API.

  ## Install

  1. In n8n, go to **Settings** → **Community Nodes**
  2. Enter `@raevon/n8n-nodes-whatsapp`
  3. Click **Install**

  ## Credential

  1. Go to **Credentials** → **Add Credential** → **WhatsApp API**
  2. Fill in:
     - **Base URL**: `http://your-server:3000` (your Baileys REST API)
     - **API Key**: Your REST API key

  ## Nodes

  | Node | Purpose |
  |---|---|
  | **WhatsApp Trigger** | Polls for new incoming messages |
  | **WhatsApp Connection** | Status, QR code, pairing, logout |
  | **WhatsApp Messaging** | Send text, image, video, audio, document, location, contact, poll, reaction, forward, edit, delete |
  | **WhatsApp Groups** | Create, manage, add/remove members |
  | **WhatsApp Contacts** | Check number, block/unblock |
  | **WhatsApp Chat** | Archive, unarchive, delete |
  | **WhatsApp Presence** | Typing indicator, mark read |

  ## Phone Number Format

  Use digits with country code, no `+` or spaces:

  ```
  918939512868    ✅ India (+91)
  14155551234     ✅ US (+1)
  +91 8939 512    ❌
  ```

ai_documentation_summary:
  {"purpose":"Provides n8n community nodes to interact with WhatsApp through a Baileys REST API, enabling message handling, connection management, group/chat operations, and presence updates.","capabilities":["Poll for new incoming WhatsApp messages","Check connection status, generate QR code, pair, and logout","Send text, image, video, audio, document, location, contact, poll, reaction, forward, edit, and delete messages","Create and manage WhatsApp groups, including adding and removing members","Check whether a phone number is valid and block or unblock contacts","Archive, unarchive, and delete chats","Send typing indicators and mark messages as read"],"authentication":"API key required via WhatsApp API credential, along with the Baileys REST API Base URL","commonUseCases":["Building WhatsApp message automation and notifications in n8n","Managing WhatsApp connection lifecycle and QR-based pairing","Automating group, contact, and chat maintenance tasks"],"limitations":["Requires a separate Baileys REST API server","Phone numbers must be provided in digits-only format with country code, without plus signs or spaces"],"relatedNodes":[]}


node_type: n8n-nodes-wuzapi.wuzapi
package_name: n8n-nodes-wuzapi
display_name: wuzapi
description: n8n community nodes for Wuzapi - WhatsApp Multi-Device REST API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: guilhermejansenoficial
author_github_url: git+https://github.com/guilhermejansen/n8n-nodes-wuzapi.git
npm_package_name: n8n-nodes-wuzapi
npm_version: 1.6.0
community_fetched_at: 2026-07-08T22:00:53.088Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-wuzapi

  This is an n8n community node that provides a complete integration with [Wuzapi](https://github.com/asternic/wuzapi) - a multi-user and multi-device REST API for WhatsApp.

  Wuzapi implements a robust WhatsApp Web API that allows you to send and receive messages, manage groups, handle media files, and much more through a simple REST interface.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Nodes Overview](#nodes-overview)
  - [Usage Examples](#usage-examples)
  - [Features](#features)
  - [Error Handling](#error-handling)
  - [Compatibility](#compatibility)
  - [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Quick Installation

  1. In n8n, go to **Settings** > **Community Nodes**
  2. Click **Install a community node**
  3. Enter `n8n-nodes-wuzapi`
  4. Click **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-wuzapi
  ```

  ## Operations

  This package includes 11 specialized nodes, each focused on specific WhatsApp operations:

  ### 🔐 Wuzapi Credentials
  Handles authentication with your Wuzapi instance.

  ### 📱 Wuzapi Session
  - **Connect** - Connect to WhatsApp servers
  - **Disconnect** - Disconnect from WhatsApp
  - **Get Status** - Check connection status
  - **Get QR Code** - Get QR code for scanning
  - **Logout** - Logout and terminate session
  - **Pair Phone** - Get pairing code for phone
  - **Set Proxy** - Configure proxy settings
  - **Configure S3** - Set up S3 storage for media
  - **Test S3** - Test S3 connection

  ### 💬 Wuzapi Message
  Send various types of messages:
  - **Text** - Send text messages
  - **Image** - Send images with optional captions
  - **Audio** - Send audio messages
  - **Video** - Send videos with optional captions
  - **Document** - Send documents of any type
  - **Sticker** - Send stickers
  - **Location** - Send location coordinates
  - **Contact** - Send contact cards (vCard)
  - **Template** - Send template messages with buttons
  - **Buttons** - Send interactive button messages
  - **List** - Send list messages
  - **Poll** - Send polls to groups

  ### 🗨️ Wuzapi Chat
  Manage chat interactions:
  - **Delete Message** - Delete sent messages
  - **Edit Message** - Edit previously sent messages
  - **Download Media** - Download media from messages
  - **Mark as Read** - Mark messages as read
  - **React to Message** - Send reactions to messages
  - **Set Presence** - Show typing/recording indicators

  ### 👤 Wuzapi User
  User information and presence:
  - **Check Users** - Check if users have WhatsApp
  - **Get User Info** - Get detailed user information
  - **Get Avatar** - Get user profile pictures
  - **Get Contacts** - Get all contacts
  - **Set Presence** - Set global online/offline status

  ### 👥 Wuzapi Group
  Complete group management:
  - **Create** - Create new groups
  - **List** - List all groups
  - **Get Info** - Get group information
  - **Get Invite Link** - Get group invite link
  - **Join** - Join group via invite
  - **Leave** - Leave a group
  - **Set Name** - Change group name
  - **Set Description** - Set group description
  - **Set Photo** - Set group photo
  - **Remove Photo** - Remove group photo
  - **Set Announce** - Enable/disable admin-only messages
  - **Set Locked** - Lock/unlock group info editing
  - **Set Ephemeral** - Configure disappearing messages
  - **Update Participants** - Add/remove/promote/demote members

  ### 🔗 Wuzapi Webhook
  Configure webhook settings:
  - **Get** - Get current webhook configuration
  - **Set** - Configure webhook URL and events
  - **Update** - Update webhook settings
  - **Delete** - Remove webhook configuration

  ### 👨‍💼 Wuzapi Admin
  Administrative operations (requires admin token):
  - **List Users** - List all Wuzapi users
  - **Create User** - Create new user with token
  - **Delete User** - Delete user from database
  - **Delete User Full** - Complete user removal (DB, S3, logout)

  ### 🔔 Wuzapi Trigger
  Receive real-time WhatsApp events with complete event mapping:
  - **Events** - Message, Read Receipt, Presence, History Sync, Chat Presence, All Events
  - **Advanced Filters** - Filter by sender phone, chat ID, message type, content, groups/direct, from me/others, token
  - **Message Type Detection** - Automatic detection of text, media, PTT, documents, stickers, URLs, locations, contacts, buttons, lists, templates, polls, orders, and unknown types
  - **Media Support** - Complete base64 and S3 media data extraction
  - **Content Parsing** - Intelligent message content extraction with type-specific fields
  - **Simplified Output** - Clean, structured output with all relevant fields mapped
  - **Raw Data Access** - Optional complete raw webhook data for debugging

  ### ⏳ Wuzapi Send and Wait
  Send messages and wait for responses:
  - **Approval Messages** - Send messages with approval buttons
  - **Free Text Response** - Wait for user text input via web form
  - **Custom Forms** - Create custom forms for user responses
  - **Wait Time Limits** - Set maximum wait times
  - **Attribution** - Optional n8n branding

  ### 🤖 Wuzapi AI
  Optimized for AI workflows and tools with complete message type support:
  - **Send Text** - Send text messages with AI-friendly interface
  - **Send Image** - Send images with captions (Binary/Base64/URL)
  - **Send Audio** - Send audio messages with PTT support (Binary/Base64/URL)
  - **Send Video** - Send videos with captions (Binary/Base64/URL)
  - **Send Document** - Send documents with filenames (Binary/Base64/URL)
  - **Send Location** - Send geographical coordinates with location names
  - **Send Contact** - Send contact information with VCard data
  - **Send Sticker** - Send stickers in WebP format (Binary/Base64/URL)
  - **Send Buttons** - Send interactive button messages for AI decision trees
  - **Send List** - Send structured lists with multiple options for AI menus
  - **Send Poll** - Send group polls for AI-driven surveys and decisions
  - **Universal Media Support** - All media types support Binary Data, Base64, and URL sources
  - **Mention System** - Complete mention support for specific users and all group members
  - **Batch Processing** - Process multiple recipients and message types efficiently
  - **Error Tolerance** - Continue workflow execution on individual failures
  - **AI Tools Compatible** - Perfect for use with n8n AI Tools and automation

  ## Credentials

  To use these nodes, you need to configure the Wuzapi credentials:

  1. **API Token** - Your Wuzapi user token for authentication
  2. **API URL** - The base URL of your Wuzapi instance

  ### Credential Validation

  The credentials are automatically validated when configured. The validation provides real-time information about your Wuzapi session:

  - **Authentication Status** - Confirms API token validity
  - **Session Information** - Shows session name, connection status, and login state
  - **Dynamic Messages** - Example: "Connected to setupautomatizado (Connected, Logged In)"

  3. **Advanced Options** (Optional):
     - **Proxy URL** - HTTP/SOCKS5 proxy for requests
     - **Request Timeout** - Timeout in milliseconds
     - **Retry on Failure** - Enable automatic retries
     - **Max Retries** - Maximum retry attempts

  ### Setting up Wuzapi

  1. Install and run Wuzapi following the [official documentation](https://github.com/asternic/wuzapi)
  2. Create a user with an authentication token
  3. Use the token and API URL in n8n credentials

  ## Nodes Overview

  ### Modular Design

  This package follows a modular design where each node focuses on specific functionality:

  - **Session Management** - Connection, authentication, and configuration
  - **Messaging** - All message sending operations
  - **Chat Operations** - Message management and interactions
  - **User Operations** - User information and presence
  - **Group Management** - Complete group functionality
  - **Webhook Configuration** - Event subscription management
  - **Administration** - User management (admin only)
  - **Event Trigger** - Real-time event reception
  - **Send and Wait** - Interactive approval workflows
  - **AI Integration** - Optimized node for AI Tools and workflows

  ### Key Features

  - ✅ **Complete API Coverage** - All Wuzapi endpoints implemented across 11 specialized nodes
  - 🔄 **Automatic Retry Logic** - Built-in retry mechanism with exponential backoff
  - 🛡️ **Robust Error Handling** - Graceful error handling with detailed messages
  - 🎯 **Type Safety** - Full TypeScript implementation with comprehensive type checking
  - 📦 **Universal Media Support** - Handle all media types with Binary Data, Base64, and URL sources
  - 🔐 **Multi-tenant Support** - Each user has independent WhatsApp sessions
  - ☁️ **S3 Integration** - Optional cloud storage for media files with automatic delivery
  - 🌐 **Proxy Support** - HTTP/SOCKS5 proxy configuration for all operations
  - ⚡ **High Performance** - Optimized for production use with efficient media handling
  - 🎨 **User-Friendly** - Intuitive interface with helpful descriptions and examples
  - 🤖 **Complete AI Integration** - Dedicated AI node with full message type support (11 types)
  - 💬 **Interactive Messages** - Full support for buttons, lists, polls, and stickers
  - 🎯 **Mention System** - Complete mention support for individuals and group-wide mentions
  - 📱 **Media Optimization** - Smart media source detection and URL support for reduced payloads
  - ✅ **Enhanced Validation** - Real-time credential validation with session status
  - 🔧 **Batch Processing** - Efficient processing of multiple operations with error tolerance
  - 🌍 **Multi-format Support** - WebP stickers, VCard contacts, geographic locations
  - 📊 **Group Intelligence** - Advanced group management with polls and administrative controls

  ## Usage Examples

  ### Send a Text Message

  ```javascript
  // Using Wuzapi Message node
  {
    "messageType": "text",
    "phone": "5491155553934",
    "body": "Hello from n8n!"
  }
  ```

  ### Send an Image with Caption

  ```javascript
  // Using Wuzapi Message node
  {
    "messageType": "image",
    "phone": "5491155553934",
    "imageSource": "binary",
    "binaryProperty": "data",
    "caption": "Check out this image!"
  }
  ```

  ### Create a Group

  ```javascript
  // Using Wuzapi Group node
  {
    "operation": "create",
    "groupName": "My n8n Group",
    "participants": "5491155553934,5491155553935"
  }
  ```

  ### Set Up Webhook Trigger

  ```javascript
  // Using Wuzapi Trigger node - Basic setup
  {
    "events": ["Message", "ReadReceipt"],
    "filters": {
      "messageType": "text",
      "isGroup": "false"
    }
  }
  ```

  ### Advanced Trigger Configuration

  ```javascript
  // Complete trigger setup with all features
  {
    "events": ["Message"],
    "filters": {
      "fromPhone": "5521971532700@s.whatsapp.net",
      "chatId": "120363312246943103@g.us",
      "messageType": "media",
      "containsText": "urgent",
      "isGroup": "true",
      "isFromMe": "false",
      "tokenFilter": "setupautomatizado"
    },
    "options": {
      "simplifyOutput": true,
      "includeMediaData": true,
      "parseMessageContent": true,
      "includeRawData": false
    }
  }
  ```

  ### Trigger Output Example

  ```javascript
  // Simplified output for a text message
  {
    "eventType": "Message",
    "token": "setupautomatizado",
    "messageId": "A6BA5FB09055C47722F936C3FC74D98F",
    "chat": "5521971532700@s.whatsapp.net", 
    "sender": "5521971532700@s.whatsapp.net",
    "timestamp": "2025-05-28T06:47:26-03:00",
    "messageType": "text",
    "isFromMe": false,
    "isGroup": false,
    "pushName": "Guilherme Jansen",
    "verifiedName": "Guilherme Jansen - Setup Automatizado",
    "text": "Oi"
  }
  ```

  ### Media Message Output

  ```javascript
  // Output for audio message with S3 and base64 data
  {
    "eventType": "Message",
    "messageType": "ptt",
    "audioUrl": "https://mmg.whatsapp.net/v/...",
    "duration": 3,
    "mimeType": "audio/ogg; codecs=opus",
    "mediaBase64": "T2dnUwACAAAAAAAA...",
    "mediaMimeType": "application/ogg",
    "mediaFileName": "DB56752B6A203E5A96A2E533C4D0A7CF.oga",
    "s3Data": {
      "bucket": "evolution",
      "key": "users/2fb8378b312c1d2dd127e094d9a99115/inbox/...",
      "url": "https://s3.setupautomatizado.com.br/evolution/...",
      "size": 8084
    }
  }
  ```

  ### Interactive Message Output

  ```javascript
  // Output for buttons message
  {
    "eventType": "Message",
    "messageType": "buttons",
    "text": "ESCOLHA O MENU!",
    "buttons": [
      {
        "id": "81ad952f-1085-4d2c-a4b9-de228cfc4117",
        "text": "SUPORTE",
        "type": 1
      },
      {
        "id": "a4767ccb-ded6-4edd-be6a-363972fdaa0f",
        "text": "COMERCIAL",
        "type": 1
      },
      {
        "id": "8f72fd66-1e6f-48bd-a5b5-c509fcc5a9f1",
        "text": "ATENDIMENTO",
        "type": 1
      }
    ]
  }

  // Output for list message
  {
    "eventType": "Message",
    "messageType": "list",
    "title": "<HEADER_TEXT>",
    "text": "<BODY_TEXT>",
    "buttonText": "<BUTTON_TEXT>",
    "sections": [
      {
        "title": "<LIST_SECTION_1_TITLE>",
        "rows": [
          {
            "id": "<LIST_SECTION_1_ROW_1_ID>",
            "title": "<SECTION_1_ROW_1_TITLE>",
            "description": "<SECTION_1_ROW_1_DESC>"
          }
        ]
      }
    ]
  }
  ```

  ### Send AI-Generated Message

  ```javascript
  // Using Wuzapi AI node - Perfect for AI workflows
  {
    "operation": "sendText",
    "phoneNumber": "5491155553934",
    "message": "Hello! This is an AI-generated response from n8n."
  }
  ```

  ### Send Multiple Media Files (AI Batch)

  ```javascript
  // Using Wuzapi AI node with multiple items
  [
    {
      "operation": "sendImage",
      "phoneNumber": "5491155553934",
      "imageSource": "url",
      "imageUrl": "https://example.com/image1.jpg",
      "caption": "AI Analysis Result 1"
    },
    {
      "operation": "sendDocument",
      "phoneNumber": "5491155553935",
      "documentSource": "url", 
      "documentUrl": "https://example.com/report.pdf",
      "fileName": "AI_Report.pdf",
      "caption": "Generated Report"
    }
  ]
  ```

  ### Send Interactive Messages with AI

  ```javascript
  // Send sticker for reactions
  {
    "operation": "sendSticker",
    "phoneNumber": "5491155553934",
    "stickerSource": "url",
    "stickerUrl": "https://example.com/thumbs-up.webp"
  }

  // Send buttons for AI decision tree
  {
    "operation": "sendButtons",
    "phoneNumber": "5491155553934",
    "message": "How can I help you today?",
    "additionalOptions": {
      "mentions": {
        "mentionConfig": [{
          "type": "specific",
          "jids": "5491155553934@s.whatsapp.net"
        }]
      }
    }
  }

  // Send list for AI-generated menu
  {
    "operation": "sendList",
    "phoneNumber": "120363312246943103@g.us",
    "buttonText": "Choose Service",
    "description": "Select the service you need",
    "topText": "AI Assistant Services",
    "footerText": "Powered by AI",
    "listItems": {
      "item": [
        {
          "title": "Technical Support",
          "desc": "Get help with technical issues",
          "rowId": "tech_support"
        },
        {
          "title": "Sales Information", 
          "desc": "Learn about our products",
          "rowId": "sales_info"
        },
        {
          "title": "General Questions",
          "desc": "Ask any general questions",
          "rowId": "general_qa"
        }
      ]
    }
  }

  // Send poll for group decisions
  {
    "operation": "sendPoll",
    "phoneNumber": "120363312246943103@g.us",
    "pollHeader": "Which feature should we prioritize?",
    "pollOptions": "AI Chat Enhancement,Voice Messages,File Sharing,Video Calls"
  }
  ```

  ### AI Tools Integration Examples

  ```javascript
  // Complete AI workflow with mentions and media
  {
    "operation": "sendVideo",
    "phoneNumber": "5491155553934",
    "videoSource": "base64",
    "videoBase64": "data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc...",
    "caption": "Here's your AI-generated tutorial video",
    "additionalOptions": {
      "id": "ai_tutorial_001",
      "mentions": {
        "mentionConfig": [{
          "type": "all"
        }]
      }
    }
  }

  // AI processing with binary data from previous nodes
  {
    "operation": "sendDocument",
    "phoneNumber": "5491155553934",
    "documentSource": "binary",
    "documentBinaryProperty": "processed_report",
    "fileName": "AI_Analysis_Report.pdf",
    "caption": "Your personalized AI analysis is ready!"
  }
  ```

  ## Error Handling

  All nodes include comprehensive error handling:

  - **Automatic Retries** - Failed requests are retried with exponential backoff
  - **Continue on Fail** - Option to continue workflow execution on errors
  - **Detailed Error Messages** - Clear error descriptions for debugging
  - **HTTP Status Codes** - Proper status code handling
  - **Authentication Errors** - No retry on authentication failures

  ## Compatibility

  - **n8n Version**: 0.210.0 or higher
  - **Node.js**: 20.15 or higher  
  - **Wuzapi**: Compatible with all Wuzapi versions
  - **WhatsApp**: Supports all current WhatsApp message types including interactive content
  - **Media Formats**: 
    - Images: JPEG, PNG, WebP
    - Videos: MP4, AVI, MOV (H.264 codec recommended)
    - Audio: OGG (Opus), MP3, WAV, AAC
    - Documents: PDF, DOCX, XLSX, TXT, and all file types
    - Stickers: WebP format (recommended), PNG with transparency

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Wuzapi Documentation](https://github.com/asternic/wuzapi)
  - [Wuzapi API Documentation](https://github.com/asternic/wuzapi/blob/main/API.md)
  - [WhatsApp Business API](https://developers.facebook.com/docs/whatsapp)

  ## Support

  For issues and feature requests, please use the [GitHub issues page](https://github.com/guilhermejansen/n8n-nodes-wuzapi/issues).

  ## License

  [MIT](https://github.com/guilhermejansen/n8n-nodes-wuzapi/blob/master/LICENSE.md)

  ## Author

  Guilherme Jansen - [guilherme@setupautomatizado.com.br](mailto:guilherme@setupautomatizado.com.br)

  ---

  Made with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"This n8n community node provides comprehensive integration with Wuzapi, a multi-user and multi-device REST API for WhatsApp, enabling automation of messaging, group management, user operations, and real-time event handling.","capabilities":["Send and receive text, images, audio, video, documents, stickers, locations, contacts, templates, buttons, lists, and polls","Manage WhatsApp groups (create, join, leave, update settings, manage participants)","Handle chat interactions (delete, edit, download media, mark as read, react, set presence)","Manage user profiles and contacts (check availability, get info, avatars, contacts)","Configure webhooks for real-time event listening (messages, read receipts, presence, history sync)","Support for media handling via S3 storage and base64 extraction","Advanced message filtering and content parsing in webhook triggers","Interactive message workflows with approval buttons, custom forms, and wait-time limits","Administrative operations for user management (create, list, delete users)"],"authentication":"API key required (Wuzapi token)","commonUseCases":["Automated customer support via WhatsApp","Multi-device WhatsApp business automation","Real-time event monitoring and response workflows","Group management and announcements","Media file sharing and storage integration"],"limitations":["Community node (not official n8n node)","Requires external Wuzapi instance setup","Some advanced features may depend on Wuzapi server configuration"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-webhook","n8n-nodes-s3"]}


node_type: @igabm/n8n-nodes-tiktok.tiktok
package_name: @igabm/n8n-nodes-tiktok
display_name: tiktok
description: n8n nodes for implementation for TikTok API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: igabm
author_github_url: git+https://github.com/igabm/n8n-nodes-tiktok.git
npm_package_name: @igabm/n8n-nodes-tiktok
npm_version: 1.5.0
community_fetched_at: 2026-07-08T22:00:53.089Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # n8n-nodes-tiktok

  This is an n8n community node that lets you use TikTok in your n8n workflows.

  TikTok is a popular social media platform for creating, sharing, and discovering short videos. The TikTok Content Posting API allows developers to automate the process of posting content to TikTok directly from their applications.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

   The TikTok node supports the following operations:
   - **Video Post**: Upload a video via URL or file.
   - **Photo Post**: Upload one or more photos from verified URLs to TikTok, either as a direct post or for later editing in the TikTok app.
   - **Post Status**: Check the publishing status of a post using its publish ID.
   - **User Profile**: Retrieve profile information and statistics for the authenticated user.

  ## Credentials

  To use this node, you need to authenticate with TikTok via OAuth2.  
  1. Create a TikTok Developer account and register an app.
  2. Add the **Content Posting API** product to your app.
  3. Obtain the required OAuth2 credentials for the app and configure them in n8n.
  4. Ensure your app has been approved for the `video.upload`, `video.publish`, and Display API scopes such as `user.info.basic`, `user.info.profile`, and `user.info.stats`.

  > **Breaking:** Updating to v1.1.0 changes the default OAuth scopes. Reauthorize existing TikTok credentials after upgrading.

  For detailed instructions on obtaining the credentials, refer to the [TikTok API Documentation](https://developers.tiktok.com/doc/oauth-user-access-token-management).

  ## Compatibility

  - Minimum n8n version: 1.107.0
  - Tested against TikTok API versions from 2023.

  No known incompatibility issues at this time.

  ## Usage

  This node allows you to automate content posting to TikTok by uploading videos or photos directly to TikTok via the Content Posting API. You can configure your workflows to handle uploads, drafts, or deletion of content programmatically.

  For new users, check out the [Try it out](https://docs.n8n.io/try-it-out/) guide for general n8n workflow usage.

  ## Dev Usage
  To link to a local n8n instance: (if dev workspace is ~/work/ )
  pnpm link ~/work/n8n-nodes-tiktok/

  docker run -it --rm \
    --name n8n \
    -p 5678:5678 \
    -v n8n_data:/home/node/.n8n \
    -v ~/work/n8n-nodes-tiktok:/home/node/.n8n/nodes/node_modules/@igabm/n8n-nodes-tiktok \
    -e "NODE_FUNCTION_ALLOW_EXTERNAL=*" \
    -e "N8N_SECURE_COOKIE=false" \
    -e N8N_LOG_LEVEL=debug \
    docker.n8n.io/n8nio/n8n


  To publish a new release:
  pnpm publish  --access public

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [TikTok API Documentation](https://developers.tiktok.com/doc/content-posting-api-get-started)

  ## Version history

  See [CHANGELOG.md](CHANGELOG.md)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates TikTok Content Posting API capabilities into workflows. It enables automated publishing and profile lookups for TikTok accounts.","capabilities":["Upload and post videos via URL or file","Upload one or more photos from verified URLs for direct posting or draft/editing later in the TikTok app","Check the publishing status of a post by publish ID","Retrieve profile information and statistics for the authenticated user"],"authentication":"OAuth2 required with TikTok Developer app credentials and approved Content Posting API / Display API scopes","commonUseCases":["Automating TikTok video publishing from a workflow","Posting photo content to TikTok from approved URLs","Checking whether a TikTok post has finished publishing","Fetching authenticated TikTok user profile and stats"],"limitations":["Requires a TikTok Developer account and app approval for specific scopes","Photos must come from verified URLs","Updating to v1.1.0 changes the default OAuth scopes and existing credentials must be reauthorized","Minimum supported n8n version is 1.107.0"],"relatedNodes":[]}


node_type: n8n-nodes-imap-custom.imapcustom
package_name: n8n-nodes-imap-custom
display_name: imapcustom
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: jpoujol
author_github_url: git+https://github.com/callzhang/n8n-nodes-imap.git
npm_package_name: n8n-nodes-imap-custom
npm_version: 1.0.7
community_fetched_at: 2026-07-08T22:00:53.092Z
ai_summary_generated_at: 2026-07-09 06:09:49
description:
  Enhanced IMAP node with custom labels support, limit parameters, and structured email fields for n8n workflows.

npm_readme:
  # <img src="nodes/Imap/node-imap-enhanced-icon.svg"  height="40"> n8n-nodes-imap-enhanced

  This is an enhanced n8n community node that adds support for [IMAP](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) email servers with advanced features including multiple mailbox support, custom labels, limit parameters, and professional HTML to Markdown conversion.

  * [Installation](#installation)  
  * [Operations](#operations)  
  * [Credentials](#credentials)
  * [Version history](CHANGELOG.md)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Use `n8n-nodes-imap-enhanced` in N8N settings to install the stable version.

  To install beta version, use `n8n-nodes-imap-enhanced@beta`.

  NPMJS: [n8n-nodes-imap-enhanced](https://www.npmjs.com/package/n8n-nodes-imap-enhanced)


  ## Operations

  * Mailbox
    * Get list of mailboxes (including status information like number of messages) **with limit parameter**
    * Get status of a mailbox (number of messages, etc.)
    * Create a mailbox
    * Rename a mailbox
    * ~Delete a mailbox~ (disabled due to danger of accidental data loss and no apparent use case)
  * Email
    * **Get list of emails from multiple mailboxes** **with limit parameter and three content formats (text, markdown, html)**
    * **Get single email from multiple mailboxes** with comprehensive content processing
    * Download attachments from an email
    * Move an email to another mailbox
    * Copy an email into another mailbox
    * Set/remove flags on an email ("seen", "answered", "flagged", "deleted", "draft") **with custom labels support**
    * **Manage custom labels** (add, remove, set custom labels/keywords)
    * Create email draft in a mailbox
      * Use `n8n-nodes-eml` node to create complex emails. It supports attachments and other features.

  ## New Features

  ### Professional Content Processing
  - **Three Content Formats**: Returns `text`, `markdown`, and `html` fields for email body content
  - **Professional Markdown**: Uses `node-html-markdown` library for accurate HTML to Markdown conversion
  - **Clean Text**: Converts HTML to readable plain text with proper formatting
  - **Standard Fields**: Always includes flags/labels and structured envelope data

  ### Multiple Mailbox Support
  - **Multi-Selection**: Select multiple mailboxes simultaneously for comprehensive email searches
  - **ALL Mailboxes Option**: Empty mailbox selection automatically searches ALL available mailboxes
  - **Cross-Mailbox Search**: Find emails across multiple mailboxes in a single operation
  - **Mailbox Tracking**: Each email result includes the source mailbox path for better organization

  ### Custom Labels Support
  - **Search by Custom Labels**: Search emails using custom labels/keywords
  - **Label Management**: Add, remove, or set custom labels on emails
  - **Flexible Format**: Support for `labelName:labelValue` format (e.g., "Priority:High")

  ### Limit Parameters
  - **Email List Limit**: Control maximum number of emails returned
  - **Mailbox List Limit**: Control maximum number of mailboxes returned
  - **Performance Optimization**: Prevents excessive data fetching

  ### Text Search Limitations & Solutions
  - **Server Limitations**: Some IMAP servers (like Alimail `imap.qiye.aliyun.com`) don't support text-based searches (`SUBJECT`, `BODY`, `FROM`, `TO`)
  - **Recommended Workaround**: Use "Get Many" operation with multiple mailboxes, then filter results locally using n8n's "Filter" node
  - **Cross-Mailbox Search**: Our multiple mailbox feature is perfect for this - search all mailboxes and filter locally
  - **Better Performance**: Local filtering gives you more control and works reliably across all IMAP servers

  ### Output Structure
  ```json
  {
    "seq": 415,
    "uid": 18718,
    "mailboxPath": "INBOX",
    "envelope": {
      "subject": "Email Subject",
      "from": [{"name": "Sender", "address": "sender@example.com"}],
      "to": [{"name": "Recipient", "address": "recipient@example.com"}],
      "date": "2025-01-XX",
      "messageId": "<message-id>"
    },
    "labels": ["\\Seen"],
    "size": 12345,
    "text": "Plain text content",
    "markdown": "# Header\n\n**Bold** text",
    "html": "<p>HTML content</p>"
  }
  ```

  ## Usage Examples

  ### Multiple Mailbox Search
  To search for emails across multiple mailboxes:

  1. **Search All Mailboxes**: Leave the "Mailbox" field empty to search all available mailboxes
  2. **Search Specific Mailboxes**: Select multiple mailboxes (e.g., INBOX, Sent, Drafts)
  3. **Filter Results**: Use n8n's "Filter" node to search for specific text content

  ### Text Search Workaround
  For IMAP servers that don't support text-based searches (like Alimail):

  1. Use "Get Many" operation with empty mailbox selection (searches all mailboxes)
  2. Add a "Filter" node after the IMAP node
  3. Configure the filter to search in email fields like `envelope.subject`, `textContent`, `htmlContent`, etc.

  Example filter expression:
  ```
  {{ $json.envelope.subject.includes("Mary") || $json.textContent.includes("Mary") }}
  ```

  ## Credentials

  Currently, this node supports only basic authentication (username and password).  
  OAuth2 authentication is not supported yet.  

  > NOTE: You can reuse core [N8N IMAP Trigger node](https://docs.n8n.io/integrations/builtin/credentials/imap/) credentials for this node.

ai_documentation_summary:
  {"purpose":"Enhanced IMAP email node for n8n workflows that supports browsing and managing mailboxes and emails across multiple mailboxes. It adds structured email output, custom label handling, and limit controls for more efficient email processing.","capabilities":["List mailboxes with status information and limit parameter","Get mailbox status","Create and rename mailboxes","List emails from multiple mailboxes with limit parameter","Get a single email from multiple mailboxes","Download email attachments","Move or copy emails between mailboxes","Set or remove email flags such as seen, answered, flagged, deleted, and draft","Manage custom labels/keywords on emails (add, remove, set)","Create email drafts"],"authentication":"Basic authentication (username and password). OAuth2 is not supported. Existing n8n IMAP Trigger credentials can be reused.","commonUseCases":["Searching and processing emails across multiple IMAP mailboxes in one workflow","Filtering emails locally in n8n after retrieving them from all mailboxes","Managing email flags and custom labels for email triage and automation","Downloading attachments or moving/copying emails as part of an inbox workflow","Creating drafts for outgoing email workflows"],"limitations":["Delete mailbox operation is disabled to avoid accidental data loss","Some IMAP servers do not support text-based searches like SUBJECT, BODY, FROM, or TO","OAuth2 authentication is not supported"],"relatedNodes":["n8n IMAP Trigger","n8n-nodes-eml","Filter"]}


node_type: n8n-nodes-qrcode.qrcode
package_name: n8n-nodes-qrcode
display_name: qrcode
description: n8n nodes to generate QRCode
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: 0xtlt
author_github_url: git+https://github.com/0xtlt/n8n-nodes-qrcode.git
npm_package_name: n8n-nodes-qrcode
npm_version: 0.1.0
community_fetched_at: 2026-07-08T22:00:53.095Z
ai_summary_generated_at: 2026-06-26 10:29:17
npm_readme:
  # n8n-nodes-qrcode

  This is an n8n community node. It lets you use QrCode in your n8n workflows.

  Qrcode is a node that allows you to generate QR codes from text.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  - Qrcode: Generate a QR code from text

  ## License

  The word "QR Code" is registered trademark of:
  DENSO WAVE INCORPORATED

ai_documentation_summary:
  {"purpose":"This node generates QR codes from text within n8n workflows. It is a simple utility node for converting input text into a QR code image or representation.","capabilities":["Generate a QR code from text"],"authentication":"None","commonUseCases":["Create QR codes for URLs, text, or contact information in automated workflows","Generate QR codes for sharing data in notifications, emails, or documents"],"limitations":["Only documented operation is generating a QR code from text"],"relatedNodes":[]}


node_type: n8n-nodes-whatsapp.whatsapp
package_name: n8n-nodes-whatsapp
display_name: whatsapp
description: Nodes to trigger workflows from whatsapp events or send messages (using whatsapp web).
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: soerenuhrbach
npm_package_name: n8n-nodes-whatsapp
npm_version: 0.0.5
community_fetched_at: 2026-07-08T22:00:53.096Z
npm_readme:
  ## n8n Nodes to receive and send whatsapp messages

  Coming soon.

ai_summary_generated_at: 2026-05-02 08:57:17
ai_documentation_summary:
  {"purpose":"Provides n8n nodes to trigger workflows from WhatsApp events or send messages using WhatsApp Web.","capabilities":["Receive WhatsApp messages","Trigger workflows from WhatsApp events","Send WhatsApp messages"],"authentication":"None","commonUseCases":["Automated customer support responses","Order status notifications","Event reminders"],"limitations":["Feature not yet implemented (marked as 'Coming soon')"],"relatedNodes":[]}


node_type: n8n-nodes-evo-go.evogo
package_name: n8n-nodes-evo-go
display_name: evogo
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: oriondesign
author_github_url: git+https://github.com/Administrador/n8n-nodes-evo-go.git
npm_package_name: n8n-nodes-evo-go
npm_version: 1.0.4
community_fetched_at: 2026-07-08T22:00:53.096Z
ai_summary_generated_at: 2026-05-22 10:26:01
description:
  Evolution Go API is a REST API developed in Go to integrate WhatsApp with applications, offering support for multiple instances and advanced messaging features.

npm_readme:
  # n8n-nodes-evo-go

  This is an n8n community node for **EvoGo** integration. Use EvoGo in your n8n workflows.

  EvoGo provides automation and integration features for your workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Credentials](#credentials)  
  [Operations](#operations)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Credentials

  The EvoGo node uses **EvoGo API** credentials with:

  - **Base URL** – API base URL (e.g. `https://api.evogo.com`)

  **ApiKey • Global** is a node field (shown after Operation), sent in the `apikey` header.

  When saving credentials, n8n validates the connection with a `GET` request to `{{baseUrl}}/health`.

  ## Operations

  ### Resource: Instance

  - **Create Instance**: Creates a new instance in EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance Name** (required): Instance name
    - **Token** (required): Instance token
    - **Instance ID** (optional): Instance ID
    - Sends `POST` to `{{baseUrl}}/instance/create` with header `apikey: {{adminApiKey}}`

  - **Fetch All Instances**: Get all instances from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - Sends `GET` to `{{baseUrl}}/instance/all` with header `apikey: {{adminApiKey}}`

  - **Fetch Instance**: Get a single instance by ID from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to fetch
    - Sends `GET` to `{{baseUrl}}/instance/info/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Delete Instance**: Delete an instance from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to delete
    - Sends `DELETE` to `{{baseUrl}}/instance/delete/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Delete Proxy**: Delete proxy for an instance from EvoGo
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID for the proxy to delete
    - Sends `DELETE` to `{{baseUrl}}/instance/proxy/{{instanceId}}` with header `apikey: {{adminApiKey}}`

  - **Instance Connect**: Connect an instance to EvoGo
    - **ApiKey • Instance** (required): Instance API key sent in the `apikey` header
    - **Subscribe** (optional): Events to subscribe to - MESSAGE, READ_RECEIPT, PRESENCE, etc. or ALL (default: ALL)
    - **Additional Fields** (optional): Webhook URL, WebSocket, RabbitMQ, NATS enable/disable
    - Sends `POST` to `{{baseUrl}}/instance/connect` with header `apikey: {{instanceApiKey}}`

  - **Get Logs**: Get logs for an instance
    - **ApiKey • Global** (required): API key sent in the `apikey` header
    - **Instance ID** (required): Instance ID to get logs from
    - **Start Date** (optional): Start date filter (date picker)
    - **End Date** (optional): End date filter (date picker)
    - **Level** (optional): Log levels to filter - DEBUG, WARN, ERROR, INFO (multi-select, all selected by default)
    - **Limit** (optional): Max log entries to return (default: 50)
    - Sends `GET` to `{{baseUrl}}/instance/logs/{{instanceId}}?start_date=...&end_date=...&level=...&limit=...`

  ### Resource: Send Message

  All Send Message operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **Send Text**: Send a text message to a phone number
    - **Number** (required), **Text** (required), **Delay (Ms)** (optional), **Additional Fields** (Mentions, Reply)
    - Sends `POST` to `{{baseUrl}}/send/text`

  - **Send Link**: Send a message with link preview
    - **Number** (required), **Text** (required), **Delay (Ms)** (optional), **Additional Fields** (Mentions, Reply)
    - Sends `POST` to `{{baseUrl}}/send/link`

  - **Send Media URL**: Send image, video or document from URL
    - **Number** (required), **Media URL** (required), **Caption**, **Filename**, **Type** (image/video/document), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/media`

  - **Send Poll**: Send a poll to a phone number
    - **Number** (required), **Question** (required), **Max Answer**, **Options** (array), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/poll`

  - **Send Sticker**: Send a sticker from URL
    - **Number** (required), **Sticker URL** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/sticker`

  - **Send Location**: Send a location to a phone number
    - **Number** (required), **Name** (required), **Address**, **Latitude** (required), **Longitude** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/location`

  - **Send Contact**: Send a contact (vcard) to a phone number
    - **Number** (required), **Full Name** (required), **Organization**, **Phone** (required), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/contact`

  - **Send Button**: Send a message with buttons (PIX, reply, copy, URL, call)
    - **Number** (required), **Title** (required), **Description**, **Footer**, **Buttons** (required: add buttons, choose Type — PIX, Reply, Copy, URL, Call — and fill the fields for each type), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/button`

  - **Send List**: Send a message with sections and rows (list)
    - **Number** (required), **Title** (required), **Button Text** (required), **Description**, **Footer Text**, **Sections** (with rows: title, description, rowId), **Delay (Ms)** (optional), **Additional Fields**
    - Sends `POST` to `{{baseUrl}}/send/list`

  - **Send Status**: Publish a status/story (text, image, video or audio)
    - **Type** (text/image/video/audio), **Content** (required), **Caption** (for image/video), **Background Color**, **Font** (for text), **Send to All Contacts**, **Status JID List** (when not all contacts). No number or mentions/reply.
    - Sends `POST` to `{{baseUrl}}/send/status`

  ### Resource: User

  All User operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **User Info**: Get info for one or more numbers
    - **Numbers** (required: phone numbers with country code, separated by commas)
    - Sends `POST` to `{{baseUrl}}/user/info`

  - **Check User**: Check if one or more numbers exist
    - **Numbers** (required: phone numbers separated by commas)
    - Sends `POST` to `{{baseUrl}}/user/check`

  - **Get Avatar**: Get avatar for a number
    - **Number** (required), **Preview** (optional, default false)
    - Sends `POST` to `{{baseUrl}}/user/avatar`

  - **Get Contacts**: Get all contacts
    - No parameters. Sends `GET` to `{{baseUrl}}/user/contacts`

  - **Get Privacy Settings**: Get privacy settings
    - No parameters. Sends `GET` to `{{baseUrl}}/user/privacy`

  - **Block Contact**: Block a number
    - **Number** (required). Sends `POST` to `{{baseUrl}}/user/block`

  - **UnBlock Contact**: Unblock a number
    - **Number** (required). Sends `POST` to `{{baseUrl}}/user/unblock`

  - **Block List**: Get list of blocked numbers
    - No parameters. Sends `GET` to `{{baseUrl}}/user/blocklist`

  - **Set Profile Picture**: Set profile picture from image URL
    - **Image URL** (required). Sends `POST` to `{{baseUrl}}/user/profile`

  ### Resource: Message

  All Message operations use **ApiKey • Instance** (required), sent in the `apikey` header.

  - **React to Message**: Send a reaction (emoji) to a message
    - **Number** (required), **Message ID** (required), **Reaction** (required, emoji). Sends `POST` to `{{baseUrl}}/message/react`

  - **Send Presence**: Send typing/recording presence
    - **Number** (required), **State** (composing/paused), **Is Audio** (boolean). Sends `POST` to `{{baseUrl}}/message/presence`

  - **Mark as Read**: Mark one or more messages as read
    - **Number** (required), **Message IDs** (required, separated by commas). Sends `POST` to `{{baseUrl}}/message/markread`

  - **Download Media**: Download media by URL, directPath or mediaKey
    - **Media Type**: Image, Video, Document ou Audio (imageMessage, videoMessage, documentMessage, audioMessage)
    - **Source**: URL, Direct Path ou Media Key
    - Se **URL**: campo **URL** (obrigatório)
    - Se **Direct Path**: campo **Direct Path** (obrigatório)
    - Se **Media Key**: **Media Key** (obrigatório), **File Enc SHA256**, **File SHA256**, **File Length**
    - **Mimetype** (opcional) em qualquer caso
    - Envia `POST` para `{{baseUrl}}/message/downloadmedia`

  - **Get Message Status**: Get status of a message
    - **Message ID** (required). Sends `POST` to `{{baseUrl}}/message/status`

  - **Delete Message**: Delete a message from chat
    - **Chat** (required, JID), **Message ID** (required). Sends `POST` to `{{baseUrl}}/message/delete`

  - **Edit Message**: Edit message text
    - **Chat** (required, JID), **Message ID** (required), **Message** (required, new text). Sends `POST` to `{{baseUrl}}/message/edit`

  ### Resource: Chat

  Uso de **ApiKey • Instance** para todas as operações.

  - **Pin Chat**: Fixar chat no topo
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/pin`

  - **UnPin Chat**: Desfixar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unpin`

  - **Archive Chat**: Arquivar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/archive`

  - **Unarchive Chat**: Desarquivar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unarchive`

  - **Mute Chat**: Silenciar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/mute`

  - **Unmute Chat**: Dessilenciar chat
    - **Chat** (obrigatório, JID). Envia `POST` para `{{baseUrl}}/chat/unmute`

  - **History Sync Request**: Solicitar sincronização de histórico
    - **Chat** (obrigatório, JID do grupo/contato), **ID** (obrigatório, ID da mensagem), **Is From Me** (boolean), **Is Group** (boolean), **Timestamp** (obrigatório), **Count** (número). Envia `POST` para `{{baseUrl}}/chat/history-sync`

  ### Resource: Group

  Uso de **ApiKey • Instance** para todas as operações.

  - **List Groups**: Listar grupos. Sem parâmetros. Envia `GET` para `{{baseUrl}}/group/list`

  - **Get Group Info**: Obter informações do grupo
    - **Group JID** (obrigatório). Envia `POST` para `{{baseUrl}}/group/info`

  - **Get Group Invite Link**: Obter link de convite do grupo
    - **Group JID** (obrigatório). Envia `POST` para `{{baseUrl}}/group/invitelink`

  - **Set Group Picture**: Definir foto do grupo (URL)
    - **Group JID** (obrigatório), **Image** (obrigatório, URL). Envia `POST` para `{{baseUrl}}/group/photo`

  - **Set Group Name**: Definir nome do grupo
    - **Group JID** (obrigatório), **Name** (obrigatório). Envia `POST` para `{{baseUrl}}/group/name`

  - **Create Group**: Criar grupo
    - **Group Name** (obrigatório), **Participants** (obrigatório, números separados por vírgula). Envia `POST` para `{{baseUrl}}/group/create`

  - **Update Participant**: Adicionar, remover, promover ou rebaixar participantes
    - **Group JID** (obrigatório), **Participants** (obrigatório, números separados por vírgula), **Action** (add, remove, promote, demote). Envia `POST` para `{{baseUrl}}/group/participant`

  - **Get My Groups**: Listar meus grupos. Sem parâmetros. Envia `GET` para `{{baseUrl}}/group/myall`

  - **Join Group Link**: Entrar em grupo por link
    - **Code** (obrigatório, código do link de convite). Envia `POST` para `{{baseUrl}}/group/join`

  ### Resource: Community

  Uso de **ApiKey • Instance** para todas as operações.

  - **Create Community**: Criar community
    - **Community Name** (obrigatório). Envia `POST` para `{{baseUrl}}/community/create`

  - **Add Group to Community**: Adicionar grupo à community
    - **Community JID** (obrigatório), **Group JID** (obrigatório, um ou mais JIDs separados por vírgula). Envia `POST` para `{{baseUrl}}/community/add`

  - **Remove Group from Community**: Remover grupo da community
    - **Community JID** (obrigatório), **Group JID** (obrigatório, um ou mais JIDs separados por vírgula). Envia `POST` para `{{baseUrl}}/community/remove`

  ### Resource: Label

  Uso de **ApiKey • Instance** para todas as operações.

  - **Add Label on Chat**: Adicionar label em chat
    - **JID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/label/chat`

  - **Remove Label on Chat**: Remover label de chat
    - **JID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/unlabel/chat`

  - **Add Label on Message**: Adicionar label em mensagem
    - **JID** (obrigatório), **Message ID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/label/message`

  - **Remove Label on Message**: Remover label de mensagem
    - **JID** (obrigatório), **Message ID** (obrigatório), **Label ID** (obrigatório). Envia `POST` para `{{baseUrl}}/unlabel/message`

  - **Edit Label**: Editar label (nome, cor, deleted)
    - **Label ID** (obrigatório), **Name**, **Color** (número), **Deleted** (boolean). Envia `POST` para `{{baseUrl}}/label/edit`

  - **List Labels**: Listar labels. Sem parâmetros. Envia `GET` para `{{baseUrl}}/label/list`

  ### Resource: Newsletter

  Uso de **ApiKey • Instance** para todas as operações.

  - **Create Newsletter**: Criar newsletter
    - **Name** (obrigatório), **Description** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/create`

  - **List Newsletters**: Listar newsletters. Sem parâmetros. Envia `GET` para `{{baseUrl}}/newsletter/list`

  - **Get Newsletter Info**: Obter informações do newsletter
    - **JID** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/info`

  - **Get Newsletter Link**: Obter link do newsletter
    - **Key** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/link`

  - **Subscribe on Newsletter**: Inscrever-se em newsletter
    - **JID** (obrigatório). Envia `POST` para `{{baseUrl}}/newsletter/subscribe`

  - **Get Newsletter Messages**: Obter mensagens do newsletter
    - **JID** (obrigatório), **Count** (número, default 1). Envia `POST` para `{{baseUrl}}/newsletter/messages`

  ## Compatibility

  - **Minimum n8n version**: 1.0
  - Tested with n8n 1.x

  ## Development

  ### Timeout when starting (`npm run dev`)

  If `npm run dev` fails with "n8n startup timeout after 120 seconds" (common on Windows on first run), use external mode:

  **Terminal 1** – link the node and watch:
  ```bash
  npm run dev:external
  ```

  **Terminal 2** – start n8n manually:
  ```powershell
  $env:N8N_USER_FOLDER = "$env:USERPROFILE\.n8n-node-cli"
  $env:N8N_DEV_RELOAD = "true"
  cd $env:N8N_USER_FOLDER
  npx -y n8n@latest
  ```

  Open n8n at http://localhost:5678.

  ### Alternative: pre-install n8n

  To try to avoid the timeout next time:
  ```powershell
  cd $env:USERPROFILE\.n8n-node-cli
  npx -y n8n@latest --version
  ```
  This downloads n8n in advance; then `npm run dev` tends to start faster.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Project repository](https://github.com/Administrador/n8n-nodes-evo-go)

  ## Version history

  ### 0.1.0
  - Initial EvoGo node release
  - Basic node with Instance resource and Create Instance operation

ai_documentation_summary:
  {"purpose":"A n8n community node that integrates with EvoGo's REST API to manage WhatsApp instances and send various types of messages.","capabilities":["Create, fetch, and delete EvoGo instances","Manage instance proxies","Connect instances to EvoGo with event subscriptions","Retrieve instance logs with date and level filtering","Send text messages","Send messages with link previews","Send media (images, videos, documents) by URL","Send polls with options","Send stickers from URLs","Send location data"],"authentication":"API Key required (Global Admin Key and Instance-specific Key)","commonUseCases":["Automated WhatsApp messaging workflows","Multi-instance WhatsApp account management","Sending promotional messages with media and interactive elements","Monitoring instance health and logs"],"limitations":["Read-only documentation truncated (Send List operation details incomplete)","Requires separate API keys for global admin operations and instance-specific operations"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @tpsdev-ai/n8n-nodes-flair.flair
package_name: @tpsdev-ai/n8n-nodes-flair
display_name: flair
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: GitHub Actions
author_github_url: git+https://github.com/tpsdev-ai/flair.git
npm_package_name: @tpsdev-ai/n8n-nodes-flair
npm_version: 0.21.0
community_fetched_at: 2026-07-08T22:00:53.099Z
ai_summary_generated_at: 2026-07-09 06:09:49
description:
  n8n community node — use Flair as your AI Agent's memory backend. Includes FlairChatMemory (Memory port) and FlairSearch (Tool port).

npm_readme:
  # @tpsdev-ai/n8n-nodes-flair

  n8n community node — use [Flair](https://github.com/tpsdev-ai/flair) as your AI Agent's memory backend.

  ## Nodes

  - **Flair Chat Memory** — n8n AI Agent Memory port. Stores chat history in Flair, replayable across runs and readable from Claude Code, OpenClaw, and any other Flair client. LangChain `BufferWindowMemory` under the hood.
  - **Flair Search** — n8n AI Agent Tool port. Two operations:
    - *Semantic Search* — finds memories ranked by similarity to a natural-language query.
    - *Get By Subject* — lists memories filtered by subject, ordered by recency.
    - *Get By Tag* — coming in a follow-up once `flair-client.memory.list` exposes a `tags` filter (tracked in the [spec](https://github.com/tpsdev-ai/flair/blob/main/specs/N8N-NODE-q3qf.md) §6).

  ## Installation

  ```sh
  npm install @tpsdev-ai/n8n-nodes-flair
  ```

  Then restart your n8n instance. The Flair API credential will appear under **Credentials** → **New** → **Flair API**.

  Full setup walkthrough, subject/sessionId patterns, and security guidance are in [`docs/n8n.md`](https://github.com/tpsdev-ai/flair/blob/main/docs/n8n.md) in the Flair repo.

  ## Credential setup

  1. **Base URL** — your Flair instance, e.g. `http://localhost:19926`
  2. **Agent ID** — the logical identity that will own memories written from this n8n workspace. Workflows that share an Agent ID share memory ownership.
  3. **Admin Password** — your Flair (Harper) admin password. **This grants read/write access to the entire instance.** For production with untrusted workflow inputs, wait for Ed25519 per-agent auth (planned).

  The credential test hits `/Memory` (auth-required) — you'll know it works when the test succeeds.

  ## License

  Apache-2.0

ai_documentation_summary:
  {"purpose":"Provides n8n integration with Flair as an AI agent memory backend. It includes a memory node for storing/replaying chat history and a tool node for searching and retrieving memories.","capabilities":["Flair Chat Memory: stores chat history in Flair for AI Agent memory use","Replayable memory across runs","Readable by other Flair clients such as Claude Code and OpenClaw","Flair Search: semantic search over memories ranked by similarity to a natural-language query","Get memories by subject, ordered by recency","Planned support for getting memories by tag (mentioned as coming later)"],"authentication":"Flair API credential with Base URL, Agent ID, and Admin Password; the credential test authenticates against /Memory and requires admin access","commonUseCases":["Persisting an AI agent's conversation history across workflow runs","Searching prior memories semantically during agent execution","Retrieving memories for a specific subject to provide context","Sharing memory ownership across workflows using the same Agent ID"],"limitations":["Get By Tag is not available yet; it depends on a future flair-client.memory.list tags filter","Admin Password grants read/write access to the entire instance, so it is risky for untrusted workflow inputs","Ed25519 per-agent auth is planned but not yet available"],"relatedNodes":["n8n AI Agent Memory port","n8n AI Agent Tool port","Flair API credential"]}


node_type: n8n-nodes-firecrawl.firecrawl
package_name: n8n-nodes-firecrawl
display_name: firecrawl
description: FireCrawl nodes for n8n
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-07-08 22:00:53
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-firecrawl.git
npm_package_name: n8n-nodes-firecrawl
npm_version: 0.3.0
community_fetched_at: 2026-07-08T22:00:53.100Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-firecrawl
  ![](./firecrawl.png)

  This is an n8n community node. it lets you use Firecrawl in your n8n workflows.

  Firecrawl is a web scraping tool that allows you to extract data from websites and APIs.

  https://www.firecrawl.dev/

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)   
  [Compatibility](#compatibility)  
  [Usage](#usage) 
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Scrape

  Firecrawl converts web pages into markdown, ideal for LLM applications.

  - It manages complexities: proxies, caching, rate limits, js-blocked content
  - Handles dynamic content: dynamic websites, js-rendered sites, PDFs, images
  - Outputs clean markdown, structured data, screenshots or html.

  ### Crawl

  Firecrawl can recursively search through a urls subdomains, and gather the content

  - Firecrawl thoroughly crawls websites, ensuring comprehensive data extraction while bypassing any web blocker mechanisms. Here’s how it works:

  - URL Analysis: Begins with a specified URL, identifying links by looking at the sitemap and then crawling the website. If no sitemap is found, it will crawl the website following the links.

  - Recursive Traversal: Recursively follows each link to uncover all subpages.

  - Content Scraping: Gathers content from every visited page while handling any complexities like JavaScript rendering or rate limits.

  - Result Compilation: Converts collected data into clean markdown or structured output, perfect for LLM processing or any other task.

  This method guarantees an exhaustive crawl and data collection from any starting URL.

  ### Map

  The easiest way to go from a single url to a map of the entire website. This is extremely useful for:

  - When you need to prompt the end-user to choose which links to scrape
  - Need to quickly know the links on a website
  - Need to scrape pages of a website that are related to a specific topic (use the search parameter)
  - Only need to scrape specific pages of a website

  ## Credentials

  **FireCrawl API**

  The FireCrawl API is the only authentication method available for this node. You can find your API key in the FireCrawl dashboard.


  ## Compatibility

  This node has been tested with the following versions of N8N.

  - N8N 1.57.0

  ## Usage

  - Install the Firecrawl node
  - Enter your Firecrawl API key
  - Choose the operation you want to perform

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Firecrawl API documentation](https://docs.firecrawl.dev/)

ai_documentation_summary:
  {"purpose":"A community node that enables Firecrawl web scraping and crawling capabilities within n8n workflows for extracting data from websites and APIs.","capabilities":["Scrape single URLs to markdown, structured data, screenshots, or HTML","Crawl entire websites recursively with comprehensive data extraction","Map websites to generate a link structure for user selection","Handle dynamic content including JavaScript-rendered sites and PDFs","Manage proxies, caching, and rate limits automatically","Bypass web blocker mechanisms"],"authentication":"API key required (FireCrawl API key from dashboard)","commonUseCases":["Extracting website content for LLM applications","Building knowledge bases from web sources","Mapping website structures for navigation or scraping","Handling complex or JavaScript-heavy websites"],"limitations":["Community node (not official n8n node)","Requires external FireCrawl API key","Tested only on n8n 1.57.0"],"relatedNodes":["n8n-nodes-firecrawl.firecrawlScrape","n8n-nodes-firecrawl.firecrawlCrawl","n8n-nodes-firecrawl.firecrawlMap"]}


node_type: n8n-nodes-ticktick.tickTick
package_name: n8n-nodes-ticktick
display_name: TickTick
description: Interact with TickTick tasks and projects
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: hansdoe
author_github_url: https://github.com/hansdoebel/
npm_package_name: n8n-nodes-ticktick
npm_version: 2.2.2
community_fetched_at: 2026-07-14T14:40:33.064Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Focus",
          "value": "focus"
        },
        {
          "name": "Habit",
          "value": "habit"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Project Group",
          "value": "projectGroup"
        },
        {
          "name": "Sync",
          "value": "sync"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Assign",
          "value": "assign",
          "action": "Assign a task to a user",
          "description": "Assign a task to a user (V2 API only)"
        },
        {
          "name": "Complete",
          "value": "complete",
          "action": "Complete a task"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task"
        },
        {
          "name": "List All",
          "value": "listAll",
          "action": "List all tasks",
          "description": "List all tasks (V2 API only)"
        },
        {
          "name": "List Completed",
          "value": "listCompleted",
          "action": "List completed tasks",
          "description": "List completed tasks (V2 API only)"
        },
        {
          "name": "List Deleted",
          "value": "listDeleted",
          "action": "List deleted tasks",
          "description": "List deleted tasks (V2 API only)"
        },
        {
          "name": "Move",
          "value": "move",
          "action": "Move a task",
          "description": "Move a task to another project (V2 API only)"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search tasks",
          "description": "Search tasks by keyword (V2 API only)"
        },
        {
          "name": "Set Parent",
          "value": "setParent",
          "action": "Set parent task",
          "description": "Set parent task (V2 API only)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get users in a project",
          "description": "Get users in a shared project (V2 API only)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a tag",
          "description": "Create a new tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a tag",
          "description": "Delete a tag"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all tags",
          "description": "Get all tags"
        },
        {
          "name": "Merge",
          "value": "merge",
          "action": "Merge tags",
          "description": "Merge one tag into another"
        },
        {
          "name": "Rename",
          "value": "rename",
          "action": "Rename a tag",
          "description": "Rename a tag"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a tag",
          "description": "Update a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Archive",
          "value": "archive",
          "action": "Archive a habit",
          "description": "Archive a habit"
        },
        {
          "name": "Check In",
          "value": "checkin",
          "action": "Check in a habit",
          "description": "Record a habit check-in"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a habit",
          "description": "Create a new habit"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a habit",
          "description": "Delete a habit"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a habit",
          "description": "Get a habit by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all habits",
          "description": "Get all habits"
        },
        {
          "name": "Unarchive",
          "value": "unarchive",
          "action": "Unarchive a habit",
          "description": "Unarchive a habit"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a habit",
          "description": "Update a habit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "habit"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getHeatmap",
      "options": [
        {
          "name": "Get Distribution",
          "value": "getDistribution",
          "action": "Get focus distribution",
          "description": "Get focus time distribution by tag"
        },
        {
          "name": "Get Heatmap",
          "value": "getHeatmap",
          "action": "Get focus heatmap",
          "description": "Get focus/pomodoro heatmap data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "focus"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project group",
          "description": "Create a new project group (folder)"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project group",
          "description": "Delete a project group"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all project groups",
          "description": "Get all project groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project group",
          "description": "Update a project group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projectGroup"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProfile",
      "options": [
        {
          "name": "Get Preferences",
          "value": "getPreferences",
          "action": "Get user preferences",
          "description": "Get user preferences and settings"
        },
        {
          "name": "Get Profile",
          "value": "getProfile",
          "action": "Get user profile",
          "description": "Get the user profile"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get user status",
          "description": "Get user subscription status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "syncAll",
      "options": [
        {
          "name": "Sync All",
          "value": "syncAll",
          "action": "Sync all data",
          "description": "Get all user data including projects, tasks, and more"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sync"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Assign",
      "value": "assign",
      "action": "Assign a task to a user",
      "description": "Assign a task to a user (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Complete",
      "value": "complete",
      "action": "Complete a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "resource": "task"
    },
    {
      "name": "List All",
      "value": "listAll",
      "action": "List all tasks",
      "description": "List all tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "List Completed",
      "value": "listCompleted",
      "action": "List completed tasks",
      "description": "List completed tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "List Deleted",
      "value": "listDeleted",
      "action": "List deleted tasks",
      "description": "List deleted tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Move",
      "value": "move",
      "action": "Move a task",
      "description": "Move a task to another project (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search tasks",
      "description": "Search tasks by keyword (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Set Parent",
      "value": "setParent",
      "action": "Set parent task",
      "description": "Set parent task (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project",
      "resource": "project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project",
      "resource": "project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "resource": "project"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get users in a project",
      "description": "Get users in a shared project (V2 API only)",
      "resource": "project"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a tag",
      "description": "Create a new tag",
      "resource": "tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a tag",
      "description": "Delete a tag",
      "resource": "tag"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all tags",
      "description": "Get all tags",
      "resource": "tag"
    },
    {
      "name": "Merge",
      "value": "merge",
      "action": "Merge tags",
      "description": "Merge one tag into another",
      "resource": "tag"
    },
    {
      "name": "Rename",
      "value": "rename",
      "action": "Rename a tag",
      "description": "Rename a tag",
      "resource": "tag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a tag",
      "description": "Update a tag",
      "resource": "tag"
    },
    {
      "name": "Archive",
      "value": "archive",
      "action": "Archive a habit",
      "description": "Archive a habit",
      "resource": "habit"
    },
    {
      "name": "Check In",
      "value": "checkin",
      "action": "Check in a habit",
      "description": "Record a habit check-in",
      "resource": "habit"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a habit",
      "description": "Create a new habit",
      "resource": "habit"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a habit",
      "description": "Delete a habit",
      "resource": "habit"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a habit",
      "description": "Get a habit by ID",
      "resource": "habit"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all habits",
      "description": "Get all habits",
      "resource": "habit"
    },
    {
      "name": "Unarchive",
      "value": "unarchive",
      "action": "Unarchive a habit",
      "description": "Unarchive a habit",
      "resource": "habit"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a habit",
      "description": "Update a habit",
      "resource": "habit"
    },
    {
      "name": "Get Distribution",
      "value": "getDistribution",
      "action": "Get focus distribution",
      "description": "Get focus time distribution by tag",
      "resource": "focus"
    },
    {
      "name": "Get Heatmap",
      "value": "getHeatmap",
      "action": "Get focus heatmap",
      "description": "Get focus/pomodoro heatmap data",
      "resource": "focus"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project group",
      "description": "Create a new project group (folder)",
      "resource": "projectGroup"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project group",
      "description": "Delete a project group",
      "resource": "projectGroup"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all project groups",
      "description": "Get all project groups",
      "resource": "projectGroup"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project group",
      "description": "Update a project group",
      "resource": "projectGroup"
    },
    {
      "name": "Get Preferences",
      "value": "getPreferences",
      "action": "Get user preferences",
      "description": "Get user preferences and settings",
      "resource": "user"
    },
    {
      "name": "Get Profile",
      "value": "getProfile",
      "action": "Get user profile",
      "description": "Get the user profile",
      "resource": "user"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get user status",
      "description": "Get user subscription status",
      "resource": "user"
    },
    {
      "name": "Sync All",
      "value": "syncAll",
      "action": "Sync all data",
      "description": "Get all user data including projects, tasks, and more",
      "resource": "sync"
    }
  ]

npm_readme:
  <h1 align="center">
    <br>
    n8n-nodes-ticktick
    <br>
  </h1>

  <p align="center">
  	<img alt="NPM Version" src="https://img.shields.io/npm/v/n8n-nodes-ticktick">
  	<img alt="GitHub License" src="https://img.shields.io/github/license/hansdoebel/n8n-nodes-ticktick">
  	<img alt="NPM Downloads" src="https://img.shields.io/npm/dm/n8n-nodes-ticktick">
  	<img alt="NPM Last Update" src="https://img.shields.io/npm/last-update/n8n-nodes-ticktick">
  	<img alt="Static Badge" src="https://img.shields.io/badge/n8n-2.21.7-EA4B71?logo=n8n">
  </p>

  <p align="center">
    <a href="#installation">Installation</a> |
    <a href="#credentials">Credentials</a> |
    <a href="#resources">Resources</a> |
    <a href="#development">Development</a> |
    <a href="#contributors">Contributors</a> |
    <a href="#license">License</a>
  </p>

  ---

  An n8n community node for integrating [TickTick](https://ticktick.com) with your workflows to manage tasks, projects, tags, habits, focus time, and more.

  ## Installation

  1. Create a new workflow or open an existing one
  2. Open the nodes panel by selecting **+** or pressing **N**
  3. Search for **TickTick**
  4. Select **Install** to install the node for your instance

  ## Credentials

  This node supports three authentication methods:

  1. **TickTick Session API (V2)** -- Enter your TickTick email and password in n8n. Provides access to all features including V2 API operations. Session tokens are managed automatically.
  2. **TickTick API Token (V1)** -- Go to TickTick Account Settings, then API Token, then Manage. Copy the token and paste it into a new TickTick API Token credential in n8n.
  3. **TickTick OAuth2 (V1)** -- Visit [developer.ticktick.com](https://developer.ticktick.com/), go to Manage Apps, create a new app, copy the Client ID and Client Secret, and paste them into a new TickTick OAuth2 API credential in n8n.

  ## Resources

  <details>
  <summary><strong>Task</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Create | Create a new task with optional subtasks |
  | Get | Get a specific task by ID |
  | Update | Update task properties |
  | Complete | Mark a task as complete |
  | Delete | Delete a task |
  | Assign | Assign task to a user (shared projects only) |
  | List All | List all tasks across projects with filtering |
  | List Completed | Get completed tasks in date range |
  | List Deleted | Get deleted/trashed tasks |
  | Move | Move task to different project |
  | Search | Search tasks by keyword across all projects (V2 API only) |
  | Set Parent | Set a parent task (create subtask relationship) |

  </details>

  <details>
  <summary><strong>Project</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Create | Create a new project |
  | Get | Get all projects, a specific project, or project with tasks and columns |
  | Update | Update project properties |
  | Delete | Delete a project |
  | Get Users | Get users in a shared/collaborative project |
  | List Closed | Get all closed projects |

  </details>

  <details>
  <summary><strong>Tag</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Create | Create a new tag |
  | Update | Update existing tag |
  | Delete | Delete a tag |
  | List | List all tags |
  | Rename | Rename a tag |
  | Merge | Merge tag into another |

  </details>

  <details>
  <summary><strong>Habit</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Create | Create a new habit |
  | Get | Get a specific habit |
  | Update | Update existing habit |
  | Archive | Archive a habit |
  | Unarchive | Unarchive a habit |
  | Delete | Delete a habit |
  | List | List all habits |
  | Checkin | Record habit check-in |

  </details>

  <details>
  <summary><strong>Focus</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Get Heatmap | Get focus heatmap data for date range |
  | Get Distribution | Get focus time distribution for date range |

  </details>

  <details>
  <summary><strong>Project Group</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Create | Create a project group |
  | Update | Update existing group |
  | Delete | Delete a project group |
  | List | List all project groups |

  </details>

  <details>
  <summary><strong>User</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Get Profile | Get user profile information |
  | Get Status | Get user status |
  | Get Preferences | Get user preferences |

  </details>

  <details>
  <summary><strong>Sync</strong></summary>

  | Operation | Description |
  | --------- | ----------- |
  | Sync All | Get all data (tasks, projects, tags, habits, etc.) |

  </details>

  ## Development

  ```bash
  git clone https://github.com/hansdoebel/n8n-nodes-ticktick.git
  cd n8n-nodes-ticktick
  npm install
  npm run build
  npm run lint
  ```

  ## Contributors

  Contributions are welcome! Please open an [issue](https://github.com/hansdoebel/n8n-nodes-ticktick/issues) or [pull request](https://github.com/hansdoebel/n8n-nodes-ticktick/pulls).

  <p align="left">
      <a href="https://github.com/mrozekadam"><img src="https://avatars.githubusercontent.com/u/56890953?v=4&s=48" width="48" height="48" alt="mrozekadam" title="mrozekadam"/></a><a href="https://github.com/kazhuravlev"><img src="https://avatars.githubusercontent.com/u/7666955?v=4&s=48" width="48" height="48" alt="kazhuravlev" title="kazhuravlev"/></a>
  </p>

  ## License

  [MIT](LICENSE.md)

  <p align="center">
    <a href="https://github.com/hansdoebel/n8n-nodes-ticktick">GitHub</a> |
    <a href="https://github.com/hansdoebel/n8n-nodes-ticktick/issues">Issues</a> |
    <a href="https://developer.ticktick.com">TickTick API Docs</a>
  </p>

ai_documentation_summary:
  {"purpose":"A community n8n node that enables workflow automation for managing TickTick productivity tasks, projects, tags, habits, and user data.","capabilities":["Create, update, complete, delete, and move tasks","Assign tasks and set parent-child relationships","Manage projects and shared collaborators","Organize projects into groups","Create, rename, and merge tags","Track habits with check-ins","Retrieve focus time heatmaps and distribution","Get user profile, status, and preferences","Perform full data synchronization"],"authentication":"API key required (via Credentials configuration)","commonUseCases":["Automating daily task completion and status updates","Syncing external calendar events to TickTick projects","Managing habit tracking and streaks","Organizing work into project groups with tags","Retrieving user productivity analytics"],"limitations":["Community-maintained node (may have less official support than official n8n nodes)","V2 features indicated for some capabilities (tags, habits, focus, user, sync) suggesting potential API versioning differences"],"relatedNodes":["n8n-nodes-ticktick","n8n-nodes-github","n8n-nodes-google-calendar","n8n-nodes-automation"]}


