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

# Conjuntos de configuração e supressões

> Controle o envio, o rastreamento de engajamento, a seleção de IPs dedicados e as exceções de supressão.

Um conjunto de configuração aplica opções de entrega às mensagens que o selecionam. Ele não altera a identidade verificada necessária para enviar.

<span id="create-and-apply-a-configuration-set" />

## Criar e aplicar um conjunto de configuração

<Tabs>
  <Tab title="Console">
    Abra Email e **Configuration sets** e clique em **Create configuration set**. Abra o conjunto para alterar envio, rastreamento, pool de IPs e exceções de supressão.
  </Tab>

  <Tab title="API">
    Envie `POST /v1/configuration-sets`:

    ```json theme={null}
    {"name":"transactional","sending_enabled":true,"tags":{"environment":"production"}}
    ```

    Depois envie `PATCH /v1/configuration-sets/{configuration_set_id}`:

    ```json theme={null}
    {"tracking_open":true,"tracking_click":true,"ip_pool":"transactional"}
    ```

    Adicione `"configuration_set":"transactional"` a cada solicitação de envio que deve usar essas configurações.
  </Tab>

  <Tab title="CLI">
    Salve as solicitações JSON da aba API, em ordem, como `request-1.json`, `request-2.json`. Defina `CONFIGURATION_SET_ID` como o UUID do recurso. Use a conta e a região configuradas.

    ```bash theme={null}
    basaltic email configuration-set create --from-file request-1.json
    basaltic email configuration-set update "$CONFIGURATION_SET_ID" --from-file request-2.json
    ```
  </Tab>

  <Tab title="Go">
    Salve as solicitações JSON da aba API, em ordem, como `request-1.json`, `request-2.json`. Defina `CONFIGURATION_SET_ID` como o UUID do recurso. Configure credenciais, conta e região pelas variáveis de ambiente do SDK.

    ```go theme={null}
    package main

    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"os"

    	basaltic "github.com/basaltic-sh/sdk-go"
    	"github.com/basaltic-sh/sdk-go/email"
    )

    func readJSON(path string, value any) error {
    	data, err := os.ReadFile(path)
    	if err != nil {
    		return err
    	}
    	return json.Unmarshal(data, value)
    }

    func run() error {
    	ctx := context.Background()
    	cfg, err := basaltic.NewConfig(ctx)
    	if err != nil {
    		return err
    	}
    	client := email.New(cfg)
    	var request1 email.CreateConfigurationSetRequest
    	if err := readJSON("request-1.json", &request1); err != nil {
    		return err
    	}
    	result1, err := client.CreateConfigurationSet(ctx, &request1)
    	if err != nil {
    		return err
    	}
    	fmt.Printf("%+v\n", result1)
    	var request2 email.UpdateConfigurationSetRequest
    	if err := readJSON("request-2.json", &request2); err != nil {
    		return err
    	}
    	result2, err := client.UpdateConfigurationSet(ctx, os.Getenv("CONFIGURATION_SET_ID"), &request2)
    	if err != nil {
    		return err
    	}
    	fmt.Printf("%+v\n", result2)
    	return nil
    }

    func main() {
    	if err := run(); err != nil {
    		fmt.Fprintln(os.Stderr, err)
    		os.Exit(1)
    	}
    }
    ```
  </Tab>
</Tabs>

`sending_enabled` é true por padrão. Desabilitá-lo rejeita novos envios pelo conjunto. A configuração é aplicada quando uma mensagem é aceita; editar um conjunto não reescreve mensagens já enfileiradas.

<span id="open-and-click-tracking" />

## Rastreamento de aberturas e cliques

O rastreamento se aplica a mensagens HTML. Mensagens somente de texto permanecem inalteradas. O rastreamento de aberturas adiciona um pixel; o de cliques reescreve links elegíveis para registrar uma visita antes de redirecionar. Os clientes de email dos destinatários carregam essas URLs automaticamente; elas não são APIs de gerenciamento para SDK ou CLI.

Aberturas e cliques medem solicitações registradas. Bloqueio de imagens, proxies de email, scanners de segurança e visitas repetidas afetam essas contagens. Uma abertura não comprova que uma pessoa leu a mensagem. Eventos agregados aparecem nas [métricas de Telemetry](/pt/email/metrics); o engajamento por mensagem mantém contagens e horários de diagnóstico durante sua janela de retenção de eventos.

<span id="pool-assignment-and-nullable-updates" />

## Atribuição de pool e atualizações anuláveis

`ip_pool` em uma resposta é um ResourceRef com `id`, `crn` e `name` opcional. No PATCH, omita `ip_pool` para preservá-lo, envie um UUID/nome/CRN para alterá-lo ou envie `{"ip_pool":null}` para desvinculá-lo. Strings vazias são rejeitadas.

Um pool contém [IPs dedicados](/pt/email/dedicated-ips) da conta. Se nenhum IP elegível puder ser selecionado, o envio usa os IPs compartilhados da plataforma. O campo `outbound_ip` da mensagem registra o endereço dedicado selecionado para ela.

<span id="suppression-overrides" />

## Exceções de supressão

`suppression_overrides` substitui toda a lista quando informado; `[]` remove todas as exceções. Você também pode adicionar ou remover um endereço pelos endpoints aninhados `/suppression-overrides`. Uma exceção ignora a supressão da conta para aquele endereço somente nas mensagens que usam esse conjunto de configuração.

Supressões automáticas vêm de retornos de falha e reclamações. Uma supressão manual usa `POST /v1/suppressions` com `address` e descrição e expiração opcionais. O campo opcional `source_message` da resposta identifica a mensagem que causou a supressão. Ele não é um seletor de solicitação.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.