Boas-vindas!

Compartilhe e discuta o melhor conteúdo e novas ideias de marketing, construa seu perfil profissional e juntos, tornem-se profissionais de marketing melhores.

Inscreva-se

You need to be registered to interact with the community.
This question has been flagged
The question has been closed for reason: Not relevant or out dated
by Diego Santos on 10/11/2024 10:04:30
401 Views

Tarefa para Desenvolvedor: Atualização do Módulo blue_n8n

Objetivo: Atualizar o módulo blue_n8n com as principais funcionalidades relacionadas ao N8N, focando na automação de processos de vendas no CRM (crm.team), de acordo com as melhores práticas do N8N.

Instruções:

  1. Localização do Módulo:
    • O módulo está localizado no servidor loki, no diretório:
      repositorio/BlueApps5/blue_n8n.
  2. Principais Funcionalidades a Serem Implementadas:
    • Sincronização de Usuários:
      • Implementar a função de sincronização de usuários entre o Odoo (res.users) e o N8N, garantindo que os usuários em ambos os sistemas estejam sincronizados.
      • Função para enviar usuários novos do Odoo para o N8N.
      • Função para sincronizar e importar usuários existentes do N8N para o Odoo.

Para sincronizar usuários entre o N8N e o modelo res.users do Odoo, podemos criar duas funções principais: uma para enviar novos usuários do Odoo para o N8N e outra para sincronizar usuários existentes do N8N no Odoo. Essas funções irão integrar-se à API do N8N para garantir que os usuários em ambos os sistemas estejam atualizados.

1. Função para Enviar Usuários do Odoo para o N8N

Essa função irá criar um novo usuário no N8N sempre que um usuário for criado no Odoo.

Exemplo de Código Python:

#python Copiar código
import requests from odoo import models, fields, api from odoo.exceptions import UserError class ResUsers(models.Model): _inherit = 'res.users' n8n_user_id = fields.Char(string='N8N User ID') @api.model def create(self, vals): # Criação do usuário no Odoo user = super(ResUsers, self).create(vals) # Verificar se a sincronização com o N8N está habilitada n8n_record = self.env['blue.n8n'].search([('company_id', '=', user.company_id.id)], limit=1) if not n8n_record: raise UserError("Nenhuma configuração do N8N encontrada para esta empresa.") # Criar usuário no N8N url = f"{n8n_record.url_n8n}/users" headers = { 'Authorization': f'Bearer {n8n_record.n8n_api_token}', 'Content-Type': 'application/json' } data = { "email": user.email, "firstName": user.name.split()[0], "lastName": ' '.join(user.name.split()[1:]) if len(user.name.split()) > 1 else '', "password": "defaultPassword123", # Opcional: alterar ou gerar senha automaticamente "isAdmin": False # Define se o usuário será admin no N8N } response = requests.post(url, json=data, headers=headers) if response.status_code == 200: n8n_user = response.json() user.n8n_user_id = n8n_user.get('id') else: raise UserError(f"Erro ao criar o usuário no N8N: {response.text}") return user

2. Função para Sincronizar Usuários do N8N com o Odoo

Essa função irá buscar todos os usuários cadastrados no N8N e sincronizá-los no Odoo.

Exemplo de Código Python:

pythonCopiar códig
oclass ResUsers(models.Model): _inherit = 'res.users' @api.model def synchronize_users_from_n8n(self): # Buscar a configuração do N8N n8n_record = self.env['blue.n8n'].search([('company_id', '=', self.env.user.company_id.id)], limit=1) if not n8n_record: raise UserError("Nenhuma configuração do N8N encontrada para esta empresa.") # Buscar usuários no N8N url = f"{n8n_record.url_n8n}/users" headers = { 'Authorization': f'Bearer {n8n_record.n8n_api_token}', 'Content-Type': 'application/json' } response = requests.get(url, headers=headers) if response.status_code == 200: n8n_users = response.json() for n8n_user in n8n_users: # Sincronizar ou criar usuário no Odoo odoo_user = self.env['res.users'].search([('n8n_user_id', '=', n8n_user['id'])], limit=1) if not odoo_user: # Criar novo usuário no Odoo self.create({ 'name': f"{n8n_user['firstName']} {n8n_user['lastName']}", 'email': n8n_user['email'], 'n8n_user_id': n8n_user['id'], }) else: # Atualizar informações do usuário no Odoo odoo_user.write({ 'name': f"{n8n_user['firstName']} {n8n_user['lastName']}", 'email': n8n_user['email'], }) else: raise UserError(f"Erro ao sincronizar usuários do N8N: {response.text}")

3. Visão para Sincronizar Usuários Manualmente

Para que o administrador possa sincronizar usuários manualmente, você pode adicionar um botão na visão de usuários do Odoo para executar a função de sincronização.

Arquivo XML:

xmlCopiar código
<record id="view_res_users_form_inherit_n8n" model="ir.ui.view"> <field name="name">res.users.form.inherit.n8n</field> <field name="model">res.users</field> <field name="inherit_id" ref="base.view_users_form"/> <field name="arch" type="xml"> <xpath expr="//header" position="inside"> <button name="synchronize_users_from_n8n" type="object" string="Sincronizar Usuários do N8N" class="btn-primary"/> </xpath> </field> </record>

Considerações Finais:

  • Autenticação: Certifique-se de que o token da API do N8N esteja devidamente configurado no modelo blue_n8n.
  • Senha Padrão: Para novos usuários criados no N8N, você pode usar uma senha padrão ou um sistema de geração de senha personalizada.
  • Sincronização Bidirecional: Este exemplo mostra apenas a sincronização de N8N para Odoo e Odoo para N8N. Você pode expandir isso para manter a sincronização bidirecional de alterações de dados.
    • Automação de Processos de Vendas:
      • Criar/Atualizar workflows no N8N diretamente a partir de crm.team, criando fluxos automáticos para cada equipe de vendas.
      • Utilizar as melhores práticas descritas na documentação da API do N8N (documentação N8N API).
    • Gerenciamento de Tokens e URL:
      • Configurar a URL padrão https://conector.conexaoazul.com.br/ e o token padrão n8n_api_8cffd19a2909fb1510886015ac2cb2564394fbb0aabfddc7fa7a5a33b61d0bf7ebad9822f29c3ad6 no modelo blue_n8n para autenticação automática.
    • Integração com CRM:
      • Adicionar um botão em crm.team para criar ou atualizar workflows do N8N, utilizando a função de sincronização.
  1. Melhores Práticas:
    • Utilize as melhores práticas do N8N, com foco em automação, desempenho e segurança.
    • Certifique-se de que as requisições HTTP estão otimizadas e seguras, utilizando tokens e chaves da API.

Se houver dúvidas, estou à disposição para discutir mais detalhes ou esclarecer requisitos adicionais.


Avatar
Discard
WhatsApp