> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sell.ia.proativia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar Atendimentos

> Retorna a lista de atendimentos realizados na conta autenticada, com suporte a filtros.

## Requisição

`GET https://crm.wavups.com/api/v1/customer-service`

<ParamField header="Token" type="string" required>
  Seu token de autenticação.
</ParamField>

### Query Parameters

<ParamField query="startDate" type="string">
  Data de início para filtrar atendimentos pelo campo `createdAt`. Formato ISO 8601 (ex: `2025-01-01T00:00:00Z`). Utilizado em conjunto com `endDate`.
</ParamField>

<ParamField query="endDate" type="string">
  Data de fim para filtrar atendimentos. Formato ISO 8601 (ex: `2025-12-31T23:59:59Z`). Utilizado em conjunto com `startDate`.
</ParamField>

<ParamField query="status" type="string">
  Filtra atendimentos pelo status (ex: `pending`, `completed`).
</ParamField>

<ParamField query="leadId" type="string">
  Filtra atendimentos vinculados a uma conversa de um lead específico.
</ParamField>

***

## Resposta

Retorna um array de objetos de atendimento, ordenados do mais recente para o mais antigo. Os campos internos `customerContact`, `customerName`, `customerExternalId` e `updatedAt` são omitidos.

<ResponseField name="id" type="string">
  Identificador único do atendimento.
</ResponseField>

<ResponseField name="accountExternalConversationId" type="string | null">
  ID da conversa externa vinculada ao atendimento.
</ResponseField>

<ResponseField name="status" type="string">
  Status do atendimento. Padrão: `pending`.
</ResponseField>

<ResponseField name="temperature" type="number | null">
  Temperatura do atendimento (valor numérico).
</ResponseField>

<ResponseField name="chatSummary" type="string | null">
  Resumo da conversa do atendimento.
</ResponseField>

<ResponseField name="createdAt" type="string">
  Data de criação (ISO 8601).
</ResponseField>

<ResponseField name="AccountExternalConversation" type="object | null">
  Dados da conversa externa vinculada.

  <Expandable title="Propriedades da conversa">
    <ResponseField name="leadId" type="string | null">
      ID do lead vinculado à conversa.
    </ResponseField>

    <ResponseField name="contactName" type="string">
      Nome do contato da conversa.
    </ResponseField>

    <ResponseField name="contactPhone" type="string | null">
      Telefone do contato.
    </ResponseField>

    <ResponseField name="contactUsername" type="string | null">
      Username do contato (ex: Instagram).
    </ResponseField>

    <ResponseField name="AccountCRMLead" type="object | null">
      Dados do lead vinculado.

      <Expandable title="Propriedades do lead">
        <ResponseField name="name" type="string">
          Nome do lead.
        </ResponseField>

        <ResponseField name="email" type="string | null">
          E-mail do lead.
        </ResponseField>

        <ResponseField name="phone" type="string | null">
          Telefone do lead.
        </ResponseField>

        <ResponseField name="taxId" type="string | null">
          CPF/CNPJ do lead.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Exemplos

<RequestExample>
  ```bash GET /api/v1/customer-service theme={null}
  curl --request GET \
    --url 'https://crm.wavups.com/api/v1/customer-service?status=completed' \
    --header 'Token: SEU_TOKEN_DE_API'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": "atd_001",
      "accountExternalConversationId": "conv_abc123",
      "status": "completed",
      "temperature": 4,
      "chatSummary": "Cliente solicitou informações sobre planos.",
      "createdAt": "2025-06-15T14:30:00.000Z",
      "AccountExternalConversation": {
        "leadId": "lead_xyz",
        "contactName": "João Silva",
        "contactPhone": "11999998888",
        "contactUsername": null,
        "AccountCRMLead": {
          "name": "João Silva",
          "email": "joao@email.com",
          "phone": "11999998888",
          "taxId": "12345678909"
        }
      }
    }
  ]
  ```

  ```json 500 theme={null}
  {
    "error": "Error to get customers served"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /customer-service
openapi: 3.0.3
info:
  title: WavUps CRM API
  description: >-
    API pública da plataforma WavUps CRM — gerencie leads, produtos, categorias,
    atendimentos, agendamentos, conversas e pipelines de CRM.
  version: 1.0.0
servers:
  - url: https://crm.wavups.com/api/v1
    description: Servidor de produção
security:
  - Token: []
paths:
  /customer-service:
    get:
      tags:
        - Atendimentos
      summary: Listar Atendimentos
      description: Retorna a lista de atendimentos realizados na conta autenticada.
      operationId: listCustomerServices
      parameters:
        - name: startDate
          in: query
          description: Data de início (ISO 8601).
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: Data de fim (ISO 8601).
          schema:
            type: string
            format: date-time
        - name: leadId
          in: query
          description: Filtra atendimentos pelo ID do lead.
          schema:
            type: string
      responses:
        '200':
          description: Lista de atendimentos retornada com sucesso.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerService'
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    CustomerService:
      type: object
      properties:
        id:
          type: string
        leadId:
          type: string
          nullable: true
        serviceOwner:
          type: string
          nullable: true
        status:
          type: string
        description:
          type: string
          nullable: true
        createdAt:
          type: string
          format: date-time
    ErrorMessage:
      type: object
      properties:
        error:
          type: string
          example: Recurso não encontrado.
  responses:
    Error500:
      description: Erro interno no servidor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Token
      description: Token de autenticacao gerado na plataforma WavUps CRM.

````