Kaizen #193: Creating different fields in Zoho CRM through API

Kaizen #193: Creating different fields in Zoho CRM through API

🎊 Nearing 200th Kaizen Post – We want to hear from you!
Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone. 

Hello all, welcome back to another exciting Kaizen post!

In Zoho CRM, you have the option to tailor modules according to your organization's unique needs using custom fields. These can be created manually in the module builder or via API.

From Zoho CRM API version 6, you can add custom fields via API using the below endpoint:
POST 
{api-domain}/crm/{version}/settings/fields?module={module_API_name}

From Zoho CRM API version 8, additional field types like multi-select lookups, multi-user lookup additions are also supported.
This article is intended to be a guide on how to create fields through the API.

Field Type (UI)
Field Data Type 
Single Line
text
Multi-Line
textarea
Email
email
Phone
phone
Pick List
picklist
Multi Select
multiselectpicklist
Date
date
Date/Time
datetime
Number
integer
Auto-Number
autonumber
Currency
currency
Decimal
double
Percent
percent (only in POST)
Long Integer
bigint
Checkbox
Boolean
URL
website
Lookup
lookup
Formula
formula
User (Type- Single User)
userlookup
User (Type- Multiple Users)
multiuserlookup
File Upload
fileupload
Image Upload
imageupload
Rollup Summary
rollup_summary
Multi-Select Lookup
multiselectlookup

The fields in below JSON are common for all fields. Field types such as single line text, phone, email, date, datetime, integer, and url fields consists of the below common fields alone and there are no dependent fields for them. 
{
  "fields": [
    {
      "field_label": "Your Field Label",
      "data_type": "<field_type>",
      "length": "<length>",
      "tooltip": {
        "name": "static_text",
        "value": "Tooltip message"
      },
      "profiles": [
        {
          "id": "<profile_id_1>",
          "permission_type": "read_write"
        },
        {
          "id": "<profile_id_2>",
          "permission_type": "read_only"
        }
      ],
      "external": {
        "type": "user",
        "show": false
      },
      "crypt": {
        "mode": "decryption"
      }
    }
  ]
}


Key
Mandatory
Description
field_label



Yes
Display name of the field
date_type
Yes
Field type
length
No
Max number of characters allowed for a field
filterable
No
Whether field can be used in filters. When set to true, the field will be available for use in Criteria Pattern Editors. Note that it is not applicable for imageupload, fileupload, textarea, and formula fields 
tooltip
No
Field help text; name can be static_text or info_icon 
profiles
No
Access control per profile (read_write, read_only, hidden)
crypt
No
Whether to encrypt the field (encryption or decryption)
unique
No
Enforce uniqueness across records
hipaa_compliance_enabled
No
Enable HIPAA protection
private
No
Enable GDPR-level handling (Low or High)

Single line Field

The single line field is a string field that can store 255 characters, and alphanumeric and special characters. It can be used to store fields like name, company, account name, etc. To create a single line field, give data_type as text
A single line field can be marked as an external field. An external field is used to hold a record's unique ID available in an external system.
{
    "fields": [
        {
            "data_type": "text",
            "field_label": "External ID",
            "external": {
                "type": "org",
                "show": true
            }
        }
    ]
}

Multiline Fields

The multi line field is a string field that can be used when you need a larger string field. It accepts alphanumeric and special characters. Multiline fields are of three types: plain text small, plain text large, and rich text field.
Multi-line field type
Character limit
Can be marked Mandatory?
Can be Encrypted?
Plain text small
Up to 2000
Yes
Yes
Plain text large
Up to 32000
Yes
No
Rich text (RTF)
Up to 50000
No
No

1) Plain Text Small Field

This type of multi-line field is ideal for concise entries up to 2000 character size. To create a plain text small multi line field, give data_type as textarea and type key in text area JSON object as "small".
{
    "fields": [
        {
            "field_label": "Apartment_details",
            "data_type": "textarea",
            "length" : 2000,
            "textarea": {
                "type": "small"
            }
        }
    ]
}

2) Plain Text Large Field

This type of multi line field is ideal for more extensive entries of up to 32000 character size. To create a plain text large multi line field, give data_type as textarea and type key in text area JSON object as "large".

{
    "fields": [
        {
            "field_label": "Apartment_details",
            "data_type": "textarea",
            "length" : 32000,
            "textarea": {
                "type": "large"
            }
        }
    ]
}

3) Rich text Field

Rich text field is ideal when formatted text needs to be entered. The length of the entry can be up to 50000 characters. To create a plain text large multi line field, give data_type as textarea and type key in text area JSON object as "rich_text"
{
    "fields": [
        {
            "field_label": "Apartment_details",
            "data_type": "textarea",
            "length" : 50000,
            "textarea": {
                "type": "rich_text"
            }
        }
    ]
}

Picklist Field

Picklist is a field that lets you choose a value from a set of predefined values. The pick list value accepts all alphanumeric and special characters.
To create a picklist field, give data_type as picklist .Picklist fields have dependent JSON array - pick_list_values.  
  • pick_list_values: This JSON array comprises the options for the picklist field. Inside the array, display_value and actual_values stores the label shown for the picklist value in the CRM UI and the actual internal value of the picklist option respectively.  The colour_code field consists of the color code of the picklist option in hex format, if color code is enabled.
  • enable_colour_code - Boolean value that represents whether color code is enabled for the script
  • history_tracking_enabled -   This key when set as true audit/history tracking for the picklist field is enabled. Users with Module Customization permission can enable picklist history tracking. You can enable tracking for one picklist field per module, and this will be applicable across all layouts.
{
  "fields": [
    {
      "field_label": "Your picklist's field label",
      "data_type": "picklist",
      "enable_colour_code": true,
      "history_tracking_enabled": true,
      "pick_list_values": [
        {
          "display_value": "Option 1",
          "colour_code": "#af38fa",
          "actual_value": "Option 1"
        },
        {
          "display_value": "Option 2",
          "colour_code": "#ffd6bc",
          "actual_value": "Option 2"
        },
        {
          "display_value": "Option 3",
          "colour_code": "#cfddbc",
          "actual_value": "Option 3"
        }
      ]
    }
  ]
}

Global picklist Field

Global sets in Zoho CRM is a type of picklist that helps you easily manage picklist values that recur across modules. To create a global picklist, use the Create Global Picklist API. The global picklist can then be associated to a module in the below format using the Create Custom Field API.
{
  "fields": [
    {
      "field_label": "Source",
      "data_type": "picklist",
      "global_picklist": {
        "id": "72223455366"//Id of the global picklist
      }
    }
  ]
}

Multi-Select Picklist Field

Multi-select picklist allows you to select multiple values while creating or editing record. The pick list value accepts all alphanumeric and special characters. To create a multi select picklist, give data type as multiselectpicklist.
Note that Picklist tracking is not supported for multi-select picklists
{
    "fields": [
        {
            "field_label": "Preferred working days",
            "data_type": "multiselectpicklist", // Specify the data type as multiselectpicklist* 
            "pick_list_values": [
                {
                    "display_value": "Monday",
                    "actual_value": "1"
                },
                {
                    "display_value": "Tuesday",
                    "actual_value": "2"
                },
                {
                    "display_value": "Wednesday",
                    "actual_value": "3"
                },
                {
                    "display_value": "Thursday",
                    "actual_value": "4"
                },
                {
                    "display_value": "Friday",
                    "actual_value": "5"
                }
            ],
            "pick_list_values_sorted_lexically": true,
            "enable_colour_code": true
        }
    ]
}

Auto Number Field

Auto Number fields are used for assigning a unique incremental number automatically to each record, making identification easy. To create an auto number field, set "data_type" as "autonumber" and include an auto_number object with the following keys:

  • start_number (mandatory) – Starting value for the auto-number sequence.
  • prefix (optional) – (String) to prepend to the number.
  • suffix (optional) – (String) to append to the number.
  • _update_existing_records (optional) – (Boolean). If set to true, updates existing records with new auto-numbers based on the current format. Default value is false.
{
  "fields": [
    {
      "field_label": "Order ID",
      "data_type": "autonumber",
      "auto_number": {
        "start_number": 1000,
        "prefix": "ORD-",
        "suffix": "-2025",
        "_update_existing_records": true
      }
    }
  ]
}

Currency Field

Currency field is used to store amount values. To create a currency field, set "data_type" as "currency" and define the currency JSON object with the following keys:
  • rounding_option(mandatory) – Specifies how values should be rounded:
    • "normal" – No rounding.
    • "round_off" – Rounds to nearest based on precision.
    • "round_up" – Always rounds up based on precision.
    • "round_down" – Always rounds down based on precision.
  • precision(optional) – Number of decimal places displayed in the UI (e.g., 123.466 with precision 2 becomes 123.47).
  • decimal_place(optional) – Maximum number of decimal places stored. Values beyond this are truncated. Max allowed decimal places: 9.
{
  "fields": [
    {
      "field_label": "Deal Amount",
      "data_type": "currency",
      "currency": {
        "rounding_option": "round_up",
        "precision": 2,
        "decimal_place": 3
      }
    }
  ]
}

Decimal Field

Decimal field is used to store decimal numbers. To add a decimal (floating point) number field, use "data_type": "double".
  • length(optional) – Total number of digits allowed, including both sides of the decimal point.
  • decimal_place(optional) – Number of digits to allow after the decimal point (e.g., 2 means values like 123.45).
{
  "fields": [
    {
      "field_label": "Discount Rate",
      "data_type": "double",
      "length": 16,
      "decimal_place": 2
    }
  ]
}

Percent Field

This field type is used to capture percentage values, such as scores or growth rates. To create a percentage field, use "data_type": "percent". 
{
  "fields": [
    {
      "field_label": "Enrollment number",
      "data_type": "bigint",
      "length": 18,
      "separator": true
    }
  ]
}

Long Integer Field

Long Integer Fields are number fields that accept up to 18 digits. To create a long integer field, use "data_type": "bigint".  
{
  "fields": [
    {
      "field_label": "Enrollment number",
      "data_type": "bigint",
      "length": 18,
      "separator": true
    }
  ]
}

Separator: a Boolean key that indicates whether the number is formatted for better readability. It is applicable for data types integer, double, bigint. Refer to this article on changing locale information for information on how to change it.

Checkbox Field

Checkbox value allows you to select or unselect a value indicating true or false. To create a checkbox field, use "data_type": "boolean".
{
  "fields": [
    {
      "field_label": "Previously Employed?",
      "data_type": "boolean"
    }
  ]
}

Lookup Field

Use "data_type": "lookup" to associate records from another module. The lookup JSON object defines the target module, display label, and optional filter criteria.
  • module.api_name(mandatory) – API name of the target module (get via Modules API).
  • display_label(mandatory) – Label shown in the related list.
  • query_details(optional) – Used to define lookup filters. Inside query_details JSON Object following keys are present:
    • criteria(mandatory if query_details is used) – Filter logic.
    • group_operator – "AND"/"OR" (required for multiple conditions).
    • group – Array of filter conditions. Each condition includes:
      • field.api_name: Field in the target module
      • comparator: Operator like contains, equal
      • value: Value to match
  • revalidate_filter_during_edit(optional) – If true, validates filter conditions on record edit.
{
  "fields": [
    {
      "field_label": "Your lookup",
      "data_type": "lookup",
      "lookup": {
        "module": {
          "api_name": "Contacts"
        },
        "display_label": "Contact Lookup",
        "revalidate_filter_during_edit": true,
        "query_details": {
          "criteria": {
            "group_operator": "AND",
            "group": [
              {
                "field": {
                  "api_name": "Phone"
                },
                "comparator": "contains",
                "value": "91"
              },
              {
                "field": {
                  "api_name": "Lead_Source"
                },
                "comparator": "equal",
                "value": [
                  "Cold Call"
                ]
              }
            ]
          }
        }
      }
    }
  ]
}

Formula Field

Formula fields are used to calculate different types of values, including numeric values, text values, date values, etc. Use "data_type": "formula" to calculate dynamic values based on other fields.
For more details on all the available usages in the formula field, refer to this help doc on formula field. The formula object defines the logic and output type.
  • formula.return_type (mandatory for formula field) – Output type of the formula. Possible values: double, currency, text, date, datetime, boolean
  • formula.expression(mandatory) – The actual formula logic (e.g., "Sqrt(Len(${Email}))").
  • decimal_place(optional) – Number of decimal places (only for double or currency).
  • number_separator(optional) – If true, formats the number using separators (default is true).
{
  "fields": [
    {
      "field_label": "Total amount",
      "data_type": "formula",
      "formula": {
        "return_type": "double",
        "expression": "${Amount} + 150"
      },
      "decimal_place": 0,
      "number_separator": false
    }
  ]
}

Auto refresh formula field

These type of formula fields are used when you need an accurate time measurement whenever you view the record. The key "dynamic" set as true indicates that the field is an auto refresh formula field.
 For example, the age of a deal can be calculated by comparing the created time of the deal with the current time. A condition can be given to stop computing the value of the auto refresh field. 
  • dynamic: When set as true, indicates that the formula field is an auto refresh field.
  • stop_compute_conditionally:  When set as true, indicates that the computation of field stops when the condition given in stop_compute_expression key
  • stop_compute_expression:  Mandatory when stop_compute_conditionally is true. Consists of the condition for stopping computation of the auto refresh formula field.
{
    "fields": [
        {
            "field_label": "Deal Age",
            "data_type": "formula",
            "formula": {
                "expression": "Datecomp(${Created_Time},Now())",
                "return_type": "double",
                "dynamic": true,
                "stop_compute_conditionally": true,
                "stop_compute_expression": "${Probability}==100"//When the deal probability is 100, the calculation gets stopped.
            }
        }
    ]
}

User lookup Field

User lookup field is used to associate a specific user to a record of the module. Use "data_type": "userlookup" to add a user lookup field.
The lookup JSON object defines the key properties of the user lookup
  • query_details (JSON object): Defines filters to restrict which users are selectable.
  • criteria: Uses a group of field conditions (field, comparator, value) with a group_operator (AND, OR) to filter users.
  • revalidate_filter_during_edit (Boolean): If true, the criteria is reevaluated on record edit for the value selected on the record creation. This option is useful when associated values or fields have changed due to updates. It allows users to re-check and confirm that the correct records are still linked when editing the record.
  • sharing_properties (JSON object):  Contains details of access given to users
    •  share_preference_enabled (Boolean): If true, enables access to the records for the users.
    • share_permission (String): Defines what level of access the associated user has (e.g., "read-only", "full-access", "read-write").

{
  "fields": [
    {
      "field_label": "Assigned Sales Rep",
      "data_type": "userlookup",
      "tooltip": {
        "name": "info_icon",
        "value": "Sales user responsible for this lead"
      },
      "lookup": {
        "revalidate_filter_during_edit": true,
         //associate only users from countries India, and email containing "zylker.com".
        "query_details": {
          "criteria": {
            "group_operator": "AND",
            "group": [
              {
                "field": {
                  "api_name": "country"
                },
                "comparator": "equal",
                "value": "India"
              },
              {
                "field": {
                  "api_name": "email"
                },
                "comparator": "contains",
                "value": "@zylker.com"
              }
            ]
          }
        }
      },
      "sharing_properties": {
        "share_preference_enabled": true,
        "share_permission": "read-only"
      }
    }
  ]
}

Multiuser lookup Field

Multi-user look up is a lookup field that lets you add multiple users to a module record. It allows you to establish many-to-many relationships between modules and users in CRM.
Multi user lookup can be added by using the data_type "multiuserlookup". 
  • record_access: This Boolean key when marked as true indicates that the added user has access to the record. The users selected in the multi-user lookup field will be able to 'Edit', 'Delete', 'Change the owner' of that respective record
{
  "fields": [
    {
      "field_label": "Associated_Agents",
      "data_type": "multiuserlookup",
      "multiuserlookup": {
        "record_access": true
      }
    }
  ]
}


File Upload Field

User data type "fileupload" to add a file upload field 
{
  "fields": [
    {
      "field_label": "Resume Upload",
      "data_type": "fileupload",
      "length": 1,// Allow only 1 file, Maximum length : 5
      "tooltip": {
        "name": "info_icon",
        "value": "Upload the applicant's resume in PDF or DOC format"
      }
    }
  ]
}


Image Upload Field

User data type "imageupload" to add an image upload field
{
  "fields": [
    {
      "field_label": "Profile Photo",
      "data_type": "imageupload",
      "length": 1, // Only 1 profile photo allowed, Maximum length 10
      "tooltip": {
        "name": "info_icon",
        "value": "Upload a professional head shot for the employee record"
      }
    }
  ]
}

Rollup Summary Field

Rollup Summary is a field that aggregates or summarizes a desired related list field. Rollup Summary Fields are of two types - Custom Rollups and Predefined Rollups. You can create only custom rollups using APIs. Supported related modules for APIs are Calls, Meetings, and Tasks
  • function - Indicates the mathematical function applied to calculate the rollup summary.
  • field_label - Represents the label of the field as it appears in the UI. 
  • data_type - This must be set to "rollup_summary" for rollup summary field.
  • rollup_summary -  This object contains all the configuration details for the rollup field.
  • return_type - Specifies the type of value returned.
  • expression - Defines the calculation logic for the rollup. 
    • function_parameters  An array containing parameters needed by the function, typically including:
      • api_name: The field being summarized.
    • criteria Defines the filters to apply to the related records. Each condition includes:
      • group_operator:  If there are multiple conditions, you should also include AND or OR as the group operator for the conditions. It consists of an array of conditions.
      • group: Array element of a condition
        • field
          • api_name: The API name of the field.
        • comparator: The comparison operator (e.g., equal, greater_than, contains).
        • value: The value used in the comparison.
  • function - The function to be applied to the filtered records.  Allowed functions : COUNT, MAXIMUM, MINIMUM, AVERAGE, RECENT, UPCOMING, EARLIEST.
  • based_on_module - Specifies the module from which to summarize related records.
  • related_list - Indicates the related list within the module (e.g., "Deals", "Contacts") to summarize from.
{
    "fields": [
        {
            "field_label": "Total Invoice Amount",
            "data_type": "rollup_summary",
            "rollup_summary": {
                "return_type": "currency",
                "expression": {
                    "function_parameters": [
                        {
                            "api_name": "Grand_Total"
                        }
                    ],
                    "criteria": {
                        "group_operator": "AND",
                        "group": [
                            {
                                "comparator": "equal",
                                "field": {
                                    "api_name": "Billing_Country"
                                },
                                "value": "United States"
                            },
                            {
                                "comparator": "greater_than",
                                "field": {
                                    "api_name": "Invoice_Date"
                                },
                                "value": "2024-01-01"
                            }
                        ]
                    },
                    "function": "SUM"
                },
                "based_on_module": {
                    "api_name": "Invoices"
                },
                "related_list": {
                    "api_name": "Invoices"
                }
            }
        }
    ]
}


Multi-Select Lookup Field

 Multi-Select Lookup Field enables you to establish a many-to-many relationship between two modules in CRM.
  • multiselectlookup : The mulitselectlookup JSON object specify the linking details between the module in which the field is present and another module 
    • connected_details: This JSON object contains details about the module you want to connect the current module with.
      • module.api_name:  Specify the module API name you want to link the current module with.
      • field.field_label: When connecting a module, the system creates a new lookup field in the connected module for the current module. Use this key to specify a field label in the connected module.
  • linking_details: When creating a multi-select lookup field, the system creates a separate module connecting these two modules, which contains their common details. This module is called the linking module
    • module: Consists of the details of the linking module.
      • plural_label: Specify a plural label for the linking module.

{
    "fields": [
        {
            "field_label": "Skills",
            "data_type": "multiselectlookup",
            "multiselectlookup": {
                "connected_details": {
                    "module": {
                        "api_name": "Skills"
                    },
                    "field": {
                        "field_label": "SkillName"
                    }
                },
                "linking_details": {
                    "module": {
                        "plural_label": "EmpXSkill"
                    }
                }
            }
        }
    ]
}


    • Sticky Posts

    • Kaizen #197: Frequently Asked Questions on GraphQL APIs

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

      Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
    • Kaizen #193: Creating different fields in Zoho CRM through API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Client Script | Update - Introducing Commands in Client Script!

      Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands

    Nederlandse Hulpbronnen


      • Recent Topics

      • Zoho Books

        How do I manually insert opening balance?
      • Profit / margins on Sales orders / Invoices / Estimates

        When we select an SKU or item name in any of these documents, much info such as invoice.line_items.rate is pulled from the item & filled into the document being worked on. If we had another lineItem DB field (hidden) auto filled at the same time: invoice.line_items.purchase_rate
      • Inventory to Xero Invocie Sync Issues

        Has anyone had an issue with Invoices not syncing to Xero. It seems to be an issue when there is VAT on a shipping cost, but I cannot be 100% as the error is vague: "Unable to export Invoice 'INV-000053' as the account mapped with some items does not
      • How to activate RFQ? What if a price list has ladder price for items?

        Where can I find the option to activate request for quotation? How does it work? If the item has ladder price, does it gets calculated depending on how many items are in the cart?
      • Mailk got blocked / Inquiry About Email Sending Limits and Upgrade Options

        Dear Zoho Support Team, My name is Kamr Elsayed I created this account to use for applying for vocational training in Germany. As part of this process, I send multiple emails to different companies. However, after sending only 8 emails today, I received
      • Can't join canal Developers Zoho User

        Hello, I received an invitation to join this channel, but I get an error when I try to join it, and I get the same error when I go to the Zoho Cliq interface > Search for a channel. Is this because I don't have a license linked to this email address?
      • Desk Email reply - set default font / use custom font

        Hello, in our e-mails, which we send to our customers, a certain font must be used (Corporate Design): Segoe UI https://en.wikipedia.org/wiki/Segoe#Segoe_UI How can this be included? How can this be set as the default font to ensure that this font is
      • PDF Templates - Checkbox Borders

        Is there a way to remove the border of a radio/checkbox on a PDF? I'd like to use the function of checkbox but if there's no easy way to remove the border (the PDF form already has a rectangle so it gets cluttered), then I'm forced to create a single
      • Zoho CRM's custom views are now deployable from sandboxes

        This feature is now available for users in the AU, JP, and CN DCs. New update: This feature is now available for users in CA and SA DCs. Hello everyone, We're excited to announce that you can now deploy custom views from sandboxes to your production environment
      • Generate a link for Zoho Sign we can copy and use in a separate email

        Please consider adding functionality that would all a user to copy a reminder link so that we can include it in a personalized email instead of sending a Zoho reminder. Or, allow us to customize the reminder email. Use Case: We have clients we need to
      • Settings Icon No Longer in ZOHO Desk?

        In ZOHO desk, there has been a gear icon for settings. as of yesterday, it is no longer there. I showed up briefly this morning but is gone again. Anybody else experiecing this?
      • Introducing the all-new email parser!

        Greetings, We are pleased to introduce to you, a brand-new, upgraded version of the Zoho CRM Email Parser, which is packed with fresh features and has been completely redesigned to meet latest customers needs and their business requirements. On that note,
      • Tip #43 - Track, Review, and Analyze Your Assist Sessions with Reports-'Insider Insights'

        Did you know you can generate detailed reports for both remote support sessions and unattended access sessions in Zoho Assist? This makes it easy to monitor technician activity, measure efficiency, and review customer interactions. Let us now take a closer
      • Function #20: Custom calculation in item table of invoices

        When you create an invoice in Zoho Books, the 'Amount' of a line item is typically calculated as the product of the "Quantity" and the "Rate" of the item. For instance, if an item has a sales rate of $50 and a quantity of 5 is sold, then the amount would
      • CBSA - GST CHARGES on imports

        Hi there, We have a questions about landed cost categorization. We received a shipment from overseas. CBSA invoiced us for the GST on the items. Now we entered the CBSA-GST as a separate bill and attached it as landed cost to the main invoice based on
      • Simplified Call Logging

        Our organization would like to start logging calls in our CRM; however, with 13 fields that can't be removed, our team is finding it extremely cumbersome. For our use case, we only need to record that a call happened theirfor would only need the following
      • Sub form doesn't as formula field

        Is it possible to get formula field in sub form in futures?
      • Week date range in pivot table

        Hello, I need to create a report that breakouts the data by week.  I am using the pivot table report, and breaking out the date by week, however the date is displayed as 'Week 1 2014' format.  Is there anyway to get the actual dates in there? ex. 1/6/2014-1/12/2014 Thanks,
      • How do I get Status History data of my Projects?

        I want to build a table in Zoho Analytics that Groups by Date, when Projects entered a certain status. I cannot find Status History or any such useful data available in the Setup of my Data Source sync. Please advise how I can achieve this?
      • Is it possible to hide fields in a Subform?

        Since layout rules cannot be used with Subforms, is there another way, or is it even possible, to hide fields in a subform based on a picklist fields within said subform? For example, if the Service Provided is Internet, then I do not want to see the
      • Weekly Tips :Instantly find what you need with Attachment Viewer

        Your inbox must be packed with project emails, shared notes, and scattered attachments. You are looking for one specific file—a presentation slide or maybe a media clip from a team update—but don’t want to dig through endless email threads or switch between
      • Putting Watermark on Zoho Sheet

        Can this be done?
      • Missing Zoho Desk integration option for form workflows

        According to the help page "Configure Zoho Desk integration in form workflows" we should be able to select Zoho Desk as an integration target but when I open the integrations list then Zoho Desk is not being listed in it. We are on the Premium plan which should already support Zoho Desk integrations.
      • Gantt for 2 or more projects

        Hello, I'm trying the free version of your produtc. It is veryyy good!!!! I don't know if in the Standard plan, I can overview a Gantt Graph for 2 or more Projects Milestone. This would be very helpfull for managing teams and taking decisions about who I will assign a task to. In the paid plan Do I have this possibility? Thank you.
      • Integrating a Zoho Project Gantt Chart into Reports

        Is is possible to integrate a Zoho Project Gantt Chart into a Zoho Report Dashboard. I am in the process of creating Project Status Dashboards for the projects that we track in Zoho Projects and I would like to incorporate the gantt chart within Reports.  Please let me know! Thanks
      • ZOHO BOOKS - EXCESSIVELY SLOW TODAY

        Dear Zoho Books This is not the first time but it seems to be 3 times per week now that the system is extremely slow. I work on Zoho Books 95% of my day so this is very frustrating. Zoho you need to do something about this. I have had my IT guy check
      • Gantt Chart - Zoho Analytics

        Are there any plans to add Gantt Charts capabilities to Zoho Analytics?
      • Displaying related quotes in sales order and back

        Hi, My colleague liked to see to which sales orders, the quote has been converted. Quote shows Invoices, but not SO. Same, they would like to see the quotes in the sales order, as they can see invoices, packages, shipment, How can we achieve this ? Thank
      • Tip of the Week #71–Auto-move incoming messages to the right inboxes with keywords

        We all know that customer-facing teams, especially your sales and support teams, can’t afford to miss even a single customer conversation. But sometimes, sales queries or support requests can easily get lost in a crowded inbox or even end up in the wrong
      • Clearing Fields using MACROS?

        How would I go about clearing a follow-up field date from my deals? Currently I cannot set the new value as an empty box.
      • Migrating a Zoho Forms form into Zoho Creator

        Hi, How can I migrate my Zoho Forms form into Zoho Creator? Thanks. Truly, Emad
      • Is there any way to recall an email sent using Zoho CRM?

        If an email is sent using Zoho Mail, there is a recall option/functionality that is available to the sender. Is there any way to recall an email if it was sent using Zoho CRM? I can't seem to find that option. Any help would be appreciated.
      • Quick Create needs Client Script support

        As per the title. We need client scripts to apply at a Quick Create level. We enforce logic on the form to ensure data quality, automate field values, etc. However, all this is lost when a user attempts a "Quick Create". It is disappointing because, from
      • is it possible to add more than one Whatsapp Phone Number to be integrated to Zoho CRM?

        so I have successfully added one Whatsapp number like this from this User Interface it seems I can't add a new Whatsapp Number. I need to add a new Whatsapp Number so I can control the lead assignment if a chat sent to Whatsapp Phone Number 1 then assign
      • Problem with reports due to "Connected" items change - Yes this IS a problem

        Now that the change has been made to use "connected" items I can no longer run the reporting I need in CRM. I should be able to start with Deals as the parent, connect down to the Account (Account_Name) on the deal as the child, then to any child items
      • Introducing notifications in the vendor portal

        Imagine this: You're a recruiter working with multiple vendors on a high-volume hiring project. You’ve just updated a job description after a last-minute change from the hiring manager. One of your vendors, however, is still working off the older version
      • CRM limit reached: only 2 subforms can be created

        we recently stumbled upon a limit of 2 subforms per module. while we found a workaround on this occasion, only 2 subforms can be quite limiting in an enterprise setting. @Ishwarya SG I've read about imminent increase of other components (e.
      • LESS_THAN_MIN_OCCURANCE - code 2945

        Hi I'm trying to post a customer record to creator API and getting this error message. So cryptic. Can someone please help? Thanks Varun
      • How to update "Lead Status" to more than 100 records

        Hello Zoho CRM, How do I update "Lead Status" to more than 100 records at once? To give you a background, these leads were uploaded or Imported at once but the lead status record was incorrectly chosen. So since there was a way to quickly add records in the system no matter how many they are, we are also wondering if there is a quicker way to update these records to the correct "Lead Status". I hope our concern makes sense and that there will be a fix for it. All the best, Jonathan
      • Analytics for notes created

        Is there a way I can see how many notes were created per day? Via reporting or analytics?
      • Next Page