Ajuda

Como criar uma Lista Dinâmica utilizando a API da MailerWeb

Você poderá criar Listas Dinâmicas de forma programática utilizando a nossa API de gestão de contatos e campanhas, utilize os métodos abaixo para começar a criar conteúdo em nossa plataforma de envio de e-mail marketing,

Para se integrar à API é necessário que você esteja autenticado e para isso é importante que você tenha acesso ao artigo "Como se integrar a API da MailerWeb?".

Passo 1 - Criando uma Lista Dinâmica

Com esse método você poderá criar as listas dinâmicas para serem utilizadas em suas campanhas de E-mail, SMS e WhatsApp Marketing.

Para interagir com as Listas Dinâmicas, vamos criar o objeto com os seguintes parâmetros e com o seguinte endpoint:

  • Campo "name" é utilizado apenas para identificar a nome da lista que está sendo criada.

POST: /api/v1/contacts/dynamic_list/

{
    "name": "Lista Dinâmica 01"
}

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X POST --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list/ 

O resultado esperado será semelhante ao JSON abaixo:

{
   "contacts_hard_bounce": 0,
   "contacts_soft_bounce": 0,
   "contacts_valids": 1,
   "date_created": "2015-06-23",
   "id": id-dynamic-list,
   "last_updated": "2020-11-11",
   "name": "Lista 01",
   "resource_uri": "/api/v1/contacts/static_list/id-dynamic-list/",
   "total_contacts": 1
}

Repare que o ID da Lista Dinâmica está no atributo ID e no atributo resource_url, onde você poderá acessar os detalhes dessa campanha a partir do endpoint entregue por esse parâmetro.

Agora que você está de posse do ID da Lista Dinâmica, vamos ao Passo 2:

Passo 2 - Criando critérios para a Lista Dinâmica

De posse do ID da Lista Dinâmica, será necessário criar os critérios para a lista dinâmica, para isso você terá que criar o objeto com os seguintes parâmetros e o seguinte endpoint:

  • Campo "field" é o nome do campo que você deseja filtrar a informação, eles seguem abaixo relacionados:
    FIELDS = [
            ('name', _('Nome')),
            ('email', _('Email')),
            ('email_format', _('Formato de E-mail')),
            ('ip_address_confirmation', _('Endereço IP de Confirmação')),
            ('ip_address_inclusion', _('Endereço IP de Inclusão')),
            ('opt_out', _('Solicitou Remoção (Opt-Out)')),
            ('is_confirmed', _('Abertura Confirmada')),
            ('clicked', _('Já clicou em campanha')),
            ('status', _('Status do E-mail')),
            ('date_created', _('Criado em')),
            ('last_updated', _('Última atualização em')),
            ('tag_list', _('Listas que o contato faz parte')),
            ('campaigns', _('Campanhas')),
            ('enrolled_campaigns', _(u'Participou de Alguma Campanha')),
            ('has_phone', _(u'Possui Telefone registrado?')),
            ('type_line', _(u'Tipo de Telefone')),
            ('rule_id', _('Régua de Campanha')),
            ('carrier', _('Operadora de Telefonia')),
            ('location_mobile', _('Localização do Telefone')),
            ('lead_score', _('Lead Score')),
        ]
    
  • Campo "filter_type" é o tipo de filtro que você deseja aplicar a informação, eles são abaixos relacionados:
    FILTER_CHOICES = (
                ('exact', _('Igual')),
                ('not__equal', _('Diferente de')),
                ('iexact', _('Igual (case-insensitive)')),
                ('contains', _('Contem')),
                ('not__contains', _('Não Contem')),
                ('icontains', _('Contem (case-insensitive)')),
                ('not__icontains', _('Não contem (case-insensitive)')),
                ('gt', _('Maior que')),
                ('gte', _('Maior ou igual a')),
                ('lt', _('Menor que')),
                ('lte', _('Menor ou igual a')),
                ('startswith', _('Começa com')),
                ('istartswith', _('Começa com (case-insensitive)')),
                ('endswith', _('Termina com')),
                ('iendswith', _('Termina com  (case-insensitive)')),
                ('range', _('Intervalo')),
                ('isnull', _('É vazio')),
                ('regex', _('Expressão regular')),
                ('iregex', _('Expressão regular (case-insensitive)')),
                ('id', _('Participou da campanha')),
                ('id__nin', _('Não participou da campanha')),
                ('was_read__true', _('Abriu a campanha')),
                ('was_read__false', _('Não abriu a campanha')),
                ('was_sent__true', _('Mensagem da campanha foi enviada')),
                ('was_sent__false', _('Mensagem da campanha NÃO foi enviada')),
                ('click__true', _('Clicou na campanha')),
                ('click__false', _('Não clicou na campanha')),
                ('year__exact', _('Ano Igual a')),
                ('year__current', _('Ano Corrente')),
                ('year__gt', _('Ano Maior que')),
                ('year__lt', _('Ano Menor que')),
                ('year__gte', _('Ano Maior ou Igual que')),
                ('year__lte', _('Ano Menor ou Igual que')),
                ('month__current', _('Mês Corrente')),
                ('month__exact', _('Mês Igual a')),
                ('month__gt', _('Mês Maior que')),
                ('month__lt', _('Mês Menor que')),
                ('month__gte', _('Mês Maior ou Igual que')),
                ('month__lte', _('Mês Menor ou Igual que')),
                ('day_of_month__current', _('Dia do Mês Igual a Hoje')),
                ('day_of_month__exact', _('Dia do Mês Igual a')),
                ('day_of_month__gt', _('Dia do Mês Maior que')),
                ('day_of_month__lt', _('Dia do Mês Menor que')),
                ('day_of_month__gte', _('Dia do Mês Maior ou Igual que')),
                ('day_of_month__lte', _('Dia do Mês Menor ou Igual que')),
                ('date__current__lt', _('Data Menor que Hoje')),
                ('date__current__gt', _('Data Maior que Hoje')),
                ('date__current__lte', _('Data Menor ou Igual que Hoje')),
                ('date__current__gte', _('Data Maior ou Igual que Hoje')),
                ('date__current__exact', _('Data Igual a Hoje')),
        )
    
  • O campo "criteria" é o valor que você deve procurar, que pode ser qualquer valor, desde o status de um contato ou o ID de uma campanha.
     
  • O campo "group_by_operator", será como você deverá agregar esse critério com os demais critérios, será os operadores do tipo E ou OU, seguidos pelas palavras "AND", "OR", respectivamente. Esse campo somente será obrigatório se combinado com outros critérios na Lista Dinâmica.
     
  • O campo "dynamic_list" é o relacionamento com a Lista Dinâmica, deve ser no fomato string colocando no formato: "/api/v1/contacts/dynamic_list/id-dynamic-list/"

Utilize o endpoint abaixo para criar o objeto Critério de uma Lista Dinâmica, subordinado à uma Lista Dinâmica:

POST: /api/v1/contacts/dynamic_list_criteria/

{
    "field": "status",
    "filter_type": "icontains",
    "criteria": "ok",
    "group_by_operator": "AND",
    "dynamic_list": "/api/v1/contacts/dynamic_list/id-dynamic-list/"
}
curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X POST --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list_criteria/ 

O resultado será semelhante a esse:

{
	"criteria": "ok",
	"date_created": "2015-06-24",
	"dynamic_list": {
		"contacts_hard_bounce": 0,
		"contacts_soft_bounce": 0,
		"contacts_valids": 0,
		"date_created": "2015-06-24",
		"id": id-dynamic-list,
		"last_updated": "2015-06-24",
		"name": "Lista Dinâmica 01",
		"resource_uri": "/api/v1/contacts/dynamic_list/id-dynamic-list/",
		"total_contacts": 0
	},
	"field": "status",
	"filter_type": "icontains",
	"group_by_operator": "AND",
	"id": id-dynamic-list-criteria,
	"last_updated": "2015-06-24",
	"resource_uri": "/api/v1/contacts/dynamic_list_criteria/id-dynamic-list-criteria/"
}

 

Passo 2 - Listando os Critérios de uma Lista Dinâmica

 

Você também pode consultar todos os critérios de uma Lista Dinâmica pela chamada abaixo:

GET: /api/v1/contacts/dynamic_list_criteria/?dynamic_list=id-lista-dinamica

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X GET --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list_criteria/?dynamic_list=id-lista-dinamica 

O resultado será semelhante a esse:

{
    "meta": {
        "limit": 1000,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 2
    },
    "objects": [
        {
            "criteria": "mx",
            "date_created": "2015-06-24",
            "dynamic_list": {
                "contacts_hard_bounce": 0,
                "contacts_soft_bounce": 0,
                "contacts_valids": 0,
                "date_created": "2015-06-24",
                "id": id-da-lista-dinamica,
                "last_updated": "2015-06-24",
                "name": "Erros Temporários",
                "resource_uri": "/api/v1/contacts/dynamic_list/id-da-lista-dinamica/",
                "total_contacts": 0
            },
            "field": "status",
            "filter_type": "icontains",
            "group_by_operator": "OR",
            "id": id-do-criterio-da-lista-dinamica,
            "last_updated": "2015-06-24",
            "resource_uri": "/api/v1/contacts/dynamic_list_criteria/id-do-criterio-da-lista-dinamica/"
        },
        ...
   ]
}

 

Passo 3 - Atualizando os Critérios de uma Lista Dinâmica

Você poderá atualizar os critérios de uma lista dinâmica conforme o exemplo baixo, para tal será necessário utilizar o método patch:

PATCH: /api/v1/contacts/dynamic_list_criteria/id-do-criterio-da-lista-dinamica/

data = {
   'criteria': 'ok'
   'dynamic_list': '/api/v1/contacts/dynamic_list/id-da-lista-dinamica/'  # Aqui você poderá trocar para qual lista dinamica você colocar esse critério
}

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X PATCH --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list_criteria/id-do-criterio-da-lista-dinamica/

Passo 4 - Excluindo um Critério de uma Lista Dinâmica

Você poderá excluir um critério de uma lista dinâmica a partir do método delete, conforme exemplo a seguir

DELETE: /api/v1/contacts/dynamic_list_criteria/id-do-criterio-da-lista-dinamica/

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X DELETE --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list_criteria/id-do-criterio-da-lista-dinamica/

Passo 5 - Listando as Listas Dinâmicas Existentes em sua Conta

Para verificar todas as listas dinâmicas que você possui em sua conta, utilize o método abaixo:

GET: /api/v1/contacts/dynamic_list/

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X GET --data data https://painel.mailerweb.com.br/api/v1/dynamic_list/

O resultado será algo semelhante a esse:

{
    "meta": {
        "limit": 1000,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 14
    },
    "objects": [
        {
            "contacts_hard_bounce": 0,
            "contacts_soft_bounce": 0,
            "contacts_valids": 0,
            "date_created": "2015-06-24",
            "id": id-da-lista-dinamica,
            "last_updated": "2015-06-24",
            "name": "Erros Temporários",
            "resource_uri": "/api/v1/contacts/dynamic_list/id-da-lista-dinamica/",
            "total_contacts": 0
        },
        ...
   ]
}

Passo 6 - Atualizando uma Lista Dinâmica

Você poderá atualizar os critérios de uma lista dinâmica conforme o exemplo baixo, para tal será necessário utilizar o método patch:

PATCH: /api/v1/contacts/dynamic_list/id-da-lista-dinamica/

data = {
   'name': 'teste'
}

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X PATCH --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list/id-da-lista-dinamica/

Será retornado o objeto com o novo valor atualizado, caso contrário será retornado o erro 401.

Passo 7 - Excluindo uma Lista Dinâmica

Você poderá excluir uma lista dinâmica a partir do método delete, conforme exemplo a seguir

DELETE: /api/v1/contacts/dynamic_list/id-da-lista-dinamica/

curl --dump-header - -H "Content-Type: application/json" \ -H "Authorization: ApiKey username:API_KEY"\ -X DELETE --data data https://painel.mailerweb.com.br/api/v1/contacts/dynamic_list/id-da-lista-dinamica/

Retornar para Integração por API

Assine nossa newsletter