npm package: @rtenorioh/n8n-nodes-pressticket
Description: n8n node para conectar com Press Ticket®
Author: Robson Tenorio
Latest version: 1.0.0

# @rtenorioh/n8n-nodes-pressticket

<div align="center">
   <a href="https://www.npmjs.com/package/@rtenorioh/n8n-nodes-pressticket">
      <img src="https://img.shields.io/npm/dt/@rtenorioh/n8n-nodes-pressticket.svg" alt="Total de Downloads">
   </a>
   <a href="https://www.npmjs.com/package/@rtenorioh/n8n-nodes-pressticket">
      <img src="https://img.shields.io/npm/v/@rtenorioh/n8n-nodes-pressticket.svg" alt="Versão Atual">
   </a>
   <a href="https://github.com/rtenorioh/n8n-nodes-pressticket/blob/main/LICENSE">
      <img src="https://img.shields.io/github/license/rtenorioh/n8n-nodes-pressticket.svg" alt="Licença">
   </a>
   <br/>
   <a href="https://t.me/PressTicket">
      <img src="https://img.shields.io/badge/Telegram-Press%20Ticket%C2%AE-blue.svg?logo=telegram" alt="Grupo do Telegram">
   </a>
   <a href="https://chat.whatsapp.com/GU2XpGxLUfXByoJRngEBbi">
      <img src="https://img.shields.io/badge/WhatsApp-Comunidade%20Press%20Ticket%C2%AE-25D366?logo=whatsapp" alt="Comunidade no WhatsApp">
   </a>
</div>

Este pacote contém um nó personalizado para [n8n](https://n8n.io/) que permite integração com a API do [Press Ticket®](https://pressticket.com.br), uma plataforma de atendimento via WhatsApp.

> **Importante**: Este nó requer a versão v1.14.0 ou superior do [Press Ticket®](https://github.com/rtenorioh/Press-Ticket).

## Instalação

### Instalação Global (Recomendado para n8n Self-Hosted)

```bash
npm install -g @rtenorioh/n8n-nodes-pressticket
```

### Instalação Local (Para desenvolvimento)

1. Clone este repositório
2. Navegue até o diretório do projeto
3. Execute os comandos:

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

## Configuração

### Credenciais

Para utilizar o nó Press Ticket®, você precisa configurar as credenciais de acesso à API:

1. No n8n, vá para **Configurações** > **Credenciais** > **Adicionar nova credencial**
2. Selecione o tipo "Press Ticket® API"
3. Preencha os campos:
   - **API URL**: URL base da API (ex: https://apiback.pressticket.com.br)
   - **API Token**: Token de acesso à API do Press Ticket®

### Permissões Necessárias

O token de API deve ter as seguintes permissões, dependendo das operações que você deseja realizar:

<details>
<summary><b>Mensagem</b></summary>

- `create:messages`: Para enviar mensagens de texto e mídia
- `read:messages`: Para obter mídia de mensagens
</details>

<details>
<summary><b>Contato</b></summary>

- `read:contacts`: Para listar e obter contatos
- `create:contacts`: Para criar contatos
- `update:contacts`: Para atualizar contatos
- `delete:contacts`: Para excluir contatos
</details>

<details>
<summary><b>Ticket</b></summary>

- `read:tickets`: Para listar e obter tickets
- `create:tickets`: Para criar tickets
- `update:tickets`: Para atualizar tickets
- `delete:tickets`: Para excluir tickets
</details>

<details>
<summary><b>Setor</b></summary>

- `read:queue`: Para listar setores
- `create:queue`: Para criar setores
- `update:queue`: Para atualizar setores
- `delete:queue`: Para excluir setores
</details>

<details>
<summary><b>Tag</b></summary>

- `read:tags`: Para listar tags
- `create:tags`: Para criar tags
- `update:tags`: Para atualizar tags
- `delete:tags`: Para excluir tags
</details>

<details>
<summary><b>WhatsApp</b></summary>

- `read:whatsapp`: Para listar e obter conexões WhatsApp e QR Codes
- `create:whatsapp`: Para criar conexões WhatsApp
- `update:whatsapp`: Para atualizar conexões WhatsApp
- `delete:whatsapp`: Para excluir conexões WhatsApp
</details>

## Recursos e Operações

<details>
<summary><b>Mensagem</b></summary>

### Enviar Texto

Envia uma mensagem de texto para um número de WhatsApp.

**Parâmetros:**
- **Número do WhatsApp**: Número no formato internacional (ex: 5511999999999)
- **ID do Usuário**: ID do usuário que está enviando a mensagem
- **ID do Setor**: ID do setor
- **ID da Conexão WhatsApp**: ID da conexão do WhatsApp
- **Texto da Mensagem**: Conteúdo da mensagem a ser enviada

### Enviar Mídia

Envia uma mensagem com mídia (imagem, vídeo, áudio ou documento) para um número de WhatsApp.

**Parâmetros:**
- **Número do WhatsApp**: Número no formato internacional (ex: 5511999999999)
- **ID do Usuário**: ID do usuário que está enviando a mensagem
- **ID do Setor**: ID do setor
- **ID da Conexão WhatsApp**: ID da conexão do WhatsApp
- **Tipo de Mídia**: Imagem, Vídeo, Áudio ou Documento
- **Método de Entrada**: Escolha entre URL ou Arquivo Binário
  - **URL da Mídia**: URL pública da mídia a ser enviada (quando o método for URL)
  - **Propriedade Binária**: Nome da propriedade que contém os dados do arquivo (quando o método for Arquivo Binário)
- **Legenda**: Texto que acompanha a mídia (opcional para imagem, vídeo e documento)
</details>

<details>
<summary><b>Contato</b></summary>

### Listar

Lista todos os contatos cadastrados.

### Obter

Obtém detalhes de um contato específico.

**Parâmetros:**
- **ID do Contato**: Identificador único do contato

### Criar

Cria um novo contato.

**Parâmetros:**
- **Nome**: Nome do contato
- **Número**: Número do contato no formato internacional (ex: 5511999999999)
- **Email**: Email do contato (opcional)
- **Perfil de Foto URL**: URL da foto de perfil (opcional)

### Atualizar

Atualiza um contato existente.

**Parâmetros:**
- **ID do Contato**: Identificador único do contato
- **Nome**: Nome do contato
- **Número**: Número do contato no formato internacional (opcional)
- **Email**: Email do contato (opcional)
- **Perfil de Foto URL**: URL da foto de perfil (opcional)

### Excluir

Exclui um contato existente.

**Parâmetros:**
- **ID do Contato**: Identificador único do contato

### Atualizar Tags

Atualiza as tags associadas a um contato.

**Parâmetros:**
- **ID do Contato**: Identificador único do contato
- **IDs das Tags**: Lista de IDs das tags a serem associadas ao contato
</details>

<details>
<summary><b>Ticket</b></summary>

### Listar

Lista todos os tickets.

### Obter

Obtém detalhes de um ticket específico.

**Parâmetros:**
- **ID do Ticket**: Identificador único do ticket

### Obter Ticket Aberto do Contato

Obtém o ticket aberto de um contato específico.

**Parâmetros:**
- **ID do Contato**: Identificador único do contato

### Criar

Cria um novo ticket.

**Parâmetros:**
- **ID do Contato**: ID do contato para o qual o ticket será criado
- **Status**: Status do ticket (Aberto, Pendente ou Fechado)
- **ID do Setor**: ID do setor para o qual o ticket será atribuído (opcional)
- **ID do Usuário**: ID do usuário para o qual o ticket será atribuído (opcional)

### Atualizar

Atualiza um ticket existente.

**Parâmetros:**
- **ID do Ticket**: Identificador único do ticket
- **Status**: Status do ticket (Aberto, Pendente ou Fechado)
- **ID do Setor**: ID do setor para o qual o ticket será atribuído (opcional)
- **ID do Usuário**: ID do usuário para o qual o ticket será atribuído (opcional)
</details>

<details>
<summary><b>Setor</b></summary>

### Listar

Lista todos os setores cadastrados.
</details>

<details>
<summary><b>WhatsApp</b></summary>

### Listar

Lista todas as conexões WhatsApp cadastradas.

### Obter

Obtém detalhes de uma conexão WhatsApp específica.

**Parâmetros:**
- **ID do WhatsApp**: Identificador único da conexão WhatsApp

### Obter QR Code

Obtém o QR Code de uma conexão WhatsApp para escaneamento. O QR Code é retornado como uma string e também como uma imagem base64 que pode ser exibida diretamente.

**Parâmetros:**
- **ID do WhatsApp**: Identificador único da conexão WhatsApp

**Retorno:**
- **qrcode**: String do QR Code
- **qrcodeImage**: Imagem do QR Code em formato base64 (data:image/png;base64,...)
- **whatsappId**: ID da conexão WhatsApp
</details>

## Exemplos de Uso

### Envio de Mensagem de Texto

1. Adicione o nó "Press Ticket®" ao seu fluxo de trabalho
2. Selecione o recurso "Mensagem" e a operação "Enviar Texto"
3. Configure os parâmetros:
   - Número do WhatsApp: 5511999999999
   - ID do Usuário: 1
   - ID do Setor: 1
   - ID da Conexão WhatsApp: 1
   - Texto da Mensagem: "Olá, esta é uma mensagem de teste!"

### Criação de Ticket

1. Adicione o nó "Press Ticket®" ao seu fluxo de trabalho
2. Selecione o recurso "Ticket" e a operação "Criar"
3. Configure os parâmetros:
   - ID do Contato: 1
   - Status: "open"
   - ID do Setor: 1

### Obtenção de QR Code do WhatsApp

1. Adicione o nó "Press Ticket®" ao seu fluxo de trabalho
2. Selecione o recurso "WhatsApp" e a operação "Obter QR Code"
3. Configure os parâmetros:
   - ID do WhatsApp: 1
4. O nó retornará um objeto contendo:
   - qrcode: String do QR Code
   - qrcodeImage: Imagem do QR Code em formato base64 que pode ser exibida diretamente
   - whatsappId: ID da conexão WhatsApp

## Solução de Problemas

### Erro 403 (Forbidden)

Se você receber um erro 403 com a mensagem "Invalid token", verifique:

1. Se o token de API está correto
2. Se o token possui as permissões necessárias para a operação que está tentando realizar
3. Se os IDs de usuário, setor e conexão WhatsApp estão corretos

## Documentação

Além deste README, o projeto conta com os seguintes documentos:

- [Código de Conduta](CODE_OF_CONDUCT.md) - Diretrizes de comportamento para a comunidade
- [Guia de Contribuição](CONTRIBUTING.md) - Como contribuir com o projeto
- [Política de Segurança](SECURITY.md) - Como reportar vulnerabilidades

## Desenvolvimento

### Estrutura do Projeto

```
n8n-nodes-pressticket/
├── credentials/
│   └── PressTicketApi.credentials.ts
├── nodes/
│   └── PressTicket/
│       ├── PressTicket.node.ts
│       ├── PressTicket.node.json
│       └── pressTicket.svg
├── dist/
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── docker-compose.yml
├── gulpfile.js
├── index.js
├── LICENSE
├── package.json
├── README.md
├── SECURITY.md
└── tsconfig.json
```

### Compilação

Para compilar o projeto, execute:

```bash
npm run build
```

### Publicação

Para publicar uma nova versão do pacote no npm:

```bash
npm version patch
npm run build
npm publish
```

## Código de Conduta

Este projeto adota o [Código de Conduta](CODE_OF_CONDUCT.md) para garantir um ambiente acolhedor e inclusivo para todos os contribuidores e participantes. Por favor, leia-o antes de participar do projeto.

## Licença

MIT