Pluga Triggers API
The Triggers API from Pluga — 5 operation(s) for triggers.
The Triggers API from Pluga — 5 operation(s) for triggers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/pluga:pluga-triggers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Pluga Developers Triggers API
version: 1.0.0
description: 'Esta documentação é destinada a desenvolvedores que desejam integrar suas aplicações com a Pluga por meio da criação de uma API, seguindo os endpoints especificados a seguir.
Para que possamos cadastrar os dados do seu aplicativo, bem como suas respectivas Actions e Triggers em nosso banco de dados, é necessário enviar um arquivo JSON para o e-mail integrations@pluga.co, seguindo a estrutura descrita abaixo:
```json
{
"app": {
"id": "example_app",
"base_url": "https://api.example.com"
},
"actions": [
{ "id": "action1_key" },
{ "id": "action2_key" }
],
triggers: [
{ "id": "trigger1_key" },
{ "id": "trigger2_key" }
]
}
```
Os atributos acimas tem a seguinte finalidade:
- `app`: Um objeto representando o aplicativo. Deve conter:
- `id`: Identificador único do aplicativo (por exemplo, "example_app").
- `base_url`: URL base da API do aplicativo (por exemplo, "https://api.example.com").
- `actions`: Array de objetos representando as actions (ações) disponíveis no aplicativo. Cada objeto no array deve conter:
- `id`: Identificador único da ação (por exemplo, "action1_key").
- `triggers`: Array de objetos representando os triggers (gatilhos) disponíveis no aplicativo. Cada objeto no array deve conter:
- `id`: Identificador único do gatilho (por exemplo, "trigger1_key").'
servers:
- url: '{server}'
description: Your API Base URL
variables:
server:
default: https://api.example.com/v1
description: Base URL of your API
tags:
- name: Triggers
paths:
/triggers/{trigger_id}/manifest.json:
get:
tags:
- Triggers
summary: Obter informações sobre a configuração de um Trigger
parameters:
- $ref: '#/components/parameters/trigger_id'
responses:
'200':
$ref: '#/components/responses/successTriggerConfigResponse'
'404':
$ref: '#/components/responses/NotFound'
operationId: getTriggersByTriggerIdManifestJson
x-operation-id-source: derived
/triggers/{trigger_id}/attributes:
get:
tags:
- Triggers
summary: Obter atributos de um Trigger específico
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/trigger_id'
responses:
'200':
description: "Este endpoint retorna um array de objetos representando os atributos disponíveis na resposta do Trigger. <br>Cada objeto no array inclui os seguintes componentes:\n - `key`: Um identificador único para o atributo. É possível utilizar **<a href=\"https://en.wikipedia.org/wiki/Dot_notation\" target=\"_blank\" rel=\"noopener noreferrer\">dot notation</a>** para representar estruturas aninhadas, como <code>\"deal.pipeline\"</code>.\n - `name`: Um objeto contendo os nomes localizados do atributo.\n"
content:
application/json:
schema:
type: array
items:
type: object
properties:
key:
type: string
name:
type: object
properties:
pt_BR:
type: string
en:
type: string
required:
- key
- name
'404':
$ref: '#/components/responses/NotFound'
operationId: getTriggersByTriggerIdAttributes
x-operation-id-source: derived
/triggers/{trigger_id}/sample:
get:
tags:
- Triggers
summary: Obtém dado real para teste de confirmação do funcionamento do Trigger
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/trigger_id'
responses:
'200':
description: 'Este endpoint deve retornar um objeto com dados reais do Trigger e deve incluir pelo menos os atributos listados no endpoint `/triggers/{trigger_id}/attributes`.
'
content:
application/json:
schema:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email
value:
type: number
format: float
created_at:
type: string
format: date-time
'404':
$ref: '#/components/responses/NotFound'
operationId: getTriggersByTriggerIdSample
x-operation-id-source: derived
/triggers/{trigger_id}/subscribe:
post:
tags:
- Triggers
summary: Assinatura (Subscribe) do Webhook
description: Este endpoint é utilizado para registrar a URL do webhook da Pluga no seu sistema. Sempre que um evento ocorrer, sua aplicação deverá enviar uma notificação para a URL fornecida. **Nota:** Este endpoint é necessário apenas para Triggers do tipo `rest_hook`.
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/trigger_id'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
description: URL do webhook da Pluga onde as notificações devem ser enviadas
example: https://webhook.pluga.co/...
additionalProperties: true
description: 'Além da URL obrigatória, este objeto recebe campos dinâmicos caso o Trigger tenha campos de configuração (configuration_fields). As propriedades enviadas correspondem aos `key` definidas na configuração (configuration_fields). Por exemplo, se houver um campo com `key: "document_id"`, ele será enviado como `"document_id": "123456"`.
'
required:
- url
responses:
'201':
description: Webhook registrado com sucesso
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Identificador único do webhook criado
example: webhook_123
required:
- id
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
operationId: postTriggersByTriggerIdSubscribe
x-operation-id-source: derived
/triggers/{trigger_id}/unsubscribe/{webhook_id}:
delete:
tags:
- Triggers
summary: Cancelamento (Unsubscribe) do Webhook
description: Este endpoint é utilizado para cancelar a assinatura de um webhook previamente registrado. **Nota:** Este endpoint é necessário apenas para Triggers do tipo `rest_hook`.
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/trigger_id'
- in: path
name: webhook_id
schema:
type: string
required: true
description: Identificador único do webhook a ser cancelado (retornado no endpoint de subscribe)
responses:
'204':
description: Webhook cancelado com sucesso
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
operationId: deleteTriggersByTriggerIdUnsubscribeByWebhookId
x-operation-id-source: derived
components:
schemas:
dynamicConfigField:
type: object
description: Field description
properties:
key:
type: string
example: stage
name:
type: object
properties:
pt_BR:
type: string
example: Etapa do funil
en:
type: string
example: Pipeline Stage
description:
type: object
properties:
pt_BR:
type: string
example: Escolha a etapa do funil onde o deal será criado
en:
type: string
example: Choose the pipeline stage where the deal will be created
required:
type: boolean
helper_id:
type: string
example: stages_list
description: should be used when options should be requested from API
depends_on:
type: array
description: should be used when a field depends on another field's value
items:
type: string
example: pipeline
required:
- key
- name
- helper_id
triggerConfigExample:
type: object
properties:
name:
type: object
properties:
pt_BR:
type: string
en:
type: string
task_name:
type: object
properties:
pt_BR:
type: string
en:
type: string
configuration_fields:
type: array
items:
oneOf:
- $ref: '#/components/schemas/staticConfigField'
- $ref: '#/components/schemas/dynamicConfigField'
unique_keys:
type: array
items:
type: string
example: id
type:
type: string
enum:
- webhook
- rest_hook
example: webhook
description: Tipo do Trigger. Use 'webhook' quando a Pluga fornecer a URL, ou 'rest_hook' quando sua API gerenciar as assinaturas.
webhook_configuration:
type: object
properties:
message_type:
type: string
example: object | list
message_filters:
type: array
items:
type: object
properties:
field:
type: string
example: status
events:
type: array
items:
type: string
example: created
staticConfigField:
type: object
description: Field description
properties:
key:
type: string
example: pipeline
name:
type: object
properties:
pt_BR:
type: string
example: Funil
en:
type: string
example: Pipeline
description:
type: object
properties:
pt_BR:
type: string
example: Escolha o funil onde o deal será criado
en:
type: string
example: Choose the pipeline where the deal will be created
required:
type: boolean
options:
type: array
description: should be used when options are a static list
items:
type: object
properties:
label:
type: object
properties:
pt_BR:
type: string
example: Funil Padrão
en:
type: string
example: Default Pipeline
value:
type: string
example: default
required:
- key
- name
- options
responses:
NotFound:
description: Not Found
successTriggerConfigResponse:
description: "A resposta contém um objeto representando a configuração do Trigger e deve incluir os seguintes componentes:\n - `name`: Um objeto contendo os nomes localizados do Trigger.\n - `task_name`: Um objeto contendo o nome do gatilho a ser disparado pelo Trigger, por exemplo: \"**Quando uma nova linha for criada no Google Sheets**, criar/atualizar um negócio no HubSpot\", a parte em negrito é o task_name. **Importante:** O task_name deve obrigatoriamente incluir o nome do aplicativo exatamente como está definido no atributo `name` do app.\n - `type`: O tipo do Trigger pode ser `webhook` ou `rest_hook`. \n - **`webhook`**: A Pluga fornece uma URL para que sua API envie os dados sempre que um evento ocorrer. \n - **`rest_hook`**: Sua API permite que a Pluga registre uma assinatura de webhook através dos endpoints `/triggers/{trigger_id}/subscribe` e `/triggers/{trigger_id}/unsubscribe/{webhook_id}`. Quando um evento ocorrer, sua aplicação envia os dados para a URL registrada.\n - `configuration_fields`: Um array de campos necessários para a configuração do Trigger. Esses campos permitem filtrar eventos com base em valores específicos configurados. Por exemplo, é possível configurar um campo para que apenas notificações com o status 'won' (deals ganhos) sejam processadas. Caso o webhook receba uma notificação sem esse status, ela será descartada e não será processada pela Pluga. Cada campo deve ter os seguintes:\n - `key`: Um identificador único para o campo (por exemplo, \"pipeline\"). É possível utilizar **<a href=\"https://en.wikipedia.org/wiki/Dot_notation\" target=\"_blank\" rel=\"noopener noreferrer\">dot notation</a>** para representar estruturas aninhadas, como <code>\"deal.pipeline\"</code>.\n - `name`: Um objeto contendo os nomes localizados do campo. (por exemplo, \"pt_BR: Funil\", \"en: Pipeline\").\n - `description`: Um objeto contendo a descrição localizada sobre o campo, voltado para tirar dúvidas, ou indicar um padrão de envio de dados pelos clientes.\n - `required`: Um indicador se o campo é obrigatório.\n - `type`: O tipo do campo de configuração pode ser \"dropdown\" ou \"dropdown_multiple\". No caso de poder selecionar mais de uma opção deve ser o tipo \"dropdown_multiple\". O valor padrão é \"dropdown\" caso o atributo não seja enviado.\n - `options`: Usado quando o campo possui uma lista estática de opções. Deve ser um array de objetos com a seguinte estrutura:\n - `label`: Um objeto contendo o nome localizado da opção.\n - `value`: O valor a ser enviado para sua API.\n - `helper_id`: Necessário quando as opções do campo devem ser buscadas dinamicamente na sua API. Deve conter o ID do endpoint que fornece as opções (por exemplo, \"pipelines_list\").\n - `depends_on`: Um array de chaves de campos anteriores, indicando dependências se as opções do campo dependem do valor de outro campo.\n - `unique_keys`: Um array de strings representando os campos que devem ser únicos para evitar duplicações. Por exemplo, se o campo \"id\" for único, deve ser incluído neste array.\n - `webhook_configuration`: Um objeto contendo a configuração do webhook. Deve incluir:\n - `message_type`: O tipo de dado que será notificado na URL do webhook, pode ser \"object\", no caso de ser enviado apenas um objeto na notificação, ou \"list\", caso seja enviado um array de objetos por notificação.\n - `message_filters`: Um array de objeto contendo atributos do objeto notificado para verificar se a notificação é válida ou o evento deve ser fitlrado. ele contém as seguintes propriedades:\n - `field`: O campo do objeto que será verificado (por exemplo, \"status\").\n - `events`: Um array de strings representando os eventos que devem ser filtrados (por exemplo, \"created\", \"updated\").\n"
content:
application/json:
schema:
$ref: '#/components/schemas/triggerConfigExample'
BadRequest:
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Invalid request with information that helps to identify what's wrong
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Unauthorized
parameters:
trigger_id:
in: path
name: trigger_id
schema:
type: string
required: true
description: Identificador único do Trigger (por exemplo, "created_deal")
securitySchemes:
BearerAuth:
type: http
scheme: bearer