Funktion – Beispiele
Funktionen helfen Ihnen, Daten in zugehörigen CRM-Modulen oder Anwendungen von Drittanbietern zu aktualisieren, indem Sie einfache Programmskripte ausführen. Mit Funktionen können Sie Skripte mithilfe des Deluge-Skripts (powered by Zoho Creator) programmieren, sie mit Workflow-Regeln verknüpfen und den Geschäftsprozess automatisieren. Nachfolgend sind einige der nützlichsten Funktionen aufgeführt.
Schaltflächen-Funktionen
Konvertieren von Leads in Datensätze in anderen Modulen.
Funktionstyp: Schaltfläche
Funktionsbeschreibung: Sie können Leads mit nur einem Klick in Datensätze anderer Module wie "Accounts", "Contacts", "Potentials" usw. umwandeln.
So funktioniert es:
Platzierung der Schaltfläche: Die Schaltfläche muss auf der Ansichtsseite des "Leads"-Moduls platziert werden.
Argumentzuordnung: Zur Konfigurierung dieser Aktion:- Klicken Sie auf Setup > Anpassung > Module > Leads > Links und Schaltflächen > +Neue Schaltfläche erstellen.
- Geben Sie den Namen der Schaltfläche ein > Wählen Sie die Ansichtsseite > Wählen Sie Schreibfunktionen.
- Geben Sie den Namen der Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie den unten angegebenen Code.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als leadId ein, und wählen Sie den Wert als Lead-ID aus.
- Klicken Sie auf +Argument hinzufügen, und geben Sie den Namen als Authtoken ein.
- Klicken Sie auf Benutzerdefinierten Wert angeben, und geben Sie den CRM-Authtoken in das Feld ein.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
- Klicken Sie auf der Seite Ihre Schaltfläche erstellen auf Speichern.
Hinweis
Wenn Sie den Lead-Datensatz nach der Konvertierung nicht löschen möchten, kommentieren Sie die letzte Zeile des Skripts.
Skript:
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);
gibt "Lead erfolgreich konvertiert" zurück;Rechnungen aus Bestellungen erstellen.
Funktionstyp: Schaltfläche
Funktionsbeschreibung: Erstellen Sie mit nur einem Tastendruck eine Rechnung zu einer Bestellung. So einfach ist das.
So funktioniert es:
Platzierung der Schaltfläche: Diese Schaltfläche muss auf der Ansichtsseite des Moduls "Bestellung" platziert werden.
Argumentzuordnung: Zur Konfigurierung dieser Aktion:- Klicken Sie auf Setup > Anpassung > Module > Bestellungen > Links und Schaltflächen > +Neue Schaltfläche erstellen.
- Geben Sie den Namen der Schaltfläche ein > Wählen Sie die Ansichtsseite > Wählen Sie Schreibfunktionen.
- Geben Sie den Namen der Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie den unten angegebenen Code.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als poId ein, und wählen Sie den Wert als Bestellungs-ID aus.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
- Klicken Sie auf der Seite Ihre Schaltfläche erstellen auf Speichern.
Skript:
respMap = zoho.crm.getRecordById("PurchaseOrders", input.poId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
for each eachProd in 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);
gibt "Rechnung erfolgreich erstellt" zurück;Bestellungen aus Kundenauftrag erstellen.
Funktionstyp: Schaltfläche
Funktionsbeschreibung: Sie können Bestellungen aus Datensätzen im Kundenauftrag generieren. Dies ist hilfreich, wenn Sie feststellen, dass ein Geschäftsabschluss zustande kommen würde.
So funktioniert es:
Platzierung der Schaltfläche: Diese Schaltfläche muss auf der Ansichtsseite des Moduls "Sales Orders" platziert werden.
Argumentzuordnung: Zur Konfigurierung dieser Aktion:- Klicken Sie auf Setup > Anpassung > Module > Sales Orders > Links und Schaltflächen > +Neue Schaltfläche erstellen.
- Geben Sie den Namen der Schaltfläche ein > Wählen Sie die Ansichtsseite > Wählen Sie Schreibfunktionen.
- Geben Sie den Namen der Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie den unten angegebenen Code.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als soId ein, und wählen Sie den Wert als Kundenauftrags-ID aus.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
- Klicken Sie auf der Seite Ihre Schaltfläche erstellen auf Speichern.
Skript:
respMap = zoho.crm.getRecordById("SalesOrders", input.soId.toLong());
productDet=ifnull(respMap.get("product"),"");
productList=productDet.toJSONList();
pdlist=List();
for each eachProd in 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);
gibt "PO erfolgreich erstellt" zurück;Versenden von Massen-E-Mails aus dem Modul "Leads" oder "Contacts".
Funktionstyp: Schaltfläche
Funktionsbeschreibung: Sie können aus der Listenansicht der Module "Leads" oder "Contacts" mit nur einem Klick auf eine Schaltfläche E-Mails an mehrere Datensätze senden.
So funktioniert es:
Platzierung der Schaltfläche: Die Schaltfläche muss auf der Ansichtsseite der Module "Leads" oder "Contacts" platziert werden.
Argumentzuordnung: Zur Konfigurierung dieser Aktion:- Klicken Sie auf Setup > Anpassung > Module > Leads > Links und Schaltflächen > +Neue Schaltfläche erstellen.
- Geben Sie den Namen der Schaltfläche ein > Wählen Sie die Listenansichtsseite > Wählen Sie Schreibfunktionen.
- Geben Sie den Namen der Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie den unten angegebenen Code.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als leadId ein, und wählen Sie den Wert als Lead-ID aus.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
- Klicken Sie auf der Seite Ihre Schaltfläche erstellen auf Speichern.
Skript:
leadIdsList = input.leadId.toList("|||");
for each leadIdStr in leadIdsList
{
resp = zoho.crm.getRecordById("Leads", leadIdStr.toLong());
email = ifnull(resp.get("Email"),"");
sendmail
(
An: E-Mail
Von: zoho.adminuserid
Betreff: "Betreff der E-Mail";
Nachricht: "Dies ist die Nachricht von der Funktion "Mail versenden"";
)
}
gibt "LeadID" + input.leadId zurück;Ansichtsseite "Feldaktualisierung und E-Mail-Liste senden".
Funktionstyp: Schaltfläche
Funktionsbeschreibung: Wenn Sie mehrere Datensätze aktualisieren und gleichzeitig E-Mails an diese senden möchten, benötigen Sie nur eine Schaltfläche. Natürlich zusammen mit dieser Funktion.
So funktioniert es:
Platzierung der Schaltfläche: Diese Schaltfläche muss auf der Ansichtsseite eines benutzerdefinierten Moduls platziert werden.
Argumentzuordnung: Zur Konfigurierung dieser Aktion:- Klicken Sie auf Setup > Anpassung > Module > Benutzerdefiniertes Modul > Links und Schaltflächen > +Neue Schaltfläche erstellen.
- Geben Sie den Namen der Schaltfläche ein > Wählen Sie die Ansichtsseite > Wählen Sie Schreibfunktionen.
- Geben Sie den Namen der Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie den unten angegebenen Code.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als custommoduleId ein, und wählen Sie den Wert als Benutzerdefinierte Modul-ID aus.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
- Klicken Sie auf der Seite Ihre Schaltfläche erstellen auf Speichern.
Skript:
IdsList = input.Id.toList("|||");
for each IdStr in 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
(
An: E-Mail
Von: zoho.adminuserid
Betreff: "Genehmigungs-E-Mail";
Nachricht: " )
}
gibt "Erfolg" zurück;
Workflow-Funktionen
Berechnen Sie Provisionen in Angeboten.
Funktionstyp: Workflow
Funktionsbeschreibung: Die Gesamtprovision, die von allen Produkten der Angebote generiert wird, wird auf der Seite "Angebote" angezeigt. Dadurch wird es einfacher, die Gesamtprovision, die Sie erhalten, anzuzeigen, ohne sie manuell berechnen zu müssen.
So funktioniert es: Sie müssen diese Funktion mit der entsprechenden Workflow-Regel verknüpfen, um die Gesamtprovision jedes Produkts im Angebotsmodul automatisch zu aktualisieren.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Angebote zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein , und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als quoteId und den Wert als Angebots-ID ein.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
quoteIdStr = input.quoteId.toString();
quoteMap = zoho.crm.getRecordById("Quotes", input.quoteId);
productDet = ifnull(quoteMap.get("product"),"");
productList = productDet.toJSONList();
value = 0.0;
for each eachProd in productList
{
eachProdDet = eachProd.toMap();
qty = (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();
value = (value + commission * qty);
}
params = map(); params.put("Total Commission", value);
updateResp = zoho.crm.updateRecord("Quotes", quoteIdStr, params);Berechnung der Steuern in Produktpositionen.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können den Steuerbetrag für alle Produkte berechnen und im Modul "Invoices" anzeigen.
So funktioniert es: Sie müssen diese Funktion mit der entsprechenden Workflow-Regel verknüpfen, um die Steuer jedes Produkts in "Invoices" zu berechnen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Rechnungen zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als invoiceId und den Wert als Rechnungs-ID ein.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
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;
value = 0.0;
pdlist = List();
for each eachProd in 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")
{
value = 12.5;
price = (price + total + 12.5 - discount);
}
else
{
if (Taxvalue == "Surcharge")
{
value = 0.625;
price = (price + total + 0.625 - discount);
}
else
{
value = 12.625;
price = (price + total + 0.625 + 12.5 - discount);
}
}
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);Konvertieren von Leads in Datensätze in anderen Modulen.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können Leads automatisch in Datensätze anderer Module wie "Accounts", "Contacts", "Potentials" usw. umwandeln.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um Leads automatisch in Konten, Kontakte usw. umzuwandeln.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Leads zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als leadId ein und den Wert als Lead-ID.
- Klicken Sie auf +Argument hinzufügen, und geben Sie den Namen als Authtoken ein.
- Klicken Sie auf Benutzerdefinierten Wert angeben, und geben Sie den CRM-Authtoken in das Feld ein.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Hinweis
Wenn Sie den Lead-Datensatz nach der Konvertierung nicht löschen möchten, kommentieren Sie die letzte Zeile des Skripts.
Skript:
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);Kontakte aus benutzerdefinierten Modulen erstellen.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können einen Kontaktdatensatz direkt aus den Informationen eines beliebigen benutzerdefinierten Moduls erstellen.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um Kontakte automatisch aus benutzerdefinierten Modulen zu erstellen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Benutzerdefiniertes Modul zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als customId ein und den Wert als Benutzerdefinierte Modul-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
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);Erstellen eines benutzerdefinierten Moduls aus einem benutzerdefinierten Modul.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können ein neues benutzerdefiniertes Modul aus den Datensätzen eines anderen benutzerdefinierten Moduls erstellen. Dies ist besonders nützlich, wenn Sie Informationen von einem Modul zum anderen übertragen müssen. Lassen Sie die Funktion das für Sie tun.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um ein benutzerdefiniertes Modul automatisch mit den Datensätzen eines anderen benutzerdefinierten Moduls zu erstellen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Benutzerdefiniertes Modul zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als CustommoduleId ein und den Wert als Benutzerdefinierte Modul-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
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);Erstellen von Follow-up-Aktivitäten.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können Follow-up-Aktivitäten für Ihre Kontakte erstellen. Dies ist eine der wichtigsten und nützlichsten Funktionen, da sie unzähligen Mitarbeitern die Arbeit erleichtert.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um Follow-up-Aktivitäten automatisch für den ausgewählten Kontaktdatensatz anzulegen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Kontakte zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als contactId ein und den Wert als Kontakt-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
contactIdStr = input.contactId.toString();
TaskDetails = zoho.crm.getRelatedRecords("Tasks", "Contacts", contactIdStr);
for each Task in 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);
for each Event in 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);
for each Call in 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);
}
}Rechnungen aus Bestellungen erstellen.
Funktionstyp: Workflow
Funktionsbeschreibung: Durch die Definition dieser Funktion können Sie Rechnungen zu Bestellungen automatisch generieren.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um automatisch Rechnungen zu erstellen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Bestellungen zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als potId ein und den Wert als Bestellungs-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
respMap = zoho.crm.getRecordById("PurchaseOrders", input.poId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
for each eachProd in 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);Erstellen von Leads aus einem Kontakt mit allen zugehörigen Daten.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können Leads aus Kontaktdatensätzen sofort erstellen. Dies ist hilfreich, wenn Sie ein neues Geschäft mit einer bekannten Person abschließen möchten.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um Lead-Datensätze automatisch aus Kontakten zu erstellen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Kontakte zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als contactId ein und den Wert als Kontakt-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
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;
for each ele in 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);
for each ele in 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);
for each ele in 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);
for each ele in CallDetails
{
callId = ele.get("ACTIVITYID");
callMap = map();
callMap.put("SEID", id);
callMap.put("SEMODULE", "CustomModule2");
UpdateCall = zoho.crm.updateRecord("Calls", callId, callMap);
}Bestellungen aus Kundenauftrag erstellen.
Funktionstyp: Workflow
Funktionsbeschreibung: Sie können Bestellungen aus dem Modul "Sales Order" generieren. In der Regel wird diese Funktion nach einem Geschäftsabschluss verwendet.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um Bestelldatensätze automatisch aus dem Modul "Sales Order" zu erstellen.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Kundenaufträge zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als soId ein und den Wert als Kundenauftrags-ID.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
respMap = zoho.crm.getRecordById("SalesOrders", input.soId.toLong());
productDet = ifnull(respMap.get("product"),"");
productList = productDet.toJSONList();
pdlist = List();
for each eachProd in 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);Alle zugehörigen Kontaktfelder aktualisieren, wenn ein Feld in "Konten" aktualisiert wird.
Funktionstyp: Workflow
Funktionsbeschreibung: Mit dieser Funktion ist es möglich, alle zugehörigen Felder eines bestimmten Datensatzes zu aktualisieren, wenn er im Modul "Accounts" aktualisiert wird.
So funktioniert es: Verknüpfen Sie diese Funktion mit einer entsprechenden Workflow-Regel, um alle zugehörigen Kontaktfelder automatisch zu aktualisieren.
- Klicken Sie auf Setup > Automatisierung > Aktionen > Funktionen > +Funktion konfigurieren > Eigene schreiben > Wählen Sie "Als Konten zu verknüpfendes Modul".
- Geben Sie einen Namen für die Funktion ein, und klicken Sie auf Free-Flow-Scripting.
- Kopieren Sie das unten stehende Codeskript.
- Klicken Sie auf Argumente bearbeiten.
- Geben Sie den Namen als acctId ein und den Wert als Konto-ID.
- Klicken Sie auf +Argument hinzufügen, und geben Sie den Namen als Typ ein.
- Geben Sie den Wert als Kontoart ein.
- Klicken Sie auf Fertig.
- Überprüfen Sie das Codeskript, und klicken Sie auf Speichern.
Skript:
accountIdStr = input.accountId.toString();
relatedcontacts = zoho.crm.getRelatedRecords("Contacts", ("Accounts"), accountIdStr);
info relatedcontacts;
for each ele in 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;
}