Pular para o conteúdo principal

Purple Portal API: What You Can Do With It

Uma referência técnica para gerentes de TI e arquitetos de rede sobre como aproveitar a Purple Portal API. Este guia detalha os endpoints disponíveis, autenticação e casos de uso reais para integrar dados de WiFi de visitantes com sistemas corporativos para aprimorar a inteligência de negócios e a eficiência operacional. Ele abrange padrões de integração de REST API e Webhook, com estudos de caso concretos dos setores de hotelaria, varejo e eventos.

📖 9 min de leitura📝 2,212 palavras🔧 2 exemplos práticos3 questões práticas📚 9 definições principais

Ouça este guia

Ver transcrição do podcast
Bem-vindo ao Purple Technical Briefing. Sou Estrategista Sênior de Conteúdo aqui na Purple e, nos próximos dez minutos, vou apresentar uma visão geral concisa e prática da nossa Portal API — o que ela é, o que você pode fazer com ela e como aproveitá-la para obter o máximo de impacto nos negócios. Este conteúdo é voltado para gerentes de TI, arquitetos e diretores de operações que precisam saber como transformar o WiFi de visitantes de um simples serviço em um poderoso ativo de dados. Vamos começar com o contexto. Você oferece WiFi para visitantes em seus estabelecimentos. Todos os dias, centenas ou milhares de pessoas se conectam. Elas informam o e-mail, talvez o nome, e aceitam seus termos. Esses são dados primários (first-party data) valiosos. O Purple Portal oferece excelentes painéis para visualizar isso, mas o verdadeiro poder surge quando você conecta esses dados ao restante do seu ecossistema de negócios. É aí que entra a Portal API. Ela é a ponte que permite que seus sistemas se comuniquem com a nossa plataforma de forma programática. Agora, vamos aos detalhes técnicos. A Portal API é uma interface RESTful padrão. A autenticação é simples e segura, utilizando uma API Key direta. Você não precisa se preocupar com fluxos complexos de OAuth para comunicação servidor a servidor. Fundamentalmente, não há limites de taxa (rate limits). Nós a desenvolvemos para escala empresarial, portanto, quer você gerencie um único hotel ou uma rede nacional de quinhentas lojas de varejo, a API pode suportar o seu volume. Você tem duas maneiras principais de extrair dados. Primeiro, o método pull: endpoints REST padrão. Pense em endpoints como visitantes e estabelecimentos. Você pode criar um script para chamar esses endpoints de forma programada, extrair todos os dados de visitantes das últimas vinte e quatro horas e carregá-los em seu data warehouse para análise. Essa é a sua principal opção para business intelligence, para criar aqueles painéis de visão macro no Power BI ou Tableau. Mas a parte realmente empolgante é o método push: Webhooks. Isso é para tempo real. Você configura um endpoint de escuta do seu lado e, no momento em que um visitante se autentica no seu WiFi, nós enviamos um payload JSON com todos os detalhes dele — nome, e-mail, em qual estabelecimento ele está, contagem de visitas e até mesmo o método de autenticação utilizado, seja um formulário de cadastro, login social ou outro. É quase instantâneo. É isso que viabiliza o engajamento imediato e personalizado. É a diferença entre enviar um e-mail de marketing amanhã e enviar uma notificação de boas-vindas com uma oferta exclusiva no segundo em que um cliente fiel passa pela sua porta. Deixe-me falar sobre os campos de dados que você obtém. O payload do Webhook é estruturado em quatro objetos principais. O objeto client fornece o endereço MAC e o user agent. Os objetos company e venue fornecem os identificadores e as coordenadas geográficas do local específico. O objeto session fornece o timestamp de autenticação. E o objeto user é onde está o tesouro: nome, sobrenome, e-mail, gênero, data de nascimento, número de celular, código postal e uma contagem de visitas por local mostrando as datas da primeira e da última visita. Você também pode capturar campos personalizados do formulário de registro da sua página de Captive Portal, portanto, se você solicitar aos visitantes o número do programa de fidelidade ou o número do quarto em um hotel, isso também será enviado. Agora, na versão um ponto sete da API, há uma melhoria importante que vale a pena notar. O campo unsubscribed agora distingue claramente entre os usuários que optaram ativamente por não receber marketing após terem se inscrito anteriormente, versus aqueles que simplesmente nunca se inscreveram. Isso é fundamental para a conformidade com o GDPR e para uma segmentação precisa. Você não quer tratar um ex-assinante da mesma forma que alguém que nunca esteve no seu funil de marketing. Vamos falar sobre os padrões de integração com mais detalhes. Para o padrão de pull da REST API, seu fluxo de trabalho típico é um script agendado, talvez em Python ou Node.js, que roda todas as noites. Ele se autentica com sua chave de API, consulta o endpoint de visitantes para cada local, transforma os dados no formato necessário e os carrega em um banco de dados central. Este é um processo ETL clássico. Para um operador de vários locais, você iteraria pelos IDs dos seus locais e agregaria os dados centralmente. Para o padrão de push do Webhook, a arquitetura é um pouco diferente. Você precisa de um endpoint acessível publicamente e protegido por SSL. Uma função serverless é ideal aqui — AWS Lambda, Azure Functions ou Google Cloud Functions. É econômica, escala automaticamente e lida com a concorrência que você veria em um local movimentado. Quando a função recebe a requisição POST do Purple, ela deve analisar o JSON, executar sua lógica de negócios — talvez uma busca no CRM ou uma verificação de fidelidade — e retornar uma resposta de duzentos OK o mais rápido possível. Isso me leva ao requisito de implementação mais importante: seu listener deve responder em até dez segundos. Se não responder, o Purple colocará a requisição de volta na fila e tentará novamente após três horas. Falhas persistentes farão com que o Webhook seja desativado automaticamente por motivos de segurança. Portanto, mantenha seu listener enxuto. Faça o processamento mínimo necessário para retornar uma resposta rápida e, se precisar fazer um processamento pesado, envie o evento para uma fila interna e processe-o de forma assíncrona. Agora, vamos analisar alguns cenários do mundo real para tornar isso concreto. Considere um hotel de duzentos quartos. Eles desejam inscrever automaticamente novos hóspedes de WiFi em uma jornada de e-mail de boas-vindas em sua plataforma de marketing. A solução é simples: configure um Webhook, crie um listener serverless simples e, quando os dados de um novo usuário chegarem, verifique se ele já existe na plataforma de marketing. Caso contrário, adicione-o e inicie a jornada de boas-vindas. O hotel também pode usar o campo de contagem de visitas para distinguir visitantes de primeira viagem de hóspedes recorrentes e personalizar a comunicação de acordo. Um hóspede recorrente pode receber uma oferta de recompensa de fidelidade em vez de um boas-vindas genérico. Agora considere uma rede de varejo nacional com cinquenta lojas. Eles desejam um painel central que mostre as tendências de fluxo de pessoas em todas as unidades. Aqui, o padrão de pull da REST API é a escolha certa. Um script noturno consulta o endpoint de visitantes para cada uma das cinquenta unidades, agrega os dados e os carrega em um data warehouse. A equipe de analytics então cria seus painéis com base nisso. Eles conseguem ver quais lojas têm as maiores taxas de novos visitantes, quais têm as melhores proporções de visitantes recorrentes e como o tempo de permanência se correlaciona com o desempenho de vendas. Deixe-me agora abordar algumas armadilhas comuns e como evitá-las. A primeira armadilha é o tratamento de eventos duplicados. Uma única visita de um hóspede pode acionar múltiplos eventos de autenticação — por exemplo, se a tela do telefone bloquear e ele se reconectar, ou se ele fizer roaming entre pontos de acesso. Seu listener deve ser idempotente. Antes de realizar uma ação como enviar um e-mail, verifique se você já processou um evento para aquele usuário hoje. A segunda armadilha é não validar a URL do seu listener antes de entrar em produção. A Purple exige que você valide o endpoint no portal antes que ele possa receber dados. Certifique-se de que seu listener está ativo e retornando o cabeçalho wifiWebhookListener correto antes de associá-lo a um LogicFlow. A terceira armadilha é ignorar o status de inscrição. Sempre verifique o campo de cancelamento de inscrição antes de adicionar um usuário a uma lista de marketing. Enviar comunicações de marketing para alguém que optou por não recebê-las é uma violação da GDPR com consequências significativas. Agora, uma sessão rápida de perguntas e respostas. Posso sincronizar isso com meu CRM personalizado? Sim. Se o seu CRM tiver uma API, você pode usar um listener de Webhook como middleware para formatar os dados da Purple e enviá-los para o seu sistema. Os IDs retornados no payload do Webhook correspondem aos da REST API, então você também pode fazer chamadas de acompanhamento para obter detalhes adicionais, se necessário. Como faço para lidar com um usuário que visita várias unidades em minha propriedade? A API fornece contagens de visitas por ID de unidade, para que você possa rastrear facilmente a jornada de um cliente por toda a sua propriedade e criar um perfil abrangente de vários locais. Existe um limite de quantas URLs de Webhook posso configurar? Não. Você pode validar e usar quantas URLs de listener precisar, o que é útil se diferentes equipes ou sistemas precisarem receber os mesmos dados de eventos. O que acontece se o meu listener ficar fora do ar para manutenção? A Purple tentará reenviar as entregas que falharem, portanto, você poderá receber um acúmulo de eventos quando o seu listener voltar a ficar online. Seu listener precisa lidar com isso de forma amigável, processando eventos que podem chegar fora da ordem cronológica. Para resumir tudo o que cobrimos hoje, a Purple Portal API é a sua chave para desbloquear o imenso valor dos seus dados de WiFi de visitantes. Use a REST API para extrair dados para relatórios e análises. Use Webhooks para enviar dados em tempo real para um engajamento de clientes imediato e personalizado. Lembre-se do princípio fundamental: push para tempo real, pull para relatórios. Seu próximo passo é revisar a documentação da API em nosso portal de suporte. Se você tiver uma licença Engage, gere uma chave de API e comece a explorar com o Postman. Crie um listener de Webhook simples. Veja o fluxo de dados entrar. Esse é o momento em que o potencial desta ferramenta se torna perfeitamente claro. Obrigado por ouvir o Purple Technical Briefing. Se você quiser falar com um de nossos arquitetos de soluções sobre seus requisitos específicos de integração, visite purple dot ai e agende uma demonstração. Até a próxima.

header_image.png

Resumo Executivo

Para líderes de TI em locais com múltiplas unidades — hotéis, redes de varejo, estádios e centros de convenções —, a rede WiFi de convidados é mais do que uma simples comodidade. É uma fonte rica e continuamente atualizada de dados primários (first-party data) que pode gerar impacto comercial mensurável em marketing, operações e experiência do cliente. A Purple Portal API fornece a interface programática necessária para desbloquear esse valor em escala. Ela permite que as equipes técnicas vão além dos painéis de análise integrados e construam integrações robustas e automatizadas que alimentam dados de visitantes em conformidade com a GDPR diretamente nos sistemas de negócios principais, desde plataformas de CRM e ferramentas de automação de marketing até programas de fidelidade e armazéns de business intelligence (BI).

Este guia é uma referência prática e acionável para arquitetos de soluções, gerentes de TI e desenvolvedores seniores. Ele detalha o modelo de autenticação, os endpoints disponíveis, os padrões de integração e os cenários de implantação do mundo real que demonstram como a Purple WiFi API pode transformar uma implantação de WiFi de um centro de custo em um ativo de dados estratégico. Quer você esteja avaliando a API pela primeira vez ou planejando uma integração em nível de produção, este documento fornece a base técnica e as estruturas de decisão necessárias para prosseguir com confiança.

Aprofundamento Técnico

Autenticação e Versionamento da API

A Purple Portal API usa autenticação por API Key, um modelo simples e seguro, ideal para integrações servidor a servidor. Ao contrário dos fluxos do OAuth 2.0, que exigem troca de tokens e ciclos de atualização, a autenticação por API Key envolve a inclusão de um segredo estático nos cabeçalhos das requisições. Essa simplicidade reduz a complexidade da integração sem comprometer a segurança, desde que a chave seja armazenada de forma segura e rotacionada periodicamente como parte de sua política padrão de gerenciamento de credenciais.

A versão de produção atual é a v1.7, que introduziu várias melhorias importantes em relação à v1.6.2. O mais significativo é que a propriedade unsubscribed no objeto de dados do usuário agora distingue claramente entre um usuário que cancelou ativamente a assinatura de marketing após ter se inscrito anteriormente e um usuário que nunca se inscreveu. Essa distinção é crítica para a conformidade com a GDPR e para a segmentação precisa do público. Além disso, os endpoints de Visitors e Venues agora retornam uma resposta HTTP 200 OK quando nenhum dado é encontrado, em vez de um 404 Not Found, o que antes causava confusão na lógica de monitoramento e tratamento de erros.

Endpoints Disponíveis

A Portal Company API expõe três categorias principais de endpoints com as quais as equipes de TI interagirão regularmente.

Endpoint Método Finalidade
/visitors GET Recuperar perfis de visitantes convidados, incluindo dados de contato, dados demográficos e histórico de visitas
/venues GET Recuperar dados no nível do local e metadados de configuração
/unsubscribes GET Recupera uma lista de usuários que optaram por não receber comunicações de marketing

Todos os endpoints retornam dados no formato JSON. O endpoint visitors é o mais comumente utilizado, pois expõe toda a riqueza dos dados de perfil dos visitantes coletados durante a jornada de autenticação no Captive Portal. Isso inclui nome, sobrenome, endereço de e-mail, gênero, data de nascimento, número de celular, código postal, provedor de autenticação (por exemplo, formulário de registro, login social), contagem de visitas por local e quaisquer campos personalizados configurados na splash page.

Limites de Taxa (Rate Limits)

Uma vantagem arquitetônica fundamental da Purple Portal API é que não há limites de taxa. A plataforma foi projetada para suportar qualquer volume de requisições ou transações, tornando-a adequada para implantações em grande escala onde os scripts podem precisar processar milhares de registros de locais ou milhões de perfis de visitantes. Isso remove uma restrição comum que complica o design de integração com outras plataformas e elimina a necessidade de limitação de requisições ou lógica de back-off no código do seu cliente.

Padrões de Integração: Pull vs. Push

A Purple WiFi API suporta dois padrões de integração fundamentalmente diferentes, cada um adequado para diferentes casos de uso. Entender qual padrão aplicar em um determinado cenário é a decisão arquitetônica mais importante que você tomará.

O padrão de pull da REST API envolve o seu sistema fazendo requisições sob demanda ou agendadas para os endpoints da API para recuperar dados. Esta é a abordagem correta para processamento em lote, relatórios e business intelligence. Um script ETL noturno que extrai todos os dados de visitantes do dia anterior e os carrega em um data warehouse é um exemplo clássico. O padrão pull oferece controle total sobre quando e quantos dados você recupera.

O padrão de push de Webhook envolve a Purple enviando dados para o seu sistema no momento em que um evento específico ocorre — especificamente, quando um visitante se autentica na rede WiFi. Seu sistema deve expor um endpoint HTTP publicamente acessível e protegido por SSL (um 'listener') que possa receber e processar esses payloads JSON POST. O padrão Webhook é a escolha correta para qualquer caso de uso que exija dados em tempo real, como o disparo de uma mensagem de boas-vindas personalizada, a atualização do status de 'última visita' de um cliente em um CRM ou a notificação a um gerente de hospitalidade de que um visitante VIP chegou.

api_architecture_diagram.png

Estrutura do Payload do Webhook

O payload JSON entregue por um Webhook da Purple é estruturado em quatro objetos principais, cada um fornecendo uma dimensão diferente de contexto para o evento de autenticação.

Objeto Campos Chave Descrição
client mac, userAgent Identificadores ao nível do dispositivo
company id, name, uniqId Detalhes da conta da sua empresa
venue id, name, latitude, longitude O local específico onde ocorreu a autenticação
session authenticationTime Carimbo de data/hora ISO 8601 do evento de autenticação
user email, firstName, lastName, gender, provider, visitCountForVenues, customFields Dados completos do perfil do visitante

O objeto user.visitCountForVenues é particularmente valioso para operadores de múltiplos locais. Ele fornece uma contagem de visitas por local junto com os carimbos de data/hora de firstVisit e lastVisit, permitindo identificar visitantes de primeira viagem versus clientes recorrentes fiéis no momento da autenticação — sem chamadas de API adicionais.

Guia de Implementação

Pré-requisitos e Configuração

O acesso à Portal API requer uma licença Engage. Uma vez licenciado, gere sua API Key nas configurações do portal Purple. Para o desenvolvimento e testes iniciais, o Postman é a ferramenta recomendada; a Purple fornece um guia de configuração dedicado para configurar as variáveis de ambiente e os cabeçalhos de solicitação corretos. Um arquivo de demonstração em PHP também está disponível para equipes que preferem um ponto de partida com script no lado do servidor.

Configurando uma Integração de Webhook

A implantação de uma integração de Webhook envolve cinco etapas. Primeiro, crie e implante seu endpoint de escuta (listener) em uma URL publicamente acessível e protegida por SSL. Uma função serverless (AWS Lambda, Azure Functions ou Google Cloud Functions) é uma escolha arquitetonicamente sólida: ela escala automaticamente, gera custos mínimos em volumes baixos e lida com solicitações simultâneas sem configuração. Segundo, valide a URL do listener no portal Purple navegando em Management > Venues > Webhooks. A Purple enviará uma solicitação de teste para confirmar que o endpoint está acessível e retorna o cabeçalho wifiWebhookListener: 1 obrigatório. Terceiro, crie ou edite um LogicFlow no portal e adicione um Webhook Action Node, selecionando sua URL validada. Quarto, certifique-se de que o LogicFlow está com o status 'Online'. Quinto, associe o LogicFlow à Jornada de Acesso relevante. A partir deste ponto, cada autenticação de visitante nessa jornada acionará seu Webhook.

Tratamento de Novas Tentativas e Idempotência

Seu listener deve ser projetado para lidar com as realidades dos sistemas distribuídos. A Purple tentará reenviar uma entrega de Webhook com falha após três horas se o seu listener não responder (o tempo limite exceder 10 segundos) ou retornar um status de erro. Isso significa que seu listener pode receber o mesmo evento várias vezes. Além disso, uma única visita de um visitante pode acionar múltiplos eventos de autenticação — por exemplo, quando um dispositivo se reconecta após o bloqueio da tela ou quando um usuário transita entre pontos de acesso. Portanto, sua lógica de processamento deve ser idempotente: aplicar o mesmo evento duas vezes deve produzir o mesmo resultado que aplicá-lo uma única vez. Um padrão de implementação comum é verificar se uma ação (como o envio de um e-mail de boas-vindas) já foi executada para um determinado ID de usuário dentro de uma janela de tempo definida antes de executá-la.

Melhores Práticas

Vários princípios devem orientar qualquer implantação em produção da Purple Portal API. Sempre faça a implantação na versão mais recente da API (v1.7) e atualize seus caminhos de URL e lógica de análise de resposta quando novas versões forem lançadas. Trate sua API Key como uma credencial confidencial: armazene-a em um gerenciador de segredos (como o AWS Secrets Manager ou o Azure Key Vault) em vez de no código-fonte ou em variáveis de ambiente em sistemas compartilhados. Para listeners de Webhook, implemente o registro estruturado (logging) de cada payload recebido e resposta para facilitar a depuração e as trilhas de auditoria. Respeite os campos unsubscribed e unsubscribedDate no objeto do usuário; processar ações de marketing para usuários que optaram por sair constitui uma violação da GDPR. Por fim, teste sua integração com toda a gama de casos extremos: usuários sem endereço de e-mail, usuários com campos personalizados nulos e eventos de autenticação que chegam fora da ordem cronológica.

webhook_integration_infographic.png

Solução de Problemas e Mitigação de Riscos

O modo de falha mais comum em uma integração de Webhook é um listener lento ou indisponível. Se o endpoint falhar consistentemente em responder dentro de 10 segundos, a Purple desativará automaticamente o Webhook após um período prolongado de inatividade, exigindo a reverificação manual no portal. Para mitigar esse risco, implemente um endpoint de verificação de integridade (health check) no mesmo servidor do seu listener e inclua-o no monitoramento da sua infraestrutura. Certifique-se de que seu listener execute apenas um processamento síncrono mínimo antes de retornar uma resposta 200 OK; transfira qualquer computação pesada ou chamadas de API downstream para uma fila assíncrona.

Para integrações de REST API, o principal risco é a desatualização dos dados nos sistemas downstream se o job de pull agendado falhar silenciosamente. Implemente alertas em seus scripts de ETL para notificar a equipe de operações se uma execução falhar ou não produzir resultados inesperadamente. Ao migrar da API v1.6.2 para a v1.7, audite todo o código que faz referência ao campo unsubscribed e ao endpoint Unsubscribes, pois o nome da propriedade foi corrigido de unsubcribers para unsubscribers na v1.7.

ROI e Impacto nos Negócios

The business case for integrating with the Purple Portal API is well-established across multiple verticals. In hospitality, hotels using Webhook-triggered CRM integrations report significant improvements in email open rates for personalised communications compared to generic broadcast campaigns, because the message is delivered at the moment of maximum relevance — when the guest is physically on-site. In retail, connecting guest WiFi data to a loyalty programme enables operators to identify and reward high-frequency visitors, increasing average spend and repeat visit rates. For large public venues and conference centres, API-driven analytics provide the granular footfall data needed to justify sponsorship valuations and optimize concession placement.

The absence of rate limits on the Purple WiFi API means that the cost of integration scales with your infrastructure, not with the volume of data you process. For a national retail chain processing hundreds of thousands of daily authentications, this is a material advantage over platforms that charge per API call or impose throughput caps. The total cost of ownership for a well-architected Purple API integration is therefore primarily the one-time development cost and the ongoing infrastructure cost of the listener, both of which are typically recovered within the first quarter through improved marketing conversion rates alone.

retail_integration_usecase.png

Case Studies

Case Study 1: Hospitality — Whitbread Group

Whitbread, the UK's largest hotel and restaurant company, operates thousands of guest WiFi access points across its Premier Inn and restaurant estate. By integrating the Purple Portal API with their CRM platform, the group was able to build a unified guest profile that combined online booking data with physical visit behaviour captured at the WiFi captive portal. The Webhook integration fires on every guest authentication, enriching the CRM record with the latest visit timestamp, venue location, and device information. This enables the marketing team to segment audiences by recency, frequency, and location, and to trigger highly personalised re-engagement campaigns. The key technical outcome was a reduction in the time between a guest's arrival and their entry into an active marketing journey from 24 hours (under the previous batch-polling model) to under 60 seconds.

Case Study 2: Retail — Multi-Site Fashion Retailer

A national fashion retailer with over 80 stores deployed the Purple Portal API to address a critical gap in their customer data strategy: they had strong e-commerce data but virtually no insight into in-store visitor behaviour. By connecting the Purple guest WiFi API to their existing data warehouse via a nightly ETL process, they built a cross-channel customer view for the first time. The /visitors endpoint was queried for each store nightly, and the data was joined with e-commerce transaction records using email address as the common key. Within three months, the analytics team had identified that customers who connected to in-store WiFi had a 34% higher average order value on their next online purchase, providing a compelling business case for further investment in the in-store digital experience. The integration required no changes to the existing e-commerce infrastructure, demonstrating the low-friction nature of the REST API pull pattern.

Case Study 3: Events — Conference Centre

A major conference centre in the UK used the Purple Portal API to provide sponsors with verified footfall data for the first time. Previously, sponsor reports relied on manual headcounts and badge scans, which were labour-intensive and inaccurate. By exposing aggregated, anonymised visitor counts per zone (mapped to venue IDs in the Purple platform) via the API, the events team could provide sponsors with real-time dashboards showing dwell time and visitor volume in sponsored areas. The data was pulled via the REST API every 15 minutes during events and displayed on a custom-built sponsor portal. This capability directly contributed to a 22% increase in sponsorship renewal rates in the first year, as sponsors could now quantify the reach of their activations with verified, first-party data.

Definições principais

Webhook

Um mecanismo automatizado no qual um servidor envia uma notificação de dados em tempo real (um push) para outro aplicativo quando um evento específico ocorre, por meio de uma requisição HTTP POST.

No contexto da Purple, um Webhook envia um payload JSON com dados do visitante para o seu sistema no momento em que um convidado se autentica na rede WiFi. Isso é fundamental para atualizações de CRM e marketing em tempo real.

REST API

Um estilo arquitetônico padronizado para a criação de serviços web que permite a um sistema solicitar (ou extrair) dados de outro usando métodos HTTP padrão, como GET e POST.

As equipes de TI usam a REST API da Purple para escrever scripts que extraem dados em lote de visitantes e locais para análise em ferramentas de business intelligence, como Power BI ou Tableau.

API Key Authentication

Um modelo de segurança no qual o acesso a uma API é concedido mediante o fornecimento de um token secreto exclusivo (a chave) a cada requisição, normalmente no cabeçalho HTTP Authorization.

Isso é mais simples do que o OAuth e ideal para integrações servidor a servidor. Seus scripts devem incluir a API Key válida nos cabeçalhos das requisições para acessar os dados da Purple.

Idempotency

Uma propriedade de uma operação que significa que ela pode ser aplicada várias vezes sem alterar o resultado além da aplicação inicial.

O seu receptor de Webhook deve ser idempotente. Se ele receber o mesmo evento de autenticação duas vezes (o que pode acontecer devido a tentativas de reenvio ou reconexões de dispositivos), ele não deve, por exemplo, enviar dois e-mails de boas-vindas.

JSON (JavaScript Object Notation)

Um formato leve e baseado em texto para intercâmbio de dados que é fácil de ser lido por humanos e analisado e gerado por máquinas.

A API da Purple e os Webhooks entregam todos os dados no formato JSON. Seu aplicativo precisará analisar esse JSON para extrair campos como e-mail, nome e contagem de visitas.

LogicFlow

A ferramenta visual de arrastar e soltar da Purple para criar fluxos de trabalho automatizados de marketing e engajamento que podem acionar ações com base no comportamento e nos dados demográficos dos visitantes.

Você usa o LogicFlow para definir a jornada do convidado. É onde você vincula seu Webhook, instruindo o sistema a dispará-lo quando um usuário atingir o estado 'Online' de sua jornada de acesso.

Captive Portal

A página web que um usuário visualiza e com a qual deve interagir antes de receber acesso a uma rede WiFi pública, normalmente exigindo autenticação ou captura de dados.

A plataforma Purple alimenta o Captive Portal, e os dados inseridos pelo usuário nesta página (por exemplo, nome, e-mail, campos personalizados) são os que ficam disponíveis por meio da Portal API.

GDPR (General Data Protection Regulation)

Uma lei abrangente de privacidade de dados na União Europeia que regulamenta a coleta, o processamento e o armazenamento de dados pessoais de residentes da UE.

A API da Purple fornece as ferramentas para criar integrações em conformidade com a GDPR, como respeitar o status de cancelamento de inscrição de um usuário e permitir a exportação de dados para solicitações de acesso do titular. A atualização da API v1.7 melhorou especificamente a clareza do campo de cancelamento de inscrição para apoiar a conformidade.

ETL (Extract, Transform, Load)

Um processo de integração de dados que envolve a extração de dados de um sistema de origem, a transformação deles no formato exigido e o carregamento em um sistema de destino, como um data warehouse.

O padrão de extração da REST API é normalmente implementado como um processo ETL, onde os dados são extraídos do endpoint /visitors da Purple, transformados para corresponder ao esquema de destino e carregados em um CRM ou data warehouse.

Exemplos práticos

Um hotel de 200 quartos deseja adicionar automaticamente novos usuários de WiFi de visitantes à sua jornada do Salesforce Marketing Cloud e enviar um e-mail de boas-vindas.

  1. No Purple Portal, valide uma nova URL de Webhook apontando para um endpoint seguro (por exemplo, uma função serverless no AWS Lambda). 2. Crie um LogicFlow 'Online' que inclua o nó do Webhook, configurado para usar a URL validada. 3. Atribua este LogicFlow à jornada de acesso de WiFi de visitantes do hotel. 4. A função serverless recebe o payload JSON na autenticação do visitante, extrai o e-mail e o nome do usuário e faz uma chamada de API para o Salesforce Marketing Cloud para adicionar o usuário à jornada 'Novo Visitante'. 5. A função retorna uma resposta 200 OK para a Purple dentro da janela de timeout de 10 segundos.
Comentário do examinador: Esta solução utiliza corretamente o padrão de Webhook em tempo real, que é ideal para ações imediatas como o envio de um e-mail de boas-vindas. O uso de uma função serverless é uma maneira econômica e escalável de hospedar o endpoint receptor. Uma alternativa seria consultar o endpoint da API /visitors, mas isso introduziria um atraso de até 24 horas e seria significativamente menos eficiente para um requisito em tempo real.

Uma rede de varejo com 50 lojas deseja criar um painel central no Power BI para analisar as tendências de visitantes em todas as unidades.

  1. Crie um script (por exemplo, em Python) que seja executado em uma programação noturna. 2. O script se autentica na Purple Portal API usando a chave de API da empresa. 3. Ele itera por cada um dos 50 IDs de estabelecimentos, fazendo uma chamada para o endpoint /visitors de cada um para recuperar todos os dados de visitantes do dia anterior. 4. O script transforma e carrega esses dados em um data warehouse central (por exemplo, Azure SQL ou BigQuery). 5. O Power BI é conectado ao data warehouse para criar o painel de análise de múltiplos estabelecimentos.
Comentário do examinador: Este é um processo clássico de ETL (Extrair, Transformar, Carregar) e é o uso correto do padrão de consulta da REST API. É adequado para agregação de dados em larga escala e que não exige tempo real para inteligência de negócios. O uso de um data warehouse central é uma prática recomendada para desempenho e escalabilidade ao lidar com dados de várias fontes. A ausência de limites de taxa (rate limits) na Purple API significa que o script pode processar todos os 50 estabelecimentos sem preocupações com limitação de tráfego.

Questões práticas

Q1. Um estádio deseja identificar os portadores de ingressos de temporada VIP quando eles se conectam ao WiFi e enviar uma notificação para o painel do gerente de hospitalidade mais próximo. Qual padrão de integração eles devem usar e por quê?

Dica: Considere a velocidade necessária para a notificação e se a ação é acionada por um evento.

Ver resposta modelo

Eles devem usar o padrão Webhook (push). Este é um requisito em tempo real: quando o VIP se conecta, um Webhook é disparado imediatamente para um serviço que busca o e-mail ou endereço MAC do usuário no banco de dados de portadores de ingressos de temporada. Se uma correspondência for encontrada, ele envia uma notificação para o painel de hospitalidade relevante. Um padrão de API REST (pull) seria muito lento, pois depende de consultas periódicas e poderia introduzir atrasos de minutos ou horas.

Q2. Você tem a tarefa de criar um relatório diário dos 10 locais mais visitados em sua rede nacional de cafeterias. Como você recuperaria os dados necessários do Purple?

Dica: Este é um requisito de relatório em tempo real ou em lote? Qual endpoint você consultaria?

Ver resposta modelo

Esta é uma tarefa de relatório em lote, portanto, o padrão de API REST (pull) é apropriado. Um script agendado seria executado diariamente, consultaria o endpoint /visitors para cada local, agregaria as contagens de visitas do dia anterior e, em seguida, calcularia os 10 primeiros. Não há necessidade da notificação quase instantânea fornecida por Webhooks. A ausência de limites de taxa significa que todos os locais podem ser consultados em uma única execução de script sem preocupações com limitação de taxa.

Q3. O endpoint do seu listener de Webhook está falhando. Você verifica os logs e vê um erro de timeout. Qual é a causa mais provável de acordo com a documentação do Purple e quais são as duas consequências imediatas?

Dica: Pense nos requisitos de desempenho de um listener e no que o Purple faz quando não consegue entregar um payload.

Ver resposta modelo

A causa mais provável é que o listener está demorando mais de 10 segundos para processar o payload JSON recebido e retornar uma resposta 200 OK. As duas consequências imediatas são: (1) o Purple interromperá a tentativa de envio da requisição atual e a colocará novamente na fila para uma nova tentativa em 3 horas, o que significa que a entrega dos dados será atrasada; e (2) se isso continuar por um período prolongado, o Purple desativará automaticamente o Webhook por completo, exigindo a reverificação manual no portal antes que ele possa ser reativado.