Skip to content

Escolher Canal de Notificação

Configure como enviar notificações: push, e-mail ou ambos. Canal selecionado: push e e-mail. Quando channels está ausente, o canal padrão é push notification.

Os campos title e body definidos dentro de cada canal específico sobrescrevem o título e corpo da notificação apenas para aquele canal. Caso não sejam especificados, o canal usa os valores de title e body do nível raiz da requisição.

Enviar Somente Push Notification

Para usar apenas push, defina apenas pushNotification dentro de channels. Cada canal aceita title e body específicos que sobrescrevem o conteúdo da notificação para aquele canal.

bash
curl -X POST https://api.layers.digital/v2/notification/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Community-Id: escola-exemplo" \
  -d '{
    "targets": {
      "topics": [{"kind": "user", "email": "maria@exemplo.com"}],
      "roles": ["guardian"]
    },
    "title": "Novo Comunicado",
    "body": "Verifique as informações do comunicado escolar",
    "channels": {
      "pushNotification": {
        "title": "Novo Comunicado",
        "body": "Verifique as informações do comunicado escolar"
      }
    }
  }'

Enviar Somente E-mail

Para usar apenas e-mail, defina apenas email dentro de channels. Os campos title e body dentro de email sobrescrevem o conteúdo da notificação para este canal. Aceita também actionLabel e, opcionalmente, backgroundUrl. Para usar actionLabel, é necessário definir também action no nível raiz da requisição.

bash
curl -X POST https://api.layers.digital/v2/notification/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Community-Id: escola-exemplo" \
  -d '{
    "targets": {
      "topics": [{"kind": "group", "alias": "turma-3a"}],
      "roles": ["guardian"]
    },
    "title": "Relatório Mensal Disponível",
    "body": "O relatório de desempenho do aluno está disponível",
    "action": {
      "path": "/relatorios",
      "portalAlias": "@admin:layers-relatorios",
      "type": "portal"
    },
    "channels": {
      "email": {
        "title": "Relatório Mensal Disponível",
        "body": "O relatório de desempenho do aluno está disponível",
        "actionLabel": "Acessar Relatório"
      }
    }
  }'

Enviar Push e E-mail Simultaneamente

Ao especificar ambos os canais, cada um pode ter title e body próprios que sobrescrevem o conteúdo específico daquele canal. Isso permite enviar mensagens diferentes para push e e-mail sobre o mesmo assunto.

bash
curl -X POST https://api.layers.digital/v2/notification/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Community-Id: escola-exemplo" \
  -d '{
    "targets": {
      "topics": [{"kind": "user", "email": "joao@exemplo.com"}],
      "roles": ["guardian"]
    },
    "title": "Mensalidade Disponível",
    "body": "A segunda parcela da mensalidade já está disponível",
    "action": {
      "path": "/payable/123",
      "portalAlias": "@admin:layers-financeiro",
      "type": "portal"
    },
    "channels": {
      "pushNotification": {
        "title": "Mensalidade Disponível",
        "body": "A segunda parcela da mensalidade já está disponível"
      },
      "email": {
        "title": "Mensalidade Disponível - Escola Exemplo",
        "body": "Prezado responsável, a segunda parcela da mensalidade já está disponível para pagamento. Acesse o portal para gerar o boleto.",
        "actionLabel": "Ver Boleto"
      }
    }
  }'

Personalização Avançada de E-mail

O canal de e-mail oferece suporte a backgroundUrl para personalização visual. É possível sobrescrever completamente o conteúdo do e-mail usando title e body dentro de email, enquanto o push notification pode ter uma mensagem diferente:

bash
curl -X POST https://api.layers.digital/v2/notification/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Community-Id: escola-exemplo" \
  -d '{
    "targets": {
      "topics": [{"kind": "group", "alias": "turma-3a"}],
      "roles": ["guardian", "student"]
    },
    "title": "Evento Cultural",
    "body": "Participe do nosso evento cultural",
    "action": {
      "path": "https://exemplo.com/evento",
      "type": "external"
    },
    "channels": {
      "email": {
        "title": "Convite: Evento Cultural Escola Exemplo",
        "body": "Prezados alunos e responsáveis, convidamos para nosso evento cultural que acontecerá no sábado, dia 25, às 14h. Traga sua família!",
        "actionLabel": "Confirmar Presença",
        "backgroundUrl": "https://exemplo.com/imagens/evento-cultural.jpg"
      }
    }
  }'