0

I need an output as follows for 1200+ accounts:

accounts_count = {
    "a": 120,
    "b": 45,
    "z": 220
}

So it will take the first Letter of an account name and make count for all account with their initial letter.

How can I solve it using Zoho Deluge script in a custom function?

1 Answer 1

1

The hard part is getting all the contacts due to the 200 record limit in zoho

I'm not going to provide the full solution here, just the harder parts.


// this is the maximum number of records that you can query at once
max = 200;
// set to a value slightly higher than you need

max_contacts = 1500;

// round up one
n = max_contacts / max + 1;

// This is how many times you will loop (convert to int)
iterations = n.toNumber();

// this is a zoho hack to create a range of the length we want
counter = leftpad("1",iterations).replaceAll(" ","1,").toList();

// set paging
page = 1;

// TODO: initialize an alphabet map
//result = Map( {a: 0, b:0....});

// set to true when done so you're not wasting API Calls
done = false;

for each  i in counter
{
    // prevent extra crm calls
    if(!done)
    {
        response = zoho.crm.getRecords("Contacts",page,max);
        if(!isEmpty(response))
        {
            if(isNull(response.get(0)) && !isNull(response.get("code")))
            {
                info "Error:";
                info response;
            }
            else
            {
                for each  user in response
                {
                    // this is the easy part: get the first letter (lowercase)
                    // get the current value and add one
                    // set the value again
                    // set in result map
                }
            }
        }
        else
        {
            done = true;
        }
    }
    // increment the page
    page = page + 1;
}

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.