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

# Prévia de Importação de Template

> Valida um template pack e retorna uma prévia do que será importado, incluindo eventuais conflitos.

Valide um template pack antes de confirmar a importação. Este endpoint realiza uma execução simulada, retornando uma prévia de quais employees seriam criados, atualizados ou ignorados — além de eventuais problemas bloqueantes que impediriam a conclusão da importação.

### **Exemplos de Código**

<CodeGroup>
  ```http cURL theme={null}
  curl --request POST \
    --url 'https://api.tess.im/digital-employees/template-packs/preview-import' \
    --header 'Authorization: Bearer YOUR_API_KEY' \
    --header 'x-workspace-id: YOUR_WORKSPACE_ID' \
    --header 'Content-Type: application/json' \
    --data '{
      "target_agent_id": 99,
      "collision_strategy": "rename",
      "pack": {}
    }'
  ```

  ```json Node.js theme={null}
  const axios = require('axios');

  const config = {
    method: 'post',
    url: 'https://api.tess.im/digital-employees/template-packs/preview-import',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'x-workspace-id': 'YOUR_WORKSPACE_ID',
      'Content-Type': 'application/json'
    },
    data: {
      target_agent_id: 99,
      collision_strategy: 'rename',
      pack: {}
    }
  };

  try {
    const response = await axios(config);
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.tess.im/digital-employees/template-packs/preview-import"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY",
      "x-workspace-id": "YOUR_WORKSPACE_ID",
      "Content-Type": "application/json"
  }
  payload = {
      "target_agent_id": 99,
      "collision_strategy": "rename",
      "pack": {}
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```

  ```php PHP theme={null}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.tess.im/digital-employees/template-packs/preview-import",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode([
      'target_agent_id' => 99,
      'collision_strategy' => 'rename',
      'pack' => (object)[]
    ]),
    CURLOPT_HTTPHEADER => [
      "Authorization: Bearer YOUR_API_KEY",
      "x-workspace-id: YOUR_WORKSPACE_ID",
      "Content-Type: application/json"
    ]
  ]);

  $response = curl_exec($curl);
  curl_close($curl);
  echo $response;
  ```

  ```java Java theme={null}
  import java.net.URI;
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;

  String body = """
      {
        "target_agent_id": 99,
        "collision_strategy": "rename",
        "pack": {}
      }
      """;

  HttpClient client = HttpClient.newHttpClient();
  HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://api.tess.im/digital-employees/template-packs/preview-import"))
      .header("Authorization", "Bearer YOUR_API_KEY")
      .header("x-workspace-id", "YOUR_WORKSPACE_ID")
      .header("Content-Type", "application/json")
      .POST(HttpRequest.BodyPublishers.ofString(body))
      .build();

  HttpResponse<String> response = client.send(request,
      HttpResponse.BodyHandlers.ofString());
  System.out.println(response.body());
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
      "strings"
  )

  func main() {
      payload := strings.NewReader(`{
        "target_agent_id": 99,
        "collision_strategy": "rename",
        "pack": {}
      }`)

      client := &http.Client{}
      req, _ := http.NewRequest("POST",
          "https://api.tess.im/digital-employees/template-packs/preview-import",
          payload)
      req.Header.Add("Authorization", "Bearer YOUR_API_KEY")
      req.Header.Add("x-workspace-id", "YOUR_WORKSPACE_ID")
      req.Header.Add("Content-Type", "application/json")

      resp, _ := client.Do(req)
      defer resp.Body.Close()
      body, _ := io.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```

  ```jsonnet .NET theme={null}
  using System.Net.Http;
  using System.Text;
  using System.Text.Json;

  using var client = new HttpClient();
  client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
  client.DefaultRequestHeaders.Add("x-workspace-id", "YOUR_WORKSPACE_ID");

  var payload = new {
      target_agent_id = 99,
      collision_strategy = "rename",
      pack = new {}
  };

  var content = new StringContent(
      JsonSerializer.Serialize(payload),
      Encoding.UTF8,
      "application/json");

  var response = await client.PostAsync(
      "https://api.tess.im/digital-employees/template-packs/preview-import",
      content);
  Console.WriteLine(await response.Content.ReadAsStringAsync());
  ```

  ```ruby Ruby theme={null}
  require 'uri'
  require 'net/http'
  require 'json'

  uri = URI('https://api.tess.im/digital-employees/template-packs/preview-import')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(uri)
  request['Authorization'] = 'Bearer YOUR_API_KEY'
  request['x-workspace-id'] = 'YOUR_WORKSPACE_ID'
  request['Content-Type'] = 'application/json'
  request.body = {
    target_agent_id: 99,
    collision_strategy: 'rename',
    pack: {}
  }.to_json

  response = http.request(request)
  puts response.read_body
  ```
</CodeGroup>

### **Headers**

<Note>
  Inclua sua chave de API no header `Authorization` como um Bearer token em todas as requisições.
</Note>

<ParamField header="x-workspace-id" type="integer" required>
  ID do workspace. Obrigatório em todas as requisições da API de Digital Employees.
</ParamField>

### **Corpo da Requisição**

<ParamField body="pack" type="object" required>
  O payload do template pack obtido em [Exportar Template Pack](/pt/de-export-template).
</ParamField>

<ParamField body="target_agent_id" type="integer" required>
  ID do agente no qual o template será importado.
</ParamField>

<ParamField body="collision_strategy" type="string">
  Como tratar conflitos de nomenclatura com employees existentes. Opções:

  * `skip` — mantém os employees existentes e ignora os importados com conflito (padrão)
  * `rename` — renomeia automaticamente os employees importados para evitar conflitos
  * `overwrite` — substitui os employees existentes pela configuração importada
</ParamField>

### **Resposta**

Retorna um objeto de prévia descrevendo o que seria criado, atualizado ou ignorado, sem realizar nenhuma alteração.

```json theme={null}
{
  "data": {
    "employees_to_create": [],
    "employees_to_update": [],
    "employees_to_skip": [],
    "blocking_issues": []
  }
}
```

### **Erros**

* `422` com `reason: digital_employee_template_import_blocked` — o pack contém problemas bloqueantes que impedem a importação. Verifique o array `blocking_issues` na resposta para mais detalhes.
* `422` — estrutura de pack inválida ou campos obrigatórios ausentes.
