# Document

***Document*****&#x20;é a principal entidade** do Workflow. Ela é **responsável por** **armazenar** todas as **informações** associadas a atividade que será executada.&#x20;

{% hint style="info" %}
**Todos os métodos precisam de** [**autenticação**](/configuracoes/authentication.md)
{% endhint %}

## create

<mark style="color:green;">`POST`</mark> `/document/create`

Essa API é utilizada para **criação de documentos**. Todas as informações enviadas serão salvas e podem ser resgatadas utilizando as API's de busca.

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| Authorization | string | Bearer \<token> |

#### Request Body

| Name                 | Type   | Description                                                                                               |
| -------------------- | ------ | --------------------------------------------------------------------------------------------------------- |
| status\_id           | number | Número de ID do status                                                                                    |
| product\_id          | number | Número de ID do produto                                                                                   |
| modality\_identifier | string | Texto nome da modalidade                                                                                  |
| cpf                  | string | Texto identificador (CPF/CNPJ/susep)                                                                      |
| name                 | string | Nome do cliente (envio de comunicações)                                                                   |
| phone                | string | Telefone do cliente (envio de comunicações)                                                               |
| email                | string | E-mail do cliente (envio de comunicações)                                                                 |
| sla\_total           | number | SLA total do documento em horas                                                                           |
| source               | string | Fonte de envio do documento (por exemplo: chatbot/postman/robô)                                           |
| filled\_columns      | object | Objeto JSON com informações extras sobre o documento (caso atualizado, as informações serão concatenadas) |

{% tabs %}
{% tab title="201 Este retorno traz informações sobre a criação do documento para verificação. Os atributos são os mesmos da requisição, com a adição das seguintes informações:

uuid: uuid gerado para o documento criado
sla\_start: data de início do SLA
sla\_end: data de término do SLA
sla\_end\_status: data de término do SLA para o status atual
date\_time: data da última atualização de status
created\_at: data de criação do documento
updated\_at: data da última atualização geral
id: ID do documento criado
protocol: protocolo gerado para o documento criado" %}

```
{
    "status_id": <status_id> : number,
    "product_id": <product_id> : number,
    "modality_identifier": <modality_identifier> : string,
    "cpf": <campo_identificador> : string,
    "email": <email> : string,
    "phone": <phone> : string,
    "name": <name> : string,
    "sla_total": <sla_total> : number,
    "source": <source> : string,
    "filled_columns": <filled_columns> : jsonObject,
    "modality_id": <modality_id> : number,
    "uuid": <uuid> : string,
    "sla_start": "<sla_start> : Date",
    "sla_end": "<sla_end> : Date",
    "sla_end_status": <sla_end_status> : Date,
    "date_time": <date_time> : Date,
    "created_at": <created_at> : Date,
    "updated_at": <updated_at> : Date,
    "id": <id> : number,
    "protocol": <protocol> : string,
}
```

{% endtab %}

{% tab title="404 Os ID complementares enviados não existem no banco de dados" %}

```
{
    "error": "NotFound: Provided (campo externo relacionado) parameter not exists on database"
}
```

{% endtab %}

{% tab title="422 Cadastro inválido, lança exceção no banco. Descrição do erro será melhor descrita." %}

```
{
    "error": "Database error: Throw node exception"
}
```

{% endtab %}
{% endtabs %}

### Body exemplo

```
{
    "status_id": <status_id>,
    "product_id": <product_id>,
    "modality_identifier": <modality_identifier>,
    "cpf": <campo_identificador>,
    "email": <email>,
    "phone": <phone>,
    "name": <name>,
    "sla_total": <sla_total>,
    "source": <source>,
    "filled_columns": <filled_columns>,
}
```

## updateById&#x20;

<mark style="color:green;">`POST`</mark> `/document/updateById`

API utilizada para **editar um documento existente**&#x20;

#### Request Body

| Name                 | Type   | Description                                                                                               |
| -------------------- | ------ | --------------------------------------------------------------------------------------------------------- |
| id                   | number | ID do documento que vai ser atualizado                                                                    |
| status\_id           | number | número de ID do status                                                                                    |
| product\_id          | number | número de ID do produto                                                                                   |
| modality\_identifier | string | texto nome da modalidade                                                                                  |
| cpf                  | string | texto identificador(CPF/CNPJ/susep)                                                                       |
| email                | string | e-mail do cliente (envio de comunicações)                                                                 |
| phone                | string | telefone do cliente(envio de comunicações)                                                                |
| name                 | string | nome do cliente (envio de comunicações)                                                                   |
| sla\_total           | number | SLA total do documento (horas)                                                                            |
| source               | string | fonte de envio do documento (chatbot/postman/robô)                                                        |
| filled\_columns      | object | objeto JSON com informações extras sobre o documento (caso atualizado, as informações serão concatenadas) |

{% tabs %}
{% tab title="200 Documento atualizado com sucesso.

Atributos:

id: ID do documento que foi atualizado,
uuid: uuid correspondente ao documento que foi atualizado,
status\_id: número de ID do status do documento que foi atualizado,
product\_id: número de ID do produto do documento que foi atualizado,
user\_id: número de ID do usuário associado ao documento que foi atualizado,
source: fonte de envio do documento que foi atualizado,
protocol: protocolo correspondente ao documento que foi atualizado,
cpf: texto identificador do documento que foi atualizado,
email: e-mail do documento que foi atualizado,
phone: phone do documento que foi atualizado,
name: name do documento que foi atualizado,
sla\_total: sla total do documento que foi atualizado,
sla\_start: data de início de SLA do documento que foi atualizado,
sla\_end: data de fim de SLA do documento que foi atualizado,
sla\_end\_status: data de término do SLA para status atual do documento que foi atualizado,
modality\_identifier: texto nome da modalidade,
filled\_columns: objeto JSON com informações extras sobre o documento (caso atualizado, as informações serão concatenadas),
date\_time: data da última atualização de status do documento atualizado,
created\_at: data de criação do documento atualizado,
updated\_at: data da última atualização geral do documento atualizado,
modality\_id: modality\_id correspondente ao modality\_identifier do documento atualizado,
date\_finished: data da primeira atualização para um status categoria final do documento atualizado

" %}

```
{
    "id": <id>
    "uuid": <uuid>
    "status_id": <status_id>
    "product_id": <product_id>
    "user_id": <user_id>
    "source": <source>
    "protocol": <protocol>
    "cpf": <campo_identificador>
    "email": <email>
    "phone": <phone>
    "name": <name>
    "sla_total": <sla_total>
    "sla_start": <sla_start>
    "sla_end": <sla_end>
    "sla_end_status": <sla_end_status>
    "modality_identifier": <modality_identifier>
    "filled_columns": <filled_columns>
    "date_time": <date_time>
    "created_at": <created_at>
    "updated_at": <updated_at>
    "modality_id": <modality_id>
    "date_finished": <date_finished>
}
```

{% endtab %}

{% tab title="404 IDs complementares enviados não existem no banco de dados." %}

```
{
    "error": "NotFound: Provided (campo externo relacionado) parameter not exists on database"
}
```

{% endtab %}

{% tab title="422 Consistência inválida, lança exceção no banco. " %}

```
{
    "error": "Database error: Throw node exception"
}
```

{% endtab %}
{% endtabs %}

### Body exemplo

```
{
    "id": <id>,
    "status_id": <status_id>,
    "product_id": <product_id>,
    "modality_identifier": <modality_identifier>,
    "cpf": <campo_identificador>,
    "email": <email>,
    "phone": <phone>,
    "name": <name>,
    "sla_total": <sla_total>,
    "source": <source>,
    "filled_columns": <filled_columns>
}
```

## loadById

<mark style="color:green;">`POST`</mark> `/document/loadById`

API utilizada para **consultar um documento existente pelo ID**.

#### Request Body

| Name | Type   | Description                            |
| ---- | ------ | -------------------------------------- |
| id   | number | id do documento que vai ser consultado |

{% tabs %}
{% tab title="200 Retorno do documento consultado.

Atributos:

id: ID do documento consultado
status\_id: número de ID do status do documento consultado
uuid: uuid correspondente ao documento consultado
product\_id: número de ID do produto do documento consultado
protocol: protocolo correspondente ao documento consultado
filled\_columns: objeto JSON com informações extras sobre o documento consultado
date\_time: data da última atualização de status do documento consultado
sla\_end\_status: data de término do SLA para status atual do documento consultado
updated\_at: data da última atualização geral do documento consultado
fields\_to\_show:
CPF: campo CPF formatado
Email: campo e-mail formatado
Telefone: campo phone
Cliente: campo name
Fonte: campo source
Modalidade: campo modality\_identifier
Criado em: campo created\_at formatado
product: detalhamento sobre produto relacionado
status: detalhamento sobre status relacionado
observation: detalhamento sobre observation relacionadas
attachment: detalhamento sobre attachments relacionados
step: detalhamento sobre step atual" %}

```
{
    "id": <id>,
    "status_id": <status_id>,
    "uuid": <uuid>,
    "product_id": <product_id>,
    "protocol": <protocol>,
    "filled_columns": <filled_columns>,
    "date_time": <date_time>,
    "sla_end_status": <sla_end_status>,
    "updated_at": <updated_at>,
    "fields_to_show": {
        "CPF": <campo_identificador>,
        "Email": <email>,
        "Telefone": <phone>,
        "Cliente": <name>,
        "Fonte": <source>,
        "Modalidade": <modality_identifier>,
        "Criado em": <created_at>,
    },
    "product": <product>,
    "status": <status>,
    "observation": <observation>,
    "attachment": <attachment>,
    "step": <step>
}
```

{% endtab %}

{% tab title="400 Campo enviado é inválido." %}

```
{
    "error": "BadRequest: Invalid parameters provided: id"
}
```

{% endtab %}

{% tab title="404 ID consultado não existe no banco de dados." %}

```
{
    "error": "NotFound: Provided id parameter not exists on database"
}
```

{% endtab %}
{% endtabs %}

## Body Exemplo

```
{
    "id": <id>
}
```

## loadByCPF

<mark style="color:green;">`POST`</mark> `/document/loadByCPF`

API utilizada para **consultar documentos existentes com o campo CPF** idêntico ao valor enviado.

#### Request Body

| Name       | Type   | Description                                          |
| ---------- | ------ | ---------------------------------------------------- |
| cpf        | string | texto de identificar que será consultado             |
| categories | string | categorias dos status para os documentos consultados |

{% tabs %}
{% tab title="200 Lista de documentos para o CPF consultado.

Atributos:

id: id do documento consultado
status\_id: número de ID do status do documento consultado
uuid: uuid correspondente ao documento consultado
product\_id: número de ID do produto do documento consultado
protocol: protocolo correspondente ao documento consultado
filled\_columns: objeto JSON com informações extras sobre o documento consultado
date\_time: data da última atualização de status do documento consultado
sla\_end\_status: data de término do SLA para status atual do documento consultado
updated\_at: data da última atualização geral do documento consultado
fields\_to\_show:
CPF: campo CPF formatado
Email: campo e-mail formatado
Telefone: campo phone
Cliente: campo name
Fonte: campo source
Modalidade: campo modality\_identifier
Criado em: campo created\_at formatado
product: detalhamento sobre produto relacionado
status: detalhamento sobre status relacionado
observation: detalhamento sobre observation relacionadas" %}

```
[
  {
      "id": <id>,
      "status_id": <status_id>,
      "uuid": <uuid>,
      "product_id": <product_id>,
      "protocol": <protocol>,
      "filled_columns": <filled_columns>,
      "date_time": <date_time>,
      "sla_end_status": <sla_end_status>,
      "updated_at": <updated_at>,
      "fields_to_show": {
          "CPF": <CPF>,
          "Email": <Email>,
          "Telefone": <Telefone>,
          "Cliente": <Client>,
          "Fonte": <Fonte>,
          "Modalidade": <Modalidade>,
          "Criado em": <Criado em>
      },
      "product":<product> : Object<Product>,
      "status":<status> Object<Status>,
      "observation":<observation> Observation[],
      "attachment":<attachment> Attachment[],
      "step":<step> : Object<Step>
  }
]
```

{% endtab %}

{% tab title="400 Campo enviado é inválido." %}

```
{
    "error": "BadRequest: Invalid parameters provided: cpf"
}
```

{% endtab %}
{% endtabs %}

## Body Exemplo

```
{
    "cpf": <campo_identificador>,
    "categories": <categories>
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workflow.d1.cx/configuracoes/apis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
