Exemplo de Função personalizada para integração com o Zoho Sheet

Exemplo de Função personalizada para integração com o Zoho Sheet

Pré-requisito

  1. O usuário deve ter uma conta no Zoho Sheet e Qntrl
  2. O usuário deve configurar uma conexão para autorizar o acesso do Zoho Sheet a partir do Qntrl. 

Caso de negócios

A Zylker Inc, uma empresa farmacêutica, usa a Qntrl para registrar e processar seus pedidos. Sempre que um novo pedido é feito, um usuário preenche os detalhes do cliente no cartão e cria o pedido. Em seguida, a ordem passa pelas etapas definidas no blueprint até que seja fechada. 
 
Como a Zylker também está usando o Zoho Sheet para registrar os detalhes de seus clientes, eles solicitaram uma solução alternativa para preencher previamente cada cartão com os detalhes existentes do cliente no Zoho Sheet, assim que a ID do cliente for inserida. 
 
Isso ajuda a Zylker a:
  1. Reduzir o esforço manual de gravar detalhes do cliente em cada cartão.
  2. Manter um único repositório de informações do cliente.
  3. Automatizar a entrada de dados para reduzir erros.

Solução

Criamos uma função personalizada para os requisitos da Zylker. Veja como a função funciona:
  1. O usuário cria um cartão inserindo apenas o ID do cliente junto com os detalhes do cartão.
  2. Depois que o cartão é criado, uma função personalizada é acionada para passar os dados do Zoho Sheet para o cartão.
  3. Depois que os detalhes são atualizados automaticamente para o cartão, a atualização de status é enviada de volta para o Zoho Sheet. 

Como configurar

Vamos analisar os detalhes passo a passo para configurar essa função personalizada em sua organização.
 
Etapa 1: primeiro, na orquestração, crie um De para capturar os detalhes do cliente. 
  1. O campo ID do cliente é obrigatório. Esta etapa não é obrigatória, mas é recomendada.
  2. Desative a Visibility (Visibilidade) dos campos de detalhes do cliente Nome do cliente, Contato e Local do cliente. 
Depois que o formulário for criado, siga em frente e conclua o restante das etapas em sua orquestração. 



Etapa 2: em seguida, crie uma nova função personalizada e configure-a com seus detalhes de Formulário, Conexão e Sheet. 



Etapa 3: navegue até Business Rules (Regras de negócios) e configure Instant   Actions (Ações instantâneas) para acionar a função personalizada acima sempre que um novo cartão for criado na orquestração "Order Details" (Detalhes do pedido). 




Etapa 4: agora, navegue até Cards (Cartões) e crie um cartão inserindo o ID do cliente junto com os detalhes do cartão.



Depois que o cartão é criado, a regra de negócios configurada aciona a função personalizada vinculada para preencher os detalhes do cliente no cartão. Para garantir que os detalhes sejam atualizados na planilha, a coluna Status no Zoho Sheet muda automaticamente para "Atualizado" pela função personalizada. 
  1. Observe que o ID do cliente junto com outros detalhes do cliente é armazenado em uma única linha no Zoho Sheet. 


Fornecemos aqui o exemplo de script personalizado para referência. Se você quiser saber mais detalhes sobre essa função personalizada, envie um e-mail para nossa equipe de suporte.  
//Deluge has predefined integrations with zoho services. Zoho Sheet is also supported
//sheet's getRecords API can be used to fetch all records in a sheet or specific records based on a criteria
//Required parameters
//1. Resource ID - can be picked from sheet url
//2. Sheet Name - Name of the sheet at the bottom
//3. Query Map - Key value map used to set criteria & range https://www.zoho.com/deluge/help/sheet/get-records.html#Example2
//4. connection link name
queryMap = Map();
//criteria format: "column name"="column value"
//example: "Client ID"="1001"
queryMap.put("criteria","\"Client ID\"=" + client_id);
data = zoho.sheet.getRecords("krz56389e2107d77a434ab731d3271a00c77d","Sheet1",queryMap,"zoho_sheet");
//this will fetch the records matching the criteria above
records = data.getJson("records");
//In our case, only record will be returned as client id is unique. So we are fetching the record at index 0
record = records.get(0);
//fetching each value by its column name
name = record.get("Client Name");
contact = record.get("Contact").toString();
location = record.get("Location");
info name;
//debugger print name
paramMap = Map();
//constructing the values in params for updating in card
//mapping with associated field name in qntrl
paramMap.put("customfield_shorttext18",name);
paramMap.put("customfield_shorttext16",contact);
paramMap.put("customfield_shorttext11",location);
job = invokeurl
[
type :POST
parameters:paramMap
connection:"zoho_qntrl"
];
info job;
//debugger to print update job response
//we are using the same criteria that was used to fetch the record
newValues = Map();
newValues.put("Status","Updated");
optMap = Map();
updateResp = zoho.sheet.updateRecords("krz56389e2107d77a434ab731d3271a00c77d","Sheet1","\"Client ID\"=" + client_id,newValues,optMap,"zoho_sheet");
info updateResp;