Create Webform

Purpose

To create a new Webform in your Zoho CRM organization for collecting and processing customer information.

  • POST /settings/webforms?module=Leads

Request Details

Request URL

{api-domain}/crm/{version}/settings/webforms

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

ZohoCRM.settings.webforms.ALL
(or)
ZohoCRM.settings.webforms.CREATE

Parameters

  • modulestring, mandatory

    Specify the module for which the webform is created.

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v8/settings/webforms?module=Leads"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-d @createwebform.json
-X POST

Input JSON

The request body must be a JSON object containing a webforms array. Each object in the array represents one Webform to be created and contains the following keys:

  • namestring, mandatory

    Specify the name of the webform. The name must contain only alphanumeric characters and spaces. Maximum length: 2000 characters.

  • moduleJSON object, mandatory

    Specify the module for which the webform is created. Either id or api_name can be provided.

    • idstring, optional

      Specify the ID of the module. Use the Get Modules API to get the module ID.

    • api_namestring, optional

      Specify the API name of the module.

  • layoutJSON object, mandatory

    Specify the layout of the module to be used for this webform. Use the Get Layouts API to get the layout ID.

    • idstring, mandatory

      Specify the ID of the layout.

  • form_attributesJSON object, optional

    Specify the visual attributes of the form such as color, width, alignment, and font properties. If this key is skipped, default values will be applied for all attributes.

    • colorstring, optional

      Specify the background color of the form. Default value: white.

    • widthinteger, optional

      Specify the width of the form in pixels. Allowed range: 600 to 900. Default value: 600.

    • alignstring, optional

      Specify the alignment of the form. Default value: left.

      Possible values: left, right, top

    • font_attributesJSON object, optional

      Specify the font properties for the form text.

      • sizeinteger, optional

        Specify the font size of the text. Allowed range: 11 to 16. Default value: 12.

      • colorstring, optional

        Specify the color of the text. Default value: black.

      • familystring, optional

        Specify the font family of the text (for example, Arial, Verdana). Default value: Arial.

    • display_form_nameBoolean, optional

      Specify whether the form name should be displayed as the title of the form.

      Possible values:
      true - Display the form name as a title.
      false - Do not display the form name. This is the default value.

  • button_attributesJSON array, optional

    Specify the properties of the form buttons (for example, Submit, Reset).

    • colorstring, optional

      Specify the color of the button.

    • namestring, mandatory

      Specify the label displayed on the button.

Note

To assign the owner of the records submitted via Webforms you should either choose to mention specific user details in the owner key or mention an assignment rule to assign ownership.

  • ownerJSON object, optional

    Specify the details of the user to whom records created via the webform are assigned Use the Get Users API to get the user ID.

    • idstring, mandatory

      Specify the ID of the user.

  • assignment_ruleJSON object, optional

    Specify the assignment rule to apply on records created through the webform. Use the Get Assignment Rules API to get the rule ID.

    • idstring, mandatory

      Specify the ID of the assignment rule.

  • create_contactBoolean, optional

    Specify whether a contact record should be created automatically from the data submitted through the webform.

    Possible values:
    true - A contact record is created automatically.
    false - No contact record is created. This is the default value.

  • tagsJSON array, optional

    Specify the tags to be attached to the records created through the webform. Use the Get Tags API to get the tag details.

    • namestring, optional

      Specify the name of the tag.

    • idstring, optional

      Specify the ID of the tag.

  • spam_controlJSON object, optional

    Specify the spam control configuration for the webform.

    • spam_possibility_thresholdinteger, optional

      Specify the spam possibility threshold value. This is a numeric score that determines how aggressively spam submissions should be flagged for manual review.

  • double_optin_enabledBoolean, optional

    Specify whether to enable double opt-in for the webform. When double opt-in is enabled, a confirmation email with a unique URL is sent to the visitor who submits the form. The visitor must click the link in the email to confirm their submission before the record is added to Zoho CRM. This is applicable only when an email field is present in the webform.

    Possible values:
    true - Enable double opt-in. This is the default value for Portal Forms.
    false - Disable double opt-in. This is the default value for Webforms.

  • double_optin_detailsJSON object, optional

    Specify the configuration details for double opt-in. This key is applicable only when double_optin_enabled is set to true.

    • email_templateJSON object, mandatory

      Specify the details of the confirmation email that is sent to the visitor for double opt-in verification.

      • from_addressJSON object, mandatory

        Specify the details of the sender for the double opt-in confirmation email. The sender can be either the record owner or an organization-level email address.

        • type (string, mandatory): Specify the type of sender email address.
          Possible values:
          organization_emails - Use an organization-level email address.
          field - Use the record owner's email address.
        • email (string, mandatory): Specify the sender email address. When type is "field", the value must be "Record Owner's Email". When type is "organization_emails", provide the organizational email address.
        • api_name (string, optional): Specify the API name of the field. Required only when type is "field".
          Possible values: Owner
      • subjectstring, mandatory

        Specify the subject line of the double opt-in confirmation email.

      • contentstring, mandatory

        Specify the HTML content of the double opt-in confirmation email. The content must include the placeholder #DOUBLEOPTIN_LINK# for the confirmation URL.

    • confirm_page_contentstring, optional

      Specify the HTML content of the confirmation page displayed to the visitor after they click the opt-in link.

  • notify_ownerJSON object, optional

    Specify the configuration for notifying the record owner when the form is submitted. Notification can be sent in two ways:

    • System-generated email — Set the system_mail key to true. In this case, do not provide the id and name keys.
    • Email template — Specify the id and name of the email template to use. In this case, set system_mail to false or omit it.
    • system_mailBoolean, optional

      Specify whether to send a system-generated notification email to the record owner.

      Possible values:
      true - Send a system-generated email.
      false - Do not send a system-generated email. This is the default value.

    • idstring, optional

      Specify the ID of the email template to use for notifying the owner. Required when using a template-based notification.

    • namestring, optional

      Specify the name of the email template to use for notifying the owner.

  • acknowledge_visitorJSON object, optional

    Specify the configuration for sending an acknowledgment email to the visitor after form submission. You can choose one of the following methods:

    • Auto-response rule — The auto-response rule sends automated replies based on the data submitted through the webform. You can define different responses based on specific criteria. Provide the rule details under the auto_response_rule key.
    • Email template — Send an acknowledgment email using a predefined template. Specify the template_id, template_name, from_address, and reply_to_address.
    • auto_response_ruleJSON object, optional

      Specify the auto-response rule to be triggered after form submission.

      • idstring, mandatory

        Specify the ID of the auto-response rule.

      • namestring, optional

        Specify the name of the auto-response rule.

    • template_idstring, optional

      Specify the ID of the email template to use for acknowledging the visitor.

    • template_namestring, optional

      Specify the name of the email template to use for acknowledging the visitor.

    • from_addressJSON object, optional

      Specify the details of the sender for the acknowledgment email. To identify the sender configuration, provide at least one of: id or type.

      • idstring, optional

        Specify the ID of the email configuration to use as the sender.

      • emailstring, optional

        Specify the email address to use as the sender.

      • namestring, optional

        Specify the display name of the sender.

      • typestring, optional

        Specify the type of sender email address.

    • reply_to_addressJSON object, optional

      Specify the reply-to address for the acknowledgment email. At least one identifying field, either id or type, must be specified.

      • typestring, optional

        Specify the type of reply-to address.

      • idstring, optional

        Specify the ID of the email configuration to use as the reply-to address.

      • emailstring, optional

        Specify the email address to use as the reply-to address.

      • api_namestring, optional

        Specify the API name of the reply-to field.

  • visitor_trackingJSON object, optional

    Specify the visitor tracking configuration. Visitor tracking in webforms is powered by Zoho SalesIQ. This key is applicable only when Zoho SalesIQ is configured for your organization.

    • portal_namestring, mandatory

      Specify the name of the Zoho SalesIQ portal.

    • tracking_codestring, mandatory

      Specify the tracking code of the Zoho SalesIQ portal.

  • approval_requestBoolean, optional

    Specify whether records submitted through the webform should be manually approved before being added to the module.

    Possible values:
    true - Records require manual approval.
    false - Records are added directly. This is the default value.

  • typestring, mandatory

    Specify the type of the form.

    Possible values:
    webform - A standard webform for collecting data from external visitors.
    portalform - A form for portal users that includes portal-specific fields such as Password and Confirm Password.

  • action_on_submitstring, mandatory

    Specify the action to be performed after the form is submitted.

    Possible values:
    splash_message - Display a brief pop-up message to the visitor.
    thank_you_message - Display a styled HTML thank-you message.
    redirect_url - Redirect the visitor to a specified URL.

  • action_valuestring, optional

    Specify the content for the selected action_on_submit. When action_on_submit is "thank_you_message" or "splash_message", provide the HTML content of the message. When action_on_submit is "redirect_url", provide the destination URL. Maximum length: 2000 characters.

  • location_urlJSON array, mandatory

    Specify the web page URLs where the webform will be hosted. Location URLs must be provided in a comma-separated format within the JSON array. Specify the value as "*" if you plan to host the webforms in a location that you are unsure of at the moment. This way, the form is accepted from any location from where it is hosted. When specifying multiple URLs, provide each URL as a separate element in the array.

  • analytics_dataJSON object, optional

    Specify the analytics configuration for the webform.

    • analytics_enabledBoolean, optional

      Specify whether to enable analytics for tracking form submissions.

      Possible values:
      true - Enable analytics.
      false - Disable analytics. This is the default value.

    • url_analytics_enabledBoolean, optional

      Specify whether to enable URL-based analytics for tracking submissions per location URL. This can be enabled only when more than one location_url is configured. URL-based analytics is not supported for Portal Forms.

      Possible values:
      true - Enable URL-based analytics.
      false - Disable URL-based analytics. This is the default value.

  • user_typeJSON object, optional

    Specify the portal user type configuration. This key is applicable only when type is "portalform".

    • namestring, optional

      Specify the name of the portal user type.

    • activeBoolean, optional

      Specify the active status of the portal user type.

    • idstring, mandatory

      Specify the ID of the portal user type.

  • form_fieldsJSON array, mandatory

    Specify the list of fields to include in the webform. Each object in this array represents one field and defines how it is displayed, validated, and mapped to a CRM field. The order of objects in this array determines the display order of fields on the form. 
    Use the field object to map the form field to a CRM field (type: general). Use the field_info object for webform-specific fields (type: advanced or portal) that do not map directly to a CRM field, such as Captcha, File Upload, Privacy Policy, Password, and Confirm Password.

    • typestring, mandatory

      Specify the category of the form field.

      Possible values:
      general - Standard CRM fields such as Name, Email, or Company.
      advanced - Special form fields: File Upload, Captcha (standard_captcha), and Privacy Policy (privacy_policy).
      portal - Portal-specific fields: Password (password) and Confirm Password (confirm_password). Applicable only when type is "portalform".

    • helpJSON object, optional

      Specify the help information displayed to users while filling out the form.

      • textstring, mandatory when help is mentioned

        Specify the help text displayed near the field.

      • urlstring, optional

        Specify the URL containing additional information.

    • fieldJSON object, mandatory (for type: general)

      Specify the CRM field to which the webform field is mapped. This key is used when the field type is "general".

      • api_namestring, mandatory when field is specified

        Specify the API name of the CRM field.

      • field_labelstring, mandatory when field is specified

        Specify the label displayed on the webform for this field.

      • idstring, mandatory when field is specified

        Specify the unique ID of the CRM field.

    • field_infoJSON object, mandatory (for type: advanced, portal)

      Specify the configuration of a webform-specific field that does not directly map to a CRM field.This key is used when the field type is "advanced" or "portal".

      • field_labelstring, mandatory when field_info is mentioned

        Specify the label displayed on the form.

      • typestring, mandatory when field_info is mentioned

        Specify the type of advanced or portal field.
        Possible values: standard_captcha, file_upload, privacy_policy, password, confirm_password
        You can upload upto 3 files with total file size upto 20 MB in a webform.

      • privacy_valuestring, optional

        Specify the HTML content of the privacy policy text. Applicable only when type is "privacy_policy".

    • hiddenBoolean, optional

      Specify whether the field is hidden from the user. System-defined fields, date fields, and password fields cannot be hidden.
      Possible values:
      true - Field is hidden from the form.
      false - Field is visible on the form. This is the default value.

    • date_formatstring, optional

      Specify the date format for date-type fields
      Possible values: 
      DD-MM-YYYY, DD/MM/YYYY, DD.MM.YYYY, DD MM YYYY, DD-MM-YY, DD/MM/YY, DD.MM.YY, D.MM.YY, D-M-YY, D/M/YY, D.M.YY, D.M.YY., D-M-YYYY, D/M/YYYY, D.M.YYYY, D. M. YYYY., D. M. YYYY, D MMM, YYYY, DD MMM, YYYY, D. MMMM YYYY, DD.MM.YYYY., DD.MM.YY., YYYY-MM-DD, YYYY/MM/DD, YYYY.MM.DD, YYYY MM DD, YY/MM/DD, YY-MM-DD, YY.M.D, YY-M-D, YY. M. D, YYYY/M/D, YYYY年MM月DD日, YY年M月D日, YYYY.MM.DD., YYYY. MM. DD, MM-DD-YYYY, MM/DD/YYYY, MM.DD.YYYY, MM DD YYYY, MM-DD-YY, MM/DD/YY, M/DD/YY, MMM-DD-YYYY, MMM DD, YYYY, MMM D, YYYY, MMMM D, YYYY, YYYY.DD.MM, YY.D.M

    • requiredBoolean, optional

      Specify whether the field is mandatory for form submission.
      Possible values:
      true - Field must be filled by the visitor.
      false - Field is optional. This is the default value.

    • default_valuestring, optional

      Specify the default value of the field. This is commonly used with hidden fields.

    • display_labelstring, optional

      Specify a custom label to display on the webform instead of the default CRM field label.

Note

  • The module parameter in the request URL and the module key in the request body serve the same purpose — specifying the module for the webform. You must include the module parameter in the request URL.
  • For Portal Forms, the following fields are mandatory in the form_fields array: Email, Password (type: password), Confirm Password (type: confirm_password), and Captcha (type: standard_captcha). The Password field must appear before the Confirm Password field. That is the expected order of the keys are: Password, Confirm Password
  • URL-based analytics is not supported for Portal Forms.
  • The webform name must contain only alphanumeric characters and spaces.
  • The action_value must not exceed 2000 characters.
  • The form width must be between 600 and 900.
  • The font size must be between 11 and 16.
  • System-defined fields, date fields, and password fields cannot be marked as hidden.
  • The order in the request JSON is the order in which fields will be displayed in a webform

Sample Input to create Webform in Leads Module

Copied{
    "webforms": [
        {
            "name": "newwebform",
            "module": {
                "id": "4794410000000000125",
                "api_name": "Leads"
            },
            "layout": {
                "id": "4794410000000095055"
            },
            "form_attributes": {
                "color": "white",
                "width": 600,
                "align": "left",
                "font_attributes": {
                    "size": 12,
                    "color": "black",
                    "family": "Arial"
                },
                "display_form_name": true
            },
            "button_attributes": [
                {
                    "color": "#fff",
                    "name": "Submit"
                },
                {
                    "color": "#fff",
                    "name": "Reset"
                }
            ],
            "owner": {
                "id": "4794410000000642001"
            },
            "assignment_rule": {
                "id": "4794410000000804201"
            },
            "create_contact": false,
            "approval_request": true,
            "type": "webform",
            "action_on_submit": "thank_you_message",
            "action_value": "<p style='margin-bottom:5px'><span id='successicon' editable='false' data-image='true' style='background:url(https://static.zohocdn.com/crm/CRMClient/images/successalert_a8be6d8f87bf194f7d_.svg) no-repeat 0 0;width:22px;height:22px;display:inline-block;vertical-align:middle;margin-inline-end:5px'> </span><b>Thank you for your Confirmation</b></p><p><span style='color: var(--baseColor); text-wrap: wrap;'>Your response has been submitted successfully. We will reach out to you soon.</span></p>",
            "location_url": [
                "https://test.com",
                "https://example.com",
                "https://crm-forms1.localtu.com/Pr96z"
            ],
            "analytics_data": {
                "analytics_enabled": true,
                "url_analytics_enabled": true
            },
            "double_optin_enabled": true,
            "double_optin_details": {
                "email_template": {
                    "from_address": {
                        "type": "field",
                        "email": "Record Owner's Email",
                        "api_name": "Owner",
                        "id": "4794410000000000553"
                    },
                    "subject": "Confirm Your Registration with ${!org.company_name}",
                    "content": "<html> <head> <meta http-equiv=\"Content-Type\"> <meta name=\"viewport\"> <style> @media only screen and (max-width: 480px){} </style> </head> <body> <div style=\"direction:ltr;word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <div style=\"word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <div style=\"word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"width: 100%;background: #F4F7FF; padding: 0; margin: 0;font-family: Helvetica, sans-serif, arial;color: #444444;font-size: 15px;padding: 20px 0;\"> <tbody> <tr> <td> <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"600\" style=\"width: 600px;\"> <tbody> <tr> <td style=\"padding:10px 15px;\"> <p style=\"text-align: left; padding: 0px; margin: 0px;\"><font size=\"3\" face=\"Arial,Helvetica,sans-serif\">${!companyLogo}</font></p> </td> </tr> <tr> <td> <div style=\"border-radius: 10px; width: 100%; padding: 60px 50px; box-sizing: border-box; background: #fff;line-height: 1.4;box-shadow: 0px 5px 10px #0000000d;\"> <table style=\"line-height: 1.4;\"> <tr> <td> <p style=\"padding-bottom: 35px; margin: 0px;\">Hello ${!Leads.Last_Name},</p> <p style=\"padding-bottom: 35px; margin: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">Thank you for registering with&nbsp;<b>${!org.company_name}.</b></span><span style=\"font-family: Arial, Helvetica, sans-serif;\">&nbsp;To confirm your registration please click on the button given below. This option expires in <b>60 days.</b>&nbsp;</span></p> <table cellspacing=\"0\" cellpadding=\"0\" style=\"font-size: 15px; border: 1px solid rgb(83, 174, 119); background-color: rgb(91, 188, 130); border-radius: 5px;\"> <tbody> <tr> <td align=\"center\" style=\"overflow-wrap: break-word; word-break: break-word; border: 0px;\"><a href=\"#DOUBLEOPTIN_LINK#\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"padding: 9px 15px;font-weight: bold;background: #43c177;display: block;font-size: 14px;color: #fff;text-decoration: none;\" data-zcqa=\"wf_TemplateConfirmBtn\">Confirm Registration</a></td> </tr> </tbody> </table> <p style=\"padding-bottom: 2px; padding-top: 20px; margin: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">If you have not registered, please just ignore this email.</span></p> <p style=\"padding-bottom: 2px; padding-top: 40px; margin: 0px;\">Regards, </p> <p style=\"margin: 0px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\"><b>${!org.company_name}</b></span></p> </td> </tr> </table> </div> </td> </tr> </tbody> </table> </td> </tr> <tr id=\"wfDot_dontreplynote\"></tr> </tbody> </table> </div> </div> </div> </body> </html>"
                },
                "confirm_page_content": "<html> <head> <meta http-equiv=\"Content-Type\"> <meta name=\"viewport\"> </head> <body> <div style=\"direction:ltr;word-wrap: break-word; word-break: break-word;\"> <div style=\"word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <div style=\"word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <div style=\"word-wrap: break-word; word-break: break-word; font-size:14px; color:#313949;\"> <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"width: 100%;background: #F4F7FF; padding: 0; margin: 0;font-family: Helvetica, sans-serif, arial;color: #444444;font-size: 15px;padding: 20px 0;\"> <tbody> <tr> <td> <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"600\" style=\"width: 600px;\"> <tbody> <tr> <td style=\"padding:10px 15px;\"> <p style=\"text-align: left; padding: 0px; margin: 0px;\"> <font size=\"3\" face=\"Arial,Helvetica,sans-serif\">${!companyLogo} </font> </p> </td> </tr> <tr> <td> <div style=\"border-radius: 10px; width: 100%; padding: 40px; box-sizing: border-box; background: #fff;box-shadow: 0px 5px 10px #0000000d;\"> <table style=\"margin-bottom: 10px;\"> <tbody> <tr> <td><img src=\"#infoalert.svg#\" align=\"\" height=\"24\" width=\"24\"></td> <td> <font size=\"4\"> <b>Please confirm your email.</b> </font> </td> </tr> </tbody> </table> <table style=\"line-height: 1.4;\"> <tr> <td> <p style=\"margin: 0px;\"> <font size=\"3\"> A configuration email has been sent to <b>${!Leads.Email}</b>. Please click on the <b>Confirm Registration</b> button in the email. </font> </p> </td> </tr> </table> </div> </td> </tr> </tbody> </table><br> </td> </tr> </tbody> </table> </div> </div> </div> </div> </body> </html>",
            },
            "notify_owner": {
                "system_mail": true
            },
            "acknowledge_visitor": {
                "auto_response_rule": {
                    "id": "4794410000000755050",
                    "name": "newrule"
                },
                "template_id": "4794410000000755041",
                "template_name": "Template1",
                "from_address": {
                    "id": "4794410000000642001",
                    "type": "0"
                },
                "reply_to_address": {
                    "id": "4794410000000642001",
                    "type": "0"
                }
            },
            "visitor_tracking": {
                "portal_name": "newportalweb",
                "tracking_code": "newportalweb"
            },
            "form_fields": [
                {
                    "type": "general",
                    "field": {
                        "api_name": "Company",
                        "field_label": "Company",
                        "id": "4794410000000000555"
                    },
                    "hidden": false,
                    "required": true
                },
                {
                    "type": "general",
                    "field": {
                        "api_name": "Last_Name",
                        "field_label": "Last Name",
                        "id": "4794410000000000559"
                    },
                    "hidden": false,
                    "required": true
                },
                {
                    "type": "general",
                    "field": {
                        "api_name": "Email",
                        "field_label": "Email",
                        "id": "4794410000000000563"
                    },
                    "hidden": false,
                    "required": true
                },
                {
                    "type": "general",
                    "field": {
                        "api_name": "Date_1",
                        "field_label": "Date 1",
                        "id": "4794410000000755001"
                    },
                    "hidden": false,
                    "date_format": "DD/MM/YYYY",
                    "required": false
                },
                {
                    "type": "general",
                    "field": {
                        "api_name": "Single_Line_1",
                        "field_label": "Single Line 1",
                        "id": "4794410000000755018"
                    },
                    "hidden": true,
                    "default_value": "hidden",
                    "required": false
                },
                {
                    "type": "advanced",
                    "hidden": false,
                    "required": false,
                    "field_info": {
                        "field_label": "Enter the Captcha",
                        "type": "standard_captcha"
                    }
                },
                {
                    "type": "advanced",
                    "hidden": false,
                    "required": false,
                    "field_info": {
                        "field_label": "Upload a File",
                        "type": "file_upload"
                    }
                },
                {
                    "type": "advanced",
                    "hidden": false,
                    "required": false,
                    "field_info": {
                        "field_label": "Privacy Policy",
                        "type": "privacy_policy",
                        "privacy_value": "<div style='font-family:Verdana, arial, Helvetica, sans-serif'>I agree to the Privacy Policy and Terms of Service</div>"
                    }
                }
            ]
        }
    ]
}

Sample Response

Copied{
    "webforms": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "4794410000000762107"
            },
            "message": "WebForm Created Successfully",
            "status": "success"
        }
    ]
}

Possible Errors

  • INVALID_DATAHTTP 400
    • Name should not contain special characters
      Resolution: Use only alphanumeric characters in the form name.

    • Invalid data
      Resolution: Verify the data type and value of the input field.

    • The id given seems to be invalid
      Resolution: Provide a valid ID for the corresponding entity.

    • Tag id should be of type long
      Resolution: Provide a valid numeric tag ID.

    • Invalid URI
      Resolution: Provide a valid URL format.

    • Action value length should be less than 2000 characters
      Resolution: Reduce the action_value length to below 2000 characters.

    • The given date pattern is not allowed
      Resolution: Use a supported date format (for example, DD/MM/YYYY).

    • Form attribute width should be between 600 and 900
      Resolution: Specify a width value within the allowed range.

    • Font attribute size should be between 11 and 16
      Resolution: Specify a font size within the allowed range.

    • Last Name cannot be hidden
      Resolution: Do not mark system-defined fields as hidden.

    • Date field cannot be hidden
      Resolution: Remove the hidden flag from date fields.

    • Password cannot be hidden
      Resolution: Password field must always be visible in Portal Forms.

    • Invalid user type id
      Resolution: Provide a valid portal user type ID.

  • NOT_SUPPORTEDHTTP 400
    • Your edition doesn't support this feature
      Resolution: Upgrade your CRM edition. Check the Zoho CRM feature comparison page for details.

    • URL based analytics is not supported in this edition
      Resolution: Disable URL analytics or upgrade your edition.

  • LIMIT_EXCEEDEDHTTP 400

    WebForm limit exceeded
    Resolution: Delete unused webforms or upgrade your plan.

  • EXPECTED_FIELD_MISSINGHTTP 400
    • Specify atleast one field
      Resolution: Provide at least one of the required fields.

    • One of the expected field is missing
      Resolution: Ensure all dependent fields are included.

  • DEPENDENT_MISMATCHHTTP 400
    • action_on_submit should be provided if action_value was provided
      Resolution: Include the action_on_submit field.

    • URL based analytics can be enabled only when more than one location_url is configured
      Resolution: Provide multiple location_url values.

    • URL based Analytics is not supported for Portal Forms
      Resolution: Set url_analytics_enabled to false for Portal Forms.

  • DEPENDENT_INDEX_MISMATCHHTTP 400

    Password and Confirm Password cannot be re-ordered. Expected Order: Password, Confirm Password
    Resolution: Maintain the order: Password, Confirm Password. Do not mention Confirm Password first.

  • MANDATORY_PARAM_MISSINGHTTP 400

    Mandatory param missing
    Resolution: Provide all mandatory parameters in the request.

  • MANDATORY_NOT_FOUNDHTTP 400
    • Required field not found
      Resolution: Ensure all mandatory fields are present.

    • Captcha is required for Portal Form
      Resolution: Add captcha field to the portal form.

    • Email field is required for Portal Form
      Resolution: Include the Email field in the form.

    • Confirm Password field is required for Portal Form
      Resolution: Add Confirm Password field to the portal form.

  • NOT_ALLOWEDHTTP 400
    • You cannot add more than one captcha in the same form
      Resolution: Provide only one captcha field.

    • Password field label cannot be renamed
      Resolution: Do not rename the password field.

    • Confirm Password field label cannot be renamed
      Resolution: Do not rename the confirm password field.

  • DUPLICATE_DATAHTTP 400

    Duplicate URLs are not allowed in location_url
    Resolution: Ensure all location URLs are unique.

     

Sample Input to create a Portal Webform in Contacts module

Copied{
  "webforms": [
    {
      "name": "newportalwebfor",

      "type": "portalform",

      "module": {
        "api_name": "Contacts",
        "id": "4794410000000000129"
      },

      "layout": {
        "id": "4794410000000095059"
      },

      "form_attributes": {
        "color": "white",
        "width": 600,
        "font_attributes": {
          "size": 12,
          "color": "black",
          "family": "Arial"
        },
        "display_form_name": true,
        "align": "left"
      },

      "button_attributes": [
        {
          "color": "#fff",
          "name": "Submit"
        },
        {
          "color": "#fff",
          "name": "Reset"
        }
      ],

      "owner": {
        "id": "4794410000000642001"
      },

      "user_type": {
        "id": "4794410000000743021",
        "name": "ClientPortal"
      },

      "action_on_submit": "redirect_url",

      "action_value": "https://crmqathree.mablem.localcrm.co.in/portal/mablem/crm/Index.do?type=activation",

      "double_optin_enabled": true,

      "approval_request": false,

      "create_contact": false,

      "notify_owner": {
        "system_mail": true
      },

      "analytics_data": {
        "analytics_enabled": true
      },

      "form_fields": [
        {
          "type": "general",
          "field": {
            "api_name": "Last_Name",
            "field_label": "Last Name",
            "id": "4794410000000000443"
          },
          "hidden": false,
          "required": true
        },
        {
          "type": "general",
          "field": {
            "api_name": "Email",
            "field_label": "Email",
            "id": "4794410000000000449"
          },
          "hidden": false,
          "required": true
        },
        {
          "type": "portal",
          "hidden": false,
          "required": true,
          "field_info": {
            "field_label": "Password",
            "type": "password"
          }
        },
        {
          "type": "portal",
          "hidden": false,
          "required": true,
          "field_info": {
            "field_label": "Confirm Password",
            "type": "confirm_password"
          }
        },
        {
          "type": "advanced",
          "hidden": false,
          "required": false,
          "field_info": {
            "field_label": "Enter the Captcha",
            "type": "standard_captcha"
          }
        }
      ]
    }
  ]
}

Response JSON

Copied{
    "webforms": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "4794410000000762313"
            },
            "message": "WebForm Created Successfully",
            "status": "success"
        }
    ]
}