Fonctions - Exemples
Les fonctions vous permettent de mettre à jour les données dans les modules CRM connexes ou dans des applications tierces en exécutant de simples scripts de programmes. Avec Fonctions, vous pouvez programmer des scripts à l'aide de Deluge Script (assuré par Zoho Creator), les associer à des règles de workflow, et automatiser le processus commercial. Vous trouvez ci-dessous une sélection des Fonctions les plus utiles.
Fonctions de type bouton
Convertir les leads en enregistrements dans d'autres modules.
Type de fonction : Bouton
Description de la fonction : vous pouvez convertir des leads en enregistrements dans d'autres modules, tels que les Comptes, les Contacts, les clients potentiels, etc., d'un simple clic sur un bouton.
Comment l'exécuter :
Placement du bouton : le bouton doit être placé dans la page Affichage du module leads.
Mappage des arguments : pour configurer cette action :- Cliquez sur Setup (Configuration) > Customization (Personnalisation) > Modules > Leads > Links and Buttons (Liens et Boutons) > (+Create new button) +Créer un nouveau bouton.
- Entrez le nom du bouton > Choisissez la page Affichage > Choisissez Writing Functions (Écrire des fonctions).
- Entrez le nom de la Fonction et cliquez sur Free flow scripting (Script en flux libre).
- Copiez le code indiqué ci-dessous.
- Cliquez sur Edit arguments (Modifier les arguments).
- Entrez le nom « leadId » et choisissez la valeur « Lead ID » (ID du lead).
- Cliquez sur +Add argument (+Ajouter un argument) et saisissez le nom « Authtoken ».
- Cliquez sur « Specify custom value » (Spécifier une valeur personnalisée) et entrez le Authtoken CRM dans la zone de texte.
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
- Dans la page Create your button (Créer votre bouton), cliquez sur Save (Enregistrer).
Remarque
Si vous ne souhaitez pas supprimer l'enregistrement du lead après sa conversion, veuillez commenter la dernière ligne du script.
Script :
leadIdLong = input.leadId.toLong();
leadDetails = zoho.crm.getRecordById("Leads", leadIdLong);
first = ifnull(leadDetails.get("First Name"),"");
last = ifnull(leadDetails.get("Last Name"),"");
name = first + " " + last;
AcccountMap = map();
AcccountMap.put(("Account Name"), ifnull(leadDetails.get("Company"),""));
AcccountMap.put("Annual Revenue", ifnull(leadDetails.get("Annual Revenue"),""));
AcccountMap.put("Billing City", ifnull(leadDetails.get("City"),""));
AcccountMap.put("Billing Country", ifnull(leadDetails.get("Country"),""));
AcccountMap.put("Description", ifnull(leadDetails.get("Description"),""));
AcccountMap.put("Fax", ifnull(leadDetails.get("Fax"),""));
AcccountMap.put("Industry", ifnull(leadDetails.get("Industry"),""));
AcccountMap.put("Employees", ifnull(leadDetails.get("No of Employees"),""));
AcccountMap.put("Phone", ifnull(leadDetails.get("Phone"),""));
AcccountMap.put("Rating", ifnull(leadDetails.get("Rating"),""));
AcccountMap.put("Billing State", ifnull(leadDetails.get("State"),""));
AcccountMap.put("Billing Street", ifnull(leadDetails.get("Street"),""));
AcccountMap.put("Billing Code", ifnull(leadDetails.get("Zip Code"),""));
AcccountMap.put("Website", ifnull(leadDetails.get("Website"),""));
AccountCreate = zoho.crm.create(("Accounts"), AcccountMap);
newaccountId = AccountCreate.get("Id");
ContactMap = map();
ContactMap.put("First Name", ifnull(leadDetails.get("First Name"),""));
ContactMap.put("Last Name", ifnull(leadDetails.get("Last Name"),""));
ContactMap.put("Mailing City", ifnull(leadDetails.get("City"),""));
ContactMap.put("Mailing Country", ifnull(leadDetails.get("Country"),""));
ContactMap.put("Mailing State", ifnull(leadDetails.get("State"),""));
ContactMap.put("Mailing Street", ifnull(leadDetails.get("Street"),""));
ContactMap.put("Mailing Zip", ifnull(leadDetails.get("Zip Code"),""));
ContactMap.put("Description", ifnull(leadDetails.get("Description"),""));
ContactMap.put("Fax", ifnull(leadDetails.get("Fax"),""));
ContactMap.put("Title", ifnull(leadDetails.get("Title"),""));
ContactMap.put("Email", ifnull(leadDetails.get("Email"),""));
ContactMap.put("Lead Source", ifnull(leadDetails.get("Lead Source"),""));
ContactMap.put("Mobile", ifnull(leadDetails.get("Mobile"),""));
ContactMap.put("Phone", ifnull(leadDetails.get("Phone"),""));
ContactMap.put("Secondary Email", ifnull(leadDetails.get("Secondary Email"),""));
ContactMap.put("Skype ID", ifnull(leadDetails.get("Skype ID"),""));
ContactMap.put("Twitter", ifnull(leadDetails.get("Twitter"),""));
ContactMap.put("ACCOUNTID", newaccountId);
ContactCreate = zoho.crm.create("Contacts", ContactMap);
newcontactId = ContactCreate.get("Id");
PotentialMap = map();
PotentialMap.put("Potential Name", name);
PotentialMap.put("City", ifnull(leadDetails.get("City"),""));
PotentialMap.put("Country", ifnull(leadDetails.get("Country"),""));
PotentialMap.put("State", ifnull(leadDetails.get("State"),""));
PotentialMap.put("Street", ifnull(leadDetails.get("Street"),""));
PotentialMap.put("Zipcode", ifnull(leadDetails.get("Zip Code"),""));
PotentialMap.put("Description", ifnull(leadDetails.get("Description"),""));
PotentialMap.put("Lead Source", ifnull(leadDetails.get("Lead Source"),""));
PotentialMap.put("ACCOUNTID",newaccountId );
PotentialMap.put("CONTACTID",newcontactId );
PotentialCreate = zoho.crm.create("Potentials", PotentialMap);
url = getUrl("https://crm.zoho.com/crm/private/xml/Leads/deleteRecords?authtoken=" + input.Authtoken + "&scope=crmapi&id=" + input.leadId);
return "lead converti avec succès";Créer des factures à partir de Bons de commande.
Type de fonction : Bouton
Description de la fonction : générer une facture pour un bon de commande en cliquant sur un simple bouton. C'est aussi simple que cela.
Comment l'exécuter :
Placement du bouton : ce bouton doit être placé dans la page Affichage du module Bons de commande.
Mappage des arguments : pour configurer cette action :- Cliquez sur Setup (Configuration) > Customization (Personnalisation) > Modules > Purchase Orders (Bons de commande) > Links and Buttons (Liens et Boutons) > (+Create new button) +Créer un nouveau bouton.
- Entrez le nom du bouton > Choisissez la page Affichage > Choisissez Writing Functions (Écrire des fonctions).
- Entrez le nom de la Fonction et cliquez sur Free flow scripting (Script en flux libre).
- Copiez le code indiqué ci-dessous.
- Cliquez sur Edit arguments (Modifier les arguments).
- Entrez le nom « poId » et choisissez la valeur « Purchase Order ID » (ID du bon de commande).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
- Dans la page Create your button (Créer votre bouton), cliquez sur Save (Enregistrer).
Script :
respMap = zoho.crm.getRecordById("PurchaseOrders", input.poId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
pour chaque eachProd dans productList
{
eachProdDet = eachProd.toMap();
productDesc = ifnull(eachProdDet.get("Product Description"),"");
quantity = ifnull(eachProdDet.get("Quantity"),"0");
listPrice = (ifnull(eachProdDet.get("List Price"),"0.0")).toDecimal();
netTotal = (ifnull(eachProdDet.get("Net Total"),"0.0")).toDecimal();
linediscount = (ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
total = (ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
productId = ifnull(eachProdDet.get("Product Id"),"");
linetax = (ifnull(eachProdDet.get("Tax"),"")).toDecimal();
mp = map();
mp.put("Product Id", productId);
mp.put("Quantity", quantity);
mp.put("List Price", listPrice);
mp.put(("Discount"), linediscount);
mp.put("Total", total);
mp.put("Tax", linetax);
mp.put("Net Total", netTotal);
pdlist.add(mp);
}
paramap = map();
paramap.put("Products", pdlist);
paramap.put("Subject", ifnull(respMap.get("Subject"),""));
paramap.put("CONTACTID", ifnull(respMap.get("CONTACTID"),""));
paramap.put("Terms and Conditions", ifnull(respMap.get("Terms and Conditions"),""));
paramap.put("Description", ifnull(respMap.get("Description"),""));
paramap.put("Tax", (ifnull(respMap.get("Tax"),"0.0")).toDecimal());
paramap.put("Adjustment", (ifnull(respMap.get("Adjustment"),"0.0")).toDecimal());
paramap.put(("Discount"), (ifnull(respMap.get(("Discount")),"0.0")).toDecimal());
paramap.put("Sub Total", (ifnull(respMap.get("Sub Total"),"0.0")).toDecimal());
paramap.put("Grand Total", (ifnull(respMap.get("Grand Total"),"0.0")).toDecimal());
createResp = zoho.crm.create("Invoices", paramap);
return "Facture créée avec succès";Créer des bons de commande à partir de Commandes clients.
Type de fonction : Bouton
Description de la fonction : vous pouvez générer des bons de commande à partir d'enregistrements créés dans Commandes clients. Cette fonction est utile si vous déterminez qu'une vente va se concrétiser.
Comment l'exécuter :
Placement du bouton : ce bouton doit être placé dans la page Affichage du module Commandes clients.
Mappage des arguments : pour configurer cette action :- Cliquez sur Setup (Configuration) > Customization (Personnalisation) > Modules > Sales Orders (Commandes) > Links and Buttons (Liens et Boutons) > (+Create new button) +Créer un nouveau bouton.
- Entrez le nom du bouton > Choisissez la page Affichage > Choisissez Writing Functions (Écrire des fonctions).
- Entrez le nom de la Fonction et cliquez sur Free flow scripting (Script en flux libre).
- Copiez le code indiqué ci-dessous.
- Cliquez sur Edit arguments (Modifier les arguments).
- Entrez le nom « soId » et choisissez la valeur « Sales Order ID » (ID de la commande client).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
- Dans la page Create your button (Créer votre bouton), cliquez sur Save (Enregistrer).
Script :
respMap = zoho.crm.getRecordById("SalesOrders", input.soId.toLong());
productDet=ifnull(respMap.get("product"),"");
productList=productDet.toJSONList();
pdlist=List();
pour chaque eachProd dans productList
{
eachProdDet=eachProd.toMap();
productDesc=ifnull(eachProdDet.get("Product Description"),"");
quantity=ifnull(eachProdDet.get("Quantity"),"0");
listPrice=(ifnull(eachProdDet.get("List Price"),"0.0")).toDecimal();
netTotal=(ifnull(eachProdDet.get("Net Total"),"0.0")).toDecimal();
linediscount=(ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
total=(ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
productId=ifnull(eachProdDet.get("Product Id"),"");
linetax=(ifnull(eachProdDet.get("Tax"),"")).toDecimal();
mp=map();
mp.put("Product Id",productId);
mp.put("Quantity",quantity);
mp.put("List Price",listPrice);
mp.put(("Discount"),linediscount);
mp.put("Total",total);
mp.put("Tax",linetax);
mp.put("Net Total",netTotal);
pdlist.add(mp);
}
paramap=map();
paramap.put("Products",pdlist);
paramap.put("Subject",ifnull(respMap.get("Subject"),""));
paramap.put("CONTACTID",ifnull(respMap.get("CONTACTID"),""));
paramap.put("Terms and Conditions",ifnull(respMap.get("Terms and Conditions"),""));
paramap.put("Description",ifnull(respMap.get("Description"),""));
paramap.put("Tax",(ifnull(respMap.get("Tax"),"0.0")).toDecimal());
paramap.put("Adjustment",(ifnull(respMap.get("Adjustment"),"0.0")).toDecimal());
paramap.put(("Discount"),(ifnull(respMap.get(("Discount")),"0.0")).toDecimal());
paramap.put("Sub Total",(ifnull(respMap.get("Sub Total"),"0.0")).toDecimal());
paramap.put("Grand Total",(ifnull(respMap.get("Grand Total"),"0.0")).toDecimal());
createResp = zoho.crm.create("PurchaseOrders", paramap);
return "BC créé avec succès";Envoi d'e-mails en masse depuis le module Leads ou Contacts.
Type de fonction : Bouton
Description de la fonction : vous pouvez envoyer des e-mails à des enregistrements multiples à partir de la page Affichage Liste du module Leads ou Contacts d'un simple clic sur un bouton.
Comment l'exécuter :
Placement du bouton : le bouton doit être placé dans la page Affichage Liste du module Leads ou Contacts.
Mappage des arguments : pour configurer cette action :- Cliquez sur Setup (Configuration) > Customization (Personnalisation) > Modules > Leads > Links and Buttons (Liens et Boutons) > (+Create new button) +Créer un nouveau bouton.
- Entrez le nom du bouton > Choisissez la page Affichage Liste > Choisissez Writing Functions (Écrire des fonctions).
- Entrez le nom de la Fonction et cliquez sur Free flow scripting (Script en flux libre).
- Copiez le code indiqué ci-dessous.
- Cliquez sur Edit arguments (Modifier les arguments).
- Entrez le nom « leadId » et choisissez la valeur « Lead ID » (ID du lead).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
- Dans la page Create your button (Créer votre bouton), cliquez sur Save (Enregistrer).
Script :
leadIdsList = input.leadId.toList("|||");
pour chaque leadIdStr dans leadIdsList
{
resp = zoho.crm.getRecordById("Leads", leadIdStr.toLong());
email = ifnull(resp.get("Email"),"");
sendmail
(
À : e-mail
De : zoho.adminuserid
Objet : "Objet de l'e-mail"
Message : "Ceci est le message de la Fonction envoyer e-mail"
)
}
return "LeadID" + input.leadId;Mettre à jour un champ et envoyer des e-mails depuis la page Affichage Liste.
Type de fonction : Bouton
Description de la fonction : si vous souhaitez mettre à jour plusieurs enregistrements et leur envoyer des e-mails simultanément, vous n'avez besoin que d'un bouton. Et de cette fonction, bien sûr.
Comment l'exécuter :
Placement du bouton : ce bouton doit être placé dans la page Affichage Liste d'un module Personnalisé.
Mappage des arguments : pour configurer cette action :- Cliquez sur Setup (Configuration) > Customization (Personnalisation) > Modules > Custom Module (Module personnalisé) > Links and Buttons (Liens et Boutons) > (+Create new button) +Créer un nouveau bouton.
- Entrez le nom du bouton > Choisissez la page Affichage > Choisissez Writing Functions (Écrire des fonctions).
- Entrez le nom de la Fonction et cliquez sur Free flow scripting (Script en flux libre).
- Copiez le code indiqué ci-dessous.
- Cliquez sur Edit arguments (Modifier les arguments).
- Entrez le nom « custommoduleId » et choisissez la valeur « CustomModule ID » (ID du module personnalisé).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
- Dans la page Create your button (Créer votre bouton), cliquez sur Save (Enregistrer).
Script :
IdsList = input.Id.toList("|||");
pour chaque IdStr dans IdsList
{
resp = zoho.crm.getRecordById("CustomModule1", IdStr.toLong());
customMap = map();
customMap.put("Record Status", "Approve");
updateResponse = zoho.crm.updateRecord("CustomModule1", IdStr, customMap);
email = ifnull(resp.get("Email"),"");
sendmail
(
À : e-mail
De : zoho.adminuserid
Objet : "Email d'approbation"
Message : " )
}
return "Succès";
Fonctions de type workflow
Calculer les commissions dans Quotes (Devis).
Type de fonction : Workflow
Description de la fonction : le total des commissions générées par tous les produits des devis s'affiche dans la page Quotes (Devis). Par conséquent, il devient plus facile de voir le total des commissions que vous recevez sans avoir à calculer manuellement.
Comment l'exécuter : vous devez associer cette Fonction à la règle de workflow appropriée pour mettre à jour automatiquement le total des commissions de chaque produit dans le module Quotes (Devis).
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définir la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Quotes (Devis) ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « quoteId » et la valeur « Quote Id » (ID du devis).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
quoteIdStr = input.quoteId.toString();
quoteMap = zoho.crm.getRecordById("Quotes", input.quoteId);
productDet = ifnull(quoteMap.get("product"),"");
productList = productDet.toJSONList();
valeur = 0.0;
pour chaque eachProd dans productList
{
eachProdDet = eachProd.toMap();
qté = (ifnull(eachProdDet.get("Quantity"),"0")).toLong();
productId = ifnull(eachProdDet.get("Product Id"),"");
proDetails = zoho.crm.getRecordById("Products", productId.toLong());
commission = (ifnull(proDetails.get("Commission Rate"),"0.0")).toDecimal();
valeur = (valeur + commission * qté);
}
params = map(); params.put("Total Commission", value);
updateResp = zoho.crm.updateRecord("Quotes", quoteIdStr, params);Le calcul des taxes dans les éléments Product Line (Gamme de produits).
Type de fonction : Workflow
Description de la fonction : vous pouvez calculer le montant des taxes pour tous les produits et les afficher dans le module Invoices (Factures).
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour calculer les taxes pour chaque produit dans Invoices (Factures).
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Invoices (Factures) ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « invoiceId » et la valeur « Invoice Id » (ID de la facture).
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
invoiceIdStr = input.invoiceId.toString();
invoiceMap = zoho.crm.getRecordById("Invoices", input.invoiceId);
productDet = ifnull(invoiceMap.get("product"),"");
TotalTax = (ifnull(invoiceMap.get("Tax"),"0.0")).toDecimal();
TotalAdjustment = (ifnull(invoiceMap.get("Adjustment"),"0.0")).toDecimal();
TotalDiscount = (ifnull(invoiceMap.get(("Discount")),"0.0")).toDecimal();
productList = productDet.toJSONList();
sumPrice = 0.0;
price = 0.0;
valeur = 0.0;
pdlist = List();
pour chaque eachProd dans productList
{
eachProdDet = eachProd.toMap();
discount = (ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
total = (ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
productId = ifnull(eachProdDet.get("Product Id"),"");
proDetails = zoho.crm.getRecordById("Products", productId.toLong());
Taxvalue = ifnull(proDetails.get("Taxes"),"");
if (Taxvalue == "VAT")
{
valeur = 12.5;
prix = (prix + total + 12.5 - remise);
}
else
{
if (Taxvalue == "Surcharge")
{
valeur = 0.625;
prix = (prix + total + 0.625 - remise);
}
else
{
valeur = 12.625;
prix = (prix + total + 0.625 + 12.5 - remise);
}
}
mp = map();
mp.put("Product Id", productId);
mp.put("Tax", value);
mp.put("Net Total", price);
pdlist.add(mp);
sumPrice = (sumPrice + price.toDecimal());
}
grandPrice = (sumPrice - TotalDiscount + TotalAdjustment + TotalTax);
paramap = map();
paramap.put("Products", pdlist);
paramap.put("Sub Total", sumPrice);
paramap.put("Grand Total", grandPrice);
updateResp = zoho.crm.updateRecord("Invoices", invoiceIdStr, paramap);Convertir les leads en enregistrements dans d'autres modules.
Type de fonction : Workflow
Description de la fonction : vous pouvez convertir des leads en enregistrements dans d'autres modules, tels que les Comptes, les Contacts, les Potentiels, etc., automatiquement.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour convertir automatiquement les Leads en Comptes, Contacts, etc.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Leads ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « leadId » et la valeur « Lead Id ».
- Cliquez sur +Add argument (+Ajouter un argument) et saisissez le nom « Authtoken ».
- Cliquez sur « Specify custom value » (Spécifier une valeur personnalisée) et entrez le Authtoken CRM dans la zone de texte.
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Remarque
Si vous ne souhaitez pas supprimer l'enregistrement du lead après sa conversion, veuillez commenter la dernière ligne du script.
Script :
leadIdLong = input.leadId.toLong();
leadDetails = zoho.crm.getRecordById("Leads", leadIdLong);
first = ifnull(leadDetails.get("First Name"),"");
last = ifnull(leadDetails.get("Last Name"),"");
name = first + " " + last;
AcccountMap = map();
AcccountMap.put(("Account Name"), ifnull(leadDetails.get("Company"),""));
AcccountMap.put("Annual Revenue", ifnull(leadDetails.get("Annual Revenue"),""));
AcccountMap.put("Billing City", ifnull(leadDetails.get("City"),""));
AcccountMap.put("Billing Country", ifnull(leadDetails.get("Country"),""));
AcccountMap.put("Description", ifnull(leadDetails.get("Description"),""));
AcccountMap.put("Fax", ifnull(leadDetails.get("Fax"),""));
AcccountMap.put("Industry", ifnull(leadDetails.get("Industry"),""));
AcccountMap.put("Employees", ifnull(leadDetails.get("No of Employees"),""));
AcccountMap.put("Phone", ifnull(leadDetails.get("Phone"),""));
AcccountMap.put("Rating", ifnull(leadDetails.get("Rating"),""));
AcccountMap.put("Billing State", ifnull(leadDetails.get("State"),""));
AcccountMap.put("Billing Street", ifnull(leadDetails.get("Street"),""));
AcccountMap.put("Billing Code", ifnull(leadDetails.get("Zip Code"),""));
AcccountMap.put("Website", ifnull(leadDetails.get("Website"),""));
AccountCreate = zoho.crm.create(("Accounts"), AcccountMap);
newaccountId = (AccountCreate).get("Id");
ContactMap = map();
ContactMap.put("First Name", ifnull(leadDetails.get("First Name"),""));
ContactMap.put("Last Name", ifnull(leadDetails.get("Last Name"),""));
ContactMap.put("Mailing City", ifnull(leadDetails.get("City"),""));
ContactMap.put("Mailing Country", ifnull(leadDetails.get("Country"),""));
ContactMap.put("Mailing State", ifnull(leadDetails.get("State"),""));
ContactMap.put("Mailing Street", ifnull(leadDetails.get("Street"),""));
ContactMap.put("Mailing Zip", ifnull(leadDetails.get("Zip Code"),""));
ContactMap.put("Description", ifnull(leadDetails.get("Description"),""));
ContactMap.put("Fax", ifnull(leadDetails.get("Fax"),""));
ContactMap.put("Title", ifnull(leadDetails.get("Title"),""));
ContactMap.put("Email", ifnull(leadDetails.get("Email"),""));
ContactMap.put("Lead Source", ifnull(leadDetails.get("Lead Source"),""));
ContactMap.put("Mobile", ifnull(leadDetails.get("Mobile"),""));
ContactMap.put("Phone", ifnull(leadDetails.get("Phone"),""));
ContactMap.put("Secondary Email", ifnull(leadDetails.get("Secondary Email"),""));
ContactMap.put("Skype ID", ifnull(leadDetails.get("Skype ID"),""));
ContactMap.put("Twitter", ifnull(leadDetails.get("Twitter"),""));
ContactMap.put("ACCOUNTID", newaccountId);
ContactCreate = zoho.crm.create("Contacts", ContactMap);
newcontactId = ContactCreate.get("Id");
PotentialMap = map();
PotentialMap.put("Potential Name", name);
PotentialMap.put("City", ifnull(leadDetails.get("City"),""));
PotentialMap.put("Country", ifnull(leadDetails.get("Country"),""));
PotentialMap.put("State", ifnull(leadDetails.get("State"),""));
PotentialMap.put("Street", ifnull(leadDetails.get("Street"),""));
PotentialMap.put("Zipcode", ifnull(leadDetails.get("Zip Code"),""));
PotentialMap.put("Description", ifnull(leadDetails.get("Description"),""));
PotentialMap.put("Lead Source", ifnull(leadDetails.get("Lead Source"),""));
PotentialMap.put("ACCOUNTID", newaccountId);
PotentialMap.put("CONTACTID", newcontactId);
PotentialCreate = zoho.crm.create("Potentials", PotentialMap);
url = getUrl("https://crm.zoho.com/crm/private/xml/Leads/deleteRecords?authtoken=" + input.Authtoken + "&scope=crmapi&id=" + input.leadId);Créer des contacts à partir de modules personnalisés.
Type de fonction : Workflow
Description de la fonction : vous pouvez créer directement et automatiquement un enregistrement de contact à partir des informations disponibles dans n'importe quel module personnalisé.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement des contacts à partir de modules personnalisés.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Custom Module » (Module personnalisé).
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « customId » et la valeur « CustomModule Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
CustomModuleDetails = zoho.crm.getRecordById("CustomModule1", input.customId);
ContactMap = map();
ContactMap.put("First Name", ifnull(CustomModuleDetails.get("First Name"),""));
ContactMap.put("Last Name", ifnull(CustomModuleDetails.get("Last Name"),""));
ContactMap.put("Email", ifnull(CustomModuleDetails.get("Email"),""));
ContactMap.put("Date", ifnull(CustomModuleDetails.get("Date"),""));
ContactMap.put("Birth Date", ifnull(CustomModuleDetails.get("Birth Date"),""));
ContactMap.put("Mailing Street", ifnull(CustomModuleDetails.get("Mailing Street"),""));
ContactMap.put("Mailing City", ifnull(CustomModuleDetails.get("Mailing City"),""));
ContactMap.put("Mailing State", ifnull(CustomModuleDetails.get("Mailing State"),""));
ContactMap.put("Mailing Zip", ifnull(CustomModuleDetails.get("Mailing Zip"),""));
ContactMap.put("Phone", ifnull(CustomModuleDetails.get("Phone"),""));
ContactMap.put("SMOWNERID", ifnull(CustomModuleDetails.get("SMOWNERID"),""));
ContactMap.put("Company Name", ifnull(CustomModuleDetails.get("Company Name"),""));
ContactMap.put("Industry Type", ifnull(CustomModuleDetails.get("Industry Type"),""));
ContactCreate = zoho.crm.create("Contacts", ContactMap);Créer un module personnalisé à partir d'un module personnalisé.
Type de fonction : Workflow
Description de la fonction : vous pouvez créer un nouveau Module personnalisé à partir des enregistrements d'un autre Module personnalisé. Cette fonction est particulièrement utile lorsque vous devez transférer des informations d'un module à un autre. Laissez la Fonction le faire pour vous.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement un Module personnalisé avec les enregistrements d'un autre Module personnalisé.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Custom Module » (Module personnalisé).
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « CustommoduleId » et la valeur « CustomModule Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
CustommoduleDetails = zoho.crm.getRecordById("CustomModule1", input.CustommoduleId);
createMap = map();
createMap.put("CustomModule2 Name", ifnull(CustommoduleDetails.get("Custom Name"),""));
createMap.put("SMOWNERID", ifnull(CustommoduleDetails.get("SMOWNERID"),""));
createMap.put("Phone", ifnull(CustommoduleDetails.get("Phone"),""));
createMap.put("Email", ifnull(CustommoduleDetails.get("Email"),""));
createCustomModule = zoho.crm.create("CustomModule2", createMap);Créer des activités de suivi.
Type de fonction : Workflow
Description de la fonction : vous pouvez créer des activités de suivi pour vos contacts. Il s'agit de l'une des fonctions les plus essentielles et utiles disponibles puisqu'elle simplifie la vie d'innombrables agents.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement des activités de suivi pour l'enregistrement de contact sélectionné.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Contacts ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « contactId » et la valeur « Contact Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
contactIdStr = input.contactId.toString();
TaskDetails = zoho.crm.getRelatedRecords("Tasks", "Contacts", contactIdStr);
pour chaque tâche dans TaskDetails
{
taskMap = map();
taskMap.put("Task Owner", ifnull(Task.get("Task Owner"),""));
taskMap.put("Subject", (Task.get("Subject")) + " Followup ");
taskMap.put("Due Date", ifnull(Task.get("Due Date"),""));
taskMap.put("Status", ifnull(Task.get("Status"),""));
taskMap.put("Priority", ifnull(Task.get("Priority"),""));
taskMap.put("SMOWNERID", ifnull(Task.get("SMOWNERID"),""));
taskMap.put("CONTACTID", contactIdStr);
taskMap.put("SEID", ifnull(Task.get("RELATEDTOID"),""));
taskMap.put("SEMODULE", ifnull(Task.get("SEMODULE"),""));
createTask = zoho.crm.create("Tasks", taskMap);
}
EventDetails = zoho.crm.getRelatedRecords("Events", "Contacts", contactIdStr);
pour chaque événement dans EventDetails
{
eventMap = map();
eventMap.put("Subject", (Event.get("Subject")) + " Followup ");
eventMap.put("SMOWNERID", ifnull(Event.get("SMOWNERID"),""));
eventMap.put("Start DateTime", (ifnull(Event.get("Start DateTime"),"")).toTime());
eventMap.put("End DateTime", (ifnull(Event.get("End DateTime"),"")).toTime());
eventMap.put("CONTACTID", contactIdStr);
eventMap.put("SEID", ifnull(Event.get("RELATEDTOID"),""));
eventMap.put("SEMODULE", ifnull(Event.get("SEMODULE"),""));
createEvent = zoho.crm.create("Events", eventMap);
}
CallDetails = zoho.crm.getRelatedRecords("Calls", "Contacts", contactIdStr);
pour chaque appel dans CallDetails
{
Callstatus = Call.get("Call Status");
if ((Callstatus == "Scheduled") || (Callstatus == "Overdue"))
{
callMap = map();
callMap.put("Subject", (Call.get("Subject")) + " Followup ");
callMap.put("SMOWNERID", ifnull(Call.get("SMOWNERID"),""));
callMap.put("Call Type", ifnull(Call.get("Call Type"),""));
callMap.put("whichCall", "ScheduleCall");
callMap.put("Call Start Time", ifnull(Call.get("Call Start Time"),""));
callMap.put("Call Duration", ifnull(Call.get("Call Duration"),""));
callMap.put("CONTACTID", contactIdStr);
callMap.put("SEID", ifnull(Call.get("RELATEDTOID"),""));
callMap.put("SEMODULE", ifnull(Call.get("SEMODULE"),""));
createCall = zoho.crm.create("Calls", callMap);
}
else
{
callMap = map();
callMap.put("Subject", (Call.get("Subject")) + " Followup ");
callMap.put("SMOWNERID", ifnull(Call.get("SMOWNERID"),""));
callMap.put("Call Type", ifnull(Call.get("Call Type"),""));
callMap.put("Call Start Time", ifnull(Call.get("Call Start Time"),""));
callMap.put("Call Duration", ifnull(Call.get("Call Duration"),""));
callMap.put("CONTACTID", contactIdStr);
callMap.put("SEID", ifnull(Call.get("RELATEDTOID"),""));
callMap.put("SEMODULE", ifnull(Call.get("SEMODULE"),""));
createCall = zoho.crm.create("Calls", callMap);
}
}Créer des factures à partir de Bons de commande.
Type de fonction : Workflow
Description de la fonction : vous pouvez générer automatiquement des factures pour les bons de commande en définissant cette Fonction.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement des factures.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Fonctions > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Purchase Orders » (Bons de commande).
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « poId » et choisissez la valeur « Purchase Order Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
respMap = zoho.crm.getRecordById("PurchaseOrders", input.poId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
pour chaque eachProd dans productList
{
eachProdDet = eachProd.toMap();
productDesc = ifnull(eachProdDet.get("Product Description"),"");
quantity = ifnull(eachProdDet.get("Quantity"),"0");
listPrice = (ifnull(eachProdDet.get("List Price"),"0.0")).toDecimal();
netTotal = (ifnull(eachProdDet.get("Net Total"),"0.0")).toDecimal();
linediscount = (ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
total = (ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
productId = ifnull(eachProdDet.get("Product Id"),"");
linetax = (ifnull(eachProdDet.get("Tax"),"")).toDecimal();
mp = map();
mp.put("Product Id", productId);
mp.put("Quantity", quantity);
mp.put("List Price", listPrice);
mp.put(("Discount"), linediscount);
mp.put("Total", total);
mp.put("Tax", linetax);
mp.put("Net Total", netTotal);
pdlist.add(mp);
}
paramap = map();
paramap.put("Products", pdlist);
paramap.put("Subject", ifnull(respMap.get("Subject"),""));
paramap.put("CONTACTID", ifnull(respMap.get("CONTACTID"),""));
paramap.put("Terms and Conditions", ifnull(respMap.get("Terms and Conditions"),""));
paramap.put("Description", ifnull(respMap.get("Description"),""));
paramap.put("Tax", (ifnull(respMap.get("Tax"),"0.0")).toDecimal());
paramap.put("Adjustment", (ifnull(respMap.get("Adjustment"),"0.0")).toDecimal());
paramap.put(("Discount"), (ifnull(respMap.get(("Discount")),"0.0")).toDecimal());
paramap.put("Sub Total", (ifnull(respMap.get("Sub Total"),"0.0")).toDecimal());
paramap.put("Grand Total", (ifnull(respMap.get("Grand Total"),"0.0")).toDecimal());
createResp = zoho.crm.create("Invoices", paramap);Créer des leads à partir d'un contact avec toutes les données associées.
Type de fonction : Workflow
Description de la fonction : vous pouvez créer instantanément des leads à partir d'enregistrements de contacts. Cela sera très utile si vous souhaitez réaliser une nouvelle transaction avec une personne que vous connaissez déjà.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement des enregistrements de leads à partir de contacts.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Contacts ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « contactId » et la valeur « Contact Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
contactIdStr = input.contactId.toString();
contactDetails = zoho.crm.getRecordById("Contacts", input.contactId);
leadMap = map();
leadMap.put("Last Name", ifnull(contactDetails.get("Last Name"),""));
leadMap.put("First Name", ifnull(contactDetails.get("First Name"),""));
leadMap.put("SMOWNERID", ifnull(contactDetails.get("SMOWNERID"),""));
leadMap.put("Email", ifnull(contactDetails.get("Email"),""));
leadMap.put("Third Email", ifnull(contactDetails.get("Third Email"),""));
leadMap.put("Secondary Email", ifnull(contactDetails.get("Second Email"),""));
leadMap.put("Phone", ifnull(contactDetails.get("Phone"),""));
leadMap.put("Lead Status", ifnull(contactDetails.get("Contact Status"),""));
leadMap.put("Created On", ifnull(contactDetails.get("Created On"),""));
leadMap.put("Notes", ifnull(contactDetails.get("Notes"),""));
leadMap.put("Skype ID", ifnull(contactDetails.get("Skype ID"),""));
leadMap.put("Wechat ID", ifnull(contactDetails.get("Wechat ID"),""));
createLead = zoho.crm.create("Leads", leadMap);
id = createLead.get("Id");
contactRelNotes = zoho.crm.getRelatedRecords("Notes", "Contacts", contactIdStr);
countVal = 0;
pour chaque ele dans contactRelNotes
{
countVal = (countVal + 1);
notemap = map();
notemap.put("entityId", id);
notemap.put("Note Title", ifnull(ele.get("Title")," "));
notemap.put("Note Content", ifnull(ele.get("Note Content")," "));
notecreate = zoho.crm.create("Notes", notemap);
}
TaskDetails = zoho.crm.getRelatedRecords("Tasks", "Contacts", contactIdStr);
pour chaque ele dans TaskDetails
{
TaskId = ele.get("ACTIVITYID");
taskMap = map();
taskMap.put("SEID", id);
taskMap.put("SEMODULE", "CustomModule2");
UpdateTask = zoho.crm.updateRecord("Tasks", TaskId, taskMap);
}
EventDetails = zoho.crm.getRelatedRecords("Events", "Contacts", contactIdStr);
pour chaque ele dans EventDetails
{
eventId = ele.get("ACTIVITYID");
eventMap = map();
eventMap.put("SEID", id);
eventMap.put("SEMODULE", "CustomModule2");
UpdateEvent = zoho.crm.updateRecord("Events", eventId, eventMap);
}
CallDetails = zoho.crm.getRelatedRecords("Calls", "Contacts", contactIdStr);
pour chaque ele dans CallDetails
{
callId = ele.get("ACTIVITYID");
callMap = map();
callMap.put("SEID", id);
callMap.put("SEMODULE", "CustomModule2");
UpdateCall = zoho.crm.updateRecord("Calls", callId, callMap);
}Créer des bons de commande à partir de Commandes clients.
Type de fonction : Workflow
Description de la fonction : vous pouvez générer des bons de commande à partir du module Sales order (Commandes clients). Cette fonction est généralement utilisée après la confirmation d'une transaction.
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour créer automatiquement des enregistrements de bons de commande à partir du module Sales Order (Commandes clients).
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Fonctions > +Configure Function (Configurer Fonction) > Write your own (Définissez la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Sales Orders (Commandes clients) ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « spoId » et choisissez la valeur « Sales Order Id ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
respMap = zoho.crm.getRecordById("SalesOrders", input.soId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
pour chaque eachProd dans productList
{
eachProdDet = eachProd.toMap();
productDesc = ifnull(eachProdDet.get("Product Description"),"");
quantity = ifnull(eachProdDet.get("Quantity"),"0");
listPrice = (ifnull(eachProdDet.get("List Price"),"0.0")).toDecimal();
netTotal = (ifnull(eachProdDet.get("Net Total"),"0.0")).toDecimal();
linediscount = (ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
total = (ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
productId = ifnull(eachProdDet.get("Product Id"),"");
linetax = (ifnull(eachProdDet.get("Tax"),"")).toDecimal();
mp = map();
mp.put("Product Id", productId);
mp.put("Quantity", quantity);
mp.put("List Price", listPrice);
mp.put(("Discount"), linediscount);
mp.put("Total", total);
mp.put("Tax", linetax);
mp.put("Net Total", netTotal);
pdlist.add(mp);
}
paramap = map();
paramap.put("Products", pdlist);
paramap.put("Subject", ifnull(respMap.get("Subject"),""));
paramap.put("CONTACTID", ifnull(respMap.get("CONTACTID"),""));
paramap.put("Terms and Conditions", ifnull(respMap.get("Terms and Conditions"),""));
paramap.put("Description", ifnull(respMap.get("Description"),""));
paramap.put("Tax", (ifnull(respMap.get("Tax"),"0.0")).toDecimal());
paramap.put("Adjustment", (ifnull(respMap.get("Adjustment"),"0.0")).toDecimal());
paramap.put(("Discount"), (ifnull(respMap.get(("Discount")),"0.0")).toDecimal());
paramap.put("Sub Total", (ifnull(respMap.get("Sub Total"),"0.0")).toDecimal());
paramap.put("Grand Total", (ifnull(respMap.get("Grand Total"),"0.0")).toDecimal());
createResp = zoho.crm.create("PurchaseOrders", paramap);Mettre à jour tous les champs associés d'un contact lorsqu'un champ est mis à jour dans Accounts (Comptes).
Type de fonction : Workflow
Description de la fonction : avec cette Fonction, il est possible de mettre à jour l'ensemble des champs associés d'un enregistrement particulier lorsqu'il est mis à jour dans le module Accounts (Comptes).
Comment l'exécuter : associez cette Fonction à la règle de workflow appropriée pour mettre à jour automatiquement tous les champs associés du contact.
- Cliquez sur Setup (Configuration) > Automation (Automatisation) > Actions > Functions (Fonctions) > +Configure Function (Configurer Fonction) > Write your own (Définir la vôtre) > Choisissez « Module to be associated as (Module à associer comme) « Accounts (Comptes) ».
- Entrez un nom pour la Fonction et cliquez sur « Free flow scripting » (Script en flux libre).
- Copiez le script de code indiqué ci-dessous.
- Cliquez sur « Edit arguments » (Modifier les arguments).
- Entrez le nom « acctId » et la valeur « Account Id ».
- Cliquez sur +Add argument (+Ajouter un argument) et saisissez le nom « Type ».
- Entrez la valeur « Account Type (Type de compte) ».
- Cliquez sur Done (Terminé).
- Vérifiez le script du code et cliquez sur Save (Enregistrer).
Script :
accountIdStr = input.accountId.toString();
relatedcontacts = zoho.crm.getRelatedRecords("Contacts", ("Accounts"), accountIdStr);
info relatedcontacts;
pour chaque ele dans relatedcontacts
{
contactId = ifnull(ele.get("CONTACTID"),"");
mp = map();
mp.put("Contact Type", input.type );
update = zoho.crm.updateRecord("Contacts", contactId, mp);
info mp;
info update;
}