Gerenciando Eventos na RDStation com Ruby on Rails
Neste post, vamos explorar como integrar a API da RDStation em uma aplicação Ruby utilizando o cliente oficial rdstation-ruby-client. Este guia abordará desde a instalação da gem até a configuração e uso de diferentes funcionalidades, como autenticação, manipulação de contatos, eventos e muito mais. Como utilizar RDStation Ruby Client ?…
Neste post, vamos explorar como integrar a API da RDStation em uma aplicação Ruby utilizando o cliente oficial rdstation-ruby-client
. Este guia abordará desde a instalação da gem até a configuração e uso de diferentes funcionalidades, como autenticação, manipulação de contatos, eventos e muito mais.
Como utilizar RDStation Ruby Client ?
Instalação
gem 'rdstation-ruby-client'
Para começar, adicione a seguinte linha ao seu Gemfile
:
Depois execute o comando para instalar a gem através do bundler:
$ bundle install
Caso prefira instalar a gem manualmente, utilize o comando:
gem install rdstation-ruby-client
Agora, com a configuração da gem pronta no seu projeto, vamos gerar e adicionar suas credenciais.
Configuração
Antes de utilizar a API, é necessário configurar as credenciais client_id
e client_secret
, que podem ser obtidas no portal de desenvolvedores da RDStation.
Primeiro, crie um arquivo no diretório config/initializers
chamado rdstation.rb
. Em seguida, adicione a seguinte configuração a esse arquivo para inicializar a integração corretamente.
Adicione as suas credenciais:
RDStation.configure do |config|
config.client_id = 'SEU_CLIENT_ID'
config.client_secret = 'SEU_CLIENT_SECRET'
end
Como funciona a Autenticação?
Ao criar o seu aplicativo na RD Station App Store você receberá as duas credenciais. Essas credenciais são utilizadas para gerar um codigo
, que autoriza a conexão do aplicativo a uma conta específica na RD Station.
URL de Autenticação
Para autenticar um usuário, você deve primeiro gerar a URL de autenticação:
- O objetivo dessa etapa é autorizar o aplicativo a se conectar com a conta desejada da RD Station.
rdstation_authentication = RDStation::Authentication.new
redirect_url = 'https://suaapp.org/auth/callback'
rdstation_authentication.auth_url(redirect_url)
Gerar Access Token e Refresh Token
Depois que o usuário autorizar o acesso na URL de autenticação, um código será retornado para sua aplicação. Com esse código, você poderá gerar o
:access_token
e o refresh_token
rdstation_authentication = RDStation::Authentication.new
rdstation_authentication.authenticate(CODE)
# => { 'access_token' => '54321', 'expires_in' => 86_400, 'refresh_token' => 'refresh' }
Uma vez que os tokens tenham sido gerados, o access_token
será utilizado nas requisições para autorizar as trocas de informações via API.
Também é possível configurar um callback para que, quando ocorrer a renovação do token, ele seja atualizado automaticamente pela aplicação para uso futuro:
No exemplo abaixo, estamos utilizando Redis para armazenar e manter as credenciais atualizadas.
RDStation.configure do |config|
config.on_access_token_refresh do |authorization|
new_access_token = authorization.access_token
new_refresh_token = authorization.refresh_token
$redis.hmset("credentials", "access_token", new_access_token,
"refresh_token", new_refresh_token)
end
end
Manipulação de Contatos (LEADS)
Obter Contato por UUID
Para buscar um contato específico através do UUID
, utilize:
client = RDStation::Client.new(access_token: 'access_token', refresh_token: 'refresh_token')
client.contacts.by_uuid('uuid')
Obter Contato por Email
Da mesma forma, você pode buscar um contato utilizando seu email:
client = RDStation::Client.new(access_token: 'access_token', refresh_token: 'refresh_token')
client.contacts.by_email('[email protected]')
Atualizar Contato
Para atualizar as propriedades de um contato, utilize:
contact_info = { name: "George Pires" }
client.contacts.update('uuid', contact_info)
Upsert de Contato
Com a operação de UPSERT
, com esse método você consegue atualizar as propriedades de um Contato ou criar um novo Contato na Base de Leads:
contact_info = { name: "George Pires" }
identifier = "email"
identifier_value = "[email protected]"
client.contacts.upsert(identifier, identifier_value, contact_info)
Criar eventos de conversão
Estrutura de um evento padrão:
{
event_type: "TYPE EVENT",
event_family: "CDP",
payload: {
...
}
}
Para enviar um novo evento para a API, utilize:
payload = {} # payload do evento
client.events.create(payload)
Evento de conversão padrão
{
event_type: "CONVERSION",
event_family: "CDP",
payload: {
conversion_identifier: "Conversão exemplo",
email: "[email protected]",
},
}
Também podemos criar e adicionar campos personalizados aos eventos:
🚨 Deve ser preenchido seguindo a estrutura: cf_nome_do_campo
{
event_type: "CONVERSION",
event_family: "CDP",
payload: {
conversion_identifier: "Venda",
email: "[email protected]",
cf_razao_social: @pedido.razao_social,
cf_cnpj: @pedido.cnpj,
cf_status_do_pedido: @pedido.status,
cf_tipo_de_pagamento: @pedido.tipo_pagamento,
cf_valor_total: @pedido.valor_total,
},
}
No exemplo acima, foram criados 5 campos personalizados para enviar um evento de conversão com a identificação “Venda”.
O payload contém:
- conversion_identifier: identifica o tipo de conversão como “Venda”.
- email: e-mail do cliente (nesse exemplo, “[email protected]”).
- cf_razao_social: a razão social associada ao pedido.
- cf_cnpj: o CNPJ do cliente.
- cf_status_do_pedido: o status atual do pedido.
- cf_tipo_de_pagamento: o tipo de pagamento usado.
- cf_valor_total: o valor total do pedido.
Esses dados personalizados ajudam a rastrear e armazenar informações detalhadas sobre a conversão de vendas.
Eventos de Fechamento de Pedido
Responsável por descrever o comportamento de um contato no processo de compra de produtos em um E-commerce.
🚨Esse tipo de evento não aceita Campos Personalizados.
{
event_type: "ORDER_PLACED",
event_family: "CDP",
payload: {
name: "George Pires"
email: "[email protected]",
cf_order_id: "ID do pedido",
cf_order_total_items: 5,
cf_order_status: "Status do pedido",
cf_order_payment_method: "Cartão de crédito",
cf_order_payment_amount: 200,
},
}
Considerações
Este guia fornece uma visão geral da integração com a API da RDStation usando o RDStation Ruby Client.
Essa gem é especialmente útil para empresas que utilizam a RDStation como parte de sua estratégia de marketing digital e precisam automatizar processos ou integrar dados de marketing com outras ferramentas, ou sistemas.