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/