Using functions in Zoho CRM Circuits, howto and solution

Using functions in Zoho CRM Circuits, howto and solution

So, I don't know if anyone has tried this yet but Circuits can be a pretty powerful solution to process data and get the job done in a more structured way. However Circuits are not that easy as it looks. One of the problems that we had to overcome was how to use the returned result of a function in a Circuit.

Even though the Log viewer showed exactly the right results, stuff like applying conditions in a Branche state did not work. Searching the documentation (for hours) and testing all kinds of settings did not provide a solution and after a session with support of 2 hours the final solution came to light.

There are requirements to the json output of a function before you can use it in a circuit. So in order to make it easy for the rest I created a wrapper function that will output the right format.

  1. String circuitWrapper(String payload)
  2. /*

    The output format that is needed for use of functions in circuits is below. This wrapper creates this format
    This only applies to functions of which results are used in follow up states

    {
        "crmAPIResponse": {
            "body": {
                "code": "success",
                "details": {
                    "output": {
                        "acb": "1234"
                    }
                }
            }
        }
    }
    */
    returnMap = Map();
    customAPIResponse = Map();
    outputMap = Map();
    body = Map();
    outputMap.put("output",payload.toMap());
    body.put("code","success");
    body.put("details",outputMap);
    customAPIResponse.put("body",body);
    returnMap.put("crmAPIResponse",customAPIResponse);
    return returnMap;
So in order to adapt a function to be used in a Circuit, just create this function and output the result in your fuction by

return standalone.circuitWrapper(payload);

One final tip: if you want to learn more about Circuits, check out the Catalyst documentation on the topic. It is more extensive than the one for CRM.
    • Sticky Posts

    • Function #46: Auto-Calculate Sales Margin on a Quote

      Welcome back everyone! Last week's function was about displaying the discount amount in words. This week, it's going to be about automatically calculating the sales margin for a particular quote, sales order or an invoice. Business scenario Where there is sales, there's also evaluation and competition between sales reps. A healthy rivalry helps to better motivate your employees to do smart work and close deals faster and more efficiently. But how does a sales rep get evaluated? 90% of the time, it's
    • Zoho CRM Functions 53: Automatically name your Deals during lead conversion.

      Welcome back everyone! Last week's function was about automatically updating the recent Event date in the Accounts module. This week, it's going to be about automatically giving a custom Deal name whenever a lead is converted. Business scenario Deals are the most important records in CRM. After successful prospecting, the sales cycle is followed by deal creation, follow-up, and its subsequent closure. Being a critical function of your sales cycle, it's good to follow certain best practices. One such
    • User Tips: Auto-Create Opportunity/Deal upon Quote Save (PART 1)

      Problem: We use quotes which convert to sales orders but Users / Sales Reps do not create opportunities / deals and go straight to creating a quote. This leads to poor reporting. Implementing this solution improves reporting and makes it easier for users.
    • Custom Function : Automatically send the Quote to the related contact

      Scenario: Automatically send the Quote to the related contact.  We create Quotes for customers regularly and when we want to send the quote to the customer, we have to send it manually. We can automate this, using Custom Functions. Based on a criteria, you can trigger a workflow rule and the custom function associated to the rule and automatically send the quote to customer through an email. Please note that the quote will be sent as an inline email content and not as a PDF attachment. Please follow
    • Function #50: Schedule Calls to records

      Welcome back everyone! Last week's function was about changing ownership of multiple records concurrently. This week, it's going to be about scheduling calls for records in various modules. Business scenario Calls are an integral part of most sales routines.. Sales, Management, Support, all the branches of the business structure would work in cohesion only through calls. You could say they are akin to engine oil, which is required by the engine to make all of it's components function perfectly. CRM