function onNotify(subject, receivers, template, params) {

    // BLOQUEAR e-mails padrões do Fluig
	var templatesPadrao = [
	    // Notificações de processo
	    "TPLPROCESS_NEW_STATE_TO_MANAGER",
	    "TPLPROCESS_NEW_STATE_TO_USER",
	    "TPLPROCESS_NEW_STATE_TO_GROUP",

	    // Notificações de tarefas atribuídas
	    "TPLTASK_ASSIGN_MANAGER",
	    "TPLTASK_ASSIGN_USER",
	    "TPLTASK_ASSIGN_GROUP",
	    "TPLTASK_NEW_ASSIGN"
	];

	// Se o template for padrão → BLOQUEAR
	if (templatesPadrao.indexOf(template) >= 0) {
	    log.info("### [GINSENG][onNotify] BLOQUEANDO template padrão → " + template);
	    receivers.clear();
	    return;
	}

    // SOMENTE PARA O PROCESSO DE DESLIGAMENTO
    var processo = params.get("WKDef");
    if (processo != "desligamentoColaborador") {
        return;
    }

    var state = params.get("WKCurrentState");
    var numSolic = params.get("WKNumProces");

    var linkSolic = params.get("SERVER_URL") +
        "/portal/p/1/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID=" +
        numSolic;

    // CAMPOS QUE VOCÊ PRECISA
    var nomeColab = hAPI.getCardValue("colabDesliga");
    var cpf = hAPI.getCardValue("colabCpf");
    var admissao = hAPI.getCardValue("colabadmissao");
    var departamento = hAPI.getCardValue("departamento");
    var cargo = hAPI.getCardValue("cargoColaborador");
    var gestor = hAPI.getCardValue("requesterName");

    var tipo = hAPI.getCardValue("tipodesligamento");
    var motivo = hAPI.getCardValue("motivoDesligamento");
    var aprov = hAPI.getCardValue("DesligamentoAprov");

    var infoEstabilidades = ""
        + "<p><b>Trintídio CCT:</b> " + hAPI.getCardValue("trintidiocct") + "</p>"
        + "<p><b>Trintídio pós-férias:</b> " + hAPI.getCardValue("trintidioposferias") + "</p>"
        + "<p><b>Afastamento:</b> " + hAPI.getCardValue("trintidioposafastamento") + "</p>"
        + "<p><b>Pré-aposentadoria:</b> " + hAPI.getCardValue("preaposentadoria") + "</p>"
        + "<p><b>Acidentária:</b> " + hAPI.getCardValue("acidentaria") + "</p>"
        + "<p><b>Gestante/Lactante:</b> " + hAPI.getCardValue("gestante") + "</p>"
        + "<p><b>Sindical:</b> " + hAPI.getCardValue("sindical") + "</p>"
        + "<p><b>PCD:</b> " + hAPI.getCardValue("pcd") + "</p>"
        + "<p><b>Outras Estabilidades:</b> " + hAPI.getCardValue("outros") + "</p>";

    // VARIÁVEIS DO TEMPLATE
    var titulo = "";
    var descricao = "";
    var campos = "";

    // ======================================================
    //                  STATE 4 → ABERTURA
    // ======================================================
    if (state == 4) {
        titulo = "Solicitação de desligamento aberta";
        descricao = "Uma nova solicitação foi iniciada no sistema.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            "<p><b>CPF:</b> " + cpf + "</p>" +
            "<p><b>Cargo:</b> " + cargo + "</p>" +
            "<p><b>Departamento:</b> " + departamento + "</p>" +
            "<p><b>Gestor responsável:</b> " + gestor + "</p>" +
            "<p><b>Tipo de desligamento:</b> " + tipo + "</p>" +
            "<p><b>Justificativa:</b> " + motivo + "</p>";
    }

    // ======================================================
    //              STATE 20 → APROVAÇÃO DO GESTOR
    // ======================================================
    if (state == 20) {
        titulo = "Solicitação em etapa de aprovação";
        descricao = "A solicitação avançou para a aprovação do gestor.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            "<p><b>CPF:</b> " + cpf + "</p>" +
            "<p><b>Cargo:</b> " + cargo + "</p>" +
            "<p><b>Resultado da aprovação:</b> " + aprov + "</p>";
    }

    // ======================================================
    //          STATE 22 → PREVISÃO E IMPEDITIVOS
    // ======================================================
    if (state == 22) {
        titulo = "Etapa: Previsão e Impeditivos";
        descricao = "O departamento de DP está preenchendo as previsões.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            infoEstabilidades;
    }

    // ======================================================
    //          STATE 24 → CONFORMIDADE
    // ======================================================
    if (state == 24) {
        titulo = "Etapa de análise de conformidades";
        descricao = "A área responsável está validando impedimentos.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            "<p><b>Possui impeditivos?</b> " + hAPI.getCardValue("impeditivosColab") + "</p>" +
            "<p><b>Informações adicionais:</b> " + hAPI.getCardValue("InforConf") + "</p>";
    }

    // ======================================================
    //            STATE 5 → COMUNICAÇÃO DO DESLIGAMENTO
    // ======================================================
    if (state == 5) {
        titulo = "Etapa de gestão e comunicação";
        descricao = "A área está realizando comunicação e alinhamentos.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            "<p><b>Data exata do desligamento:</b> " + hAPI.getCardValue("dataExata") + "</p>" +
            "<p><b>Detalhamento:</b> " + hAPI.getCardValue("detalheSolicitacao") + "</p>";
    }

    // ======================================================
    //           STATE 15 → INATIVAÇÃO DE PERFIS
    // ======================================================
    if (state == 15) {
        titulo = "Etapa: Inativação de Acessos";
        descricao = "A TI está desativando os perfis do colaborador.";

        campos =
            "<p><b>Colaborador:</b> " + nomeColab + "</p>" +
            "<p><b>Considerações:</b> " + hAPI.getCardValue("consideracoes") + "</p>";
    }

    // PARAMETROS PARA O TEMPLATE
    params.put("TEMPLATE_CUSTOM", "ginseng_notificacao");
    params.put("TITULO", titulo);
    params.put("DESCRICAO", descricao);
    params.put("CAMPOS", campos);
    params.put("LINK", linkSolic);
    params.put("NUMSOL", numSolic);

    // ASSUNTO PERSONALIZADO
    subject.clear();
    subject.add("📌 " + titulo + " - Solicitação Nº " + numSolic);
}
