Queries - Limits
On this page:
Query Limits
- Edition-wise Query Limits
- Professional - 100 queries
- Enterprise - 250 queries
- Ultimate - 500 queries
- Sources
- REST API Sources - 200 sources for both Enterprise and Ultimate editions
- SQL Sources - 5 for both Enterprise and Ultimate editions
Query Rules and Limitations
You can write SELECT, INSERT, UPDATE, and DELETE queries. The following are some of the important considerations for various operations.
SELECT Queries(Read Operation)
- Allowed in both read-only and writable sources.
- You must specify columns. SELECT * is not allowed. You can select up to 50 columns.
- All queries must include a LIMIT. If you do not add one, a default limit of 100 is applied. The maximum allowed limit is 100.
- Only basic data types are supported namely, numbers, strings, dates, timestamps, etc. Complex types like JSON, XML, arrays are not supported.
- You can use up to five joins between tables.
- GROUP BY, ORDER BY, WHERE, and HAVING clauses each allow up to 50 items/conditions.
- Sub-queries are not supported.
- All date and time stamp values must be in the ISO8601 format(e.g., 2025-07-15T10:00:00).
INSERT, UPDATE, DELETE(Write Operations)
- Only allowed in writable sources.
- You must mention columns explicitly in INSERT and UPDATE queries.
- Sub-queries are not allowed.
- Only basic data types are supported namely, numbers, strings, dates, timestamps, etc. Complex types like JSON, XML, arrays are not supported.
- All date and time stamp values must be in the ISO8601 format(e.g., 2025-07-15T10:00:00).
Supported SQL Functions
You can use the following common SQL functions.
- SUM()
- COUNT()
- AVG()
- MIN()
- MAX()
- LOWER()
- UPPER()
Sample Queries
SELECT Query for PostgreSQL, MySQL
SELECT clients.client_name, COUNT(clients.client_id) AS client_count, SUM(clients.client_size) AS total_client_size, AVG(clients.client_size) AS avg_client_size, client_revenue.account_name, client_revenue.bank, clients.created_on AS client_joined_at FROM CLIENTS AS clients INNER JOIN CLIENT_REVENUE AS client_revenue ON clients.account_no = client_revenue.account_no WHERE clients.created_on BETWEEN '2009-01-01T12:12:12' AND '2025-01-01T23:23:23' AND ( (client_revenue.account_name LIKE 'P%' OR client_revenue.account_name LIKE '%KZ%') AND clients.client_email IS NOT NULL ) GROUP BY clients.client_name, clients.created_on, client_revenue.account_name, client_revenue.bank HAVING SUM(clients.client_size) > 500 AND AVG(clients.client_size) > 100 ORDER BY clients.client_name OFFSET 1 LIMIT 4;
SELECT Query for MicrosoftSQL
SELECT clients.client_name, COUNT(clients.client_id) AS client_count, SUM(clients.client_size) AS total_client_size, AVG(clients.client_size) AS avg_client_size, client_revenue.account_name, client_revenue.bank, clients.created_on AS client_joined_at FROM CLIENTS AS clients INNER JOIN CLIENT_REVENUE AS client_revenue ON clients.account_no = client_revenue.account_no WHERE clients.created_on BETWEEN '2009-01-01T12:12:12' AND '2025-01-01T23:23:23' AND ( (client_revenue.account_name LIKE 'P%' OR client_revenue.account_name LIKE '%KZ%') AND clients.client_email IS NOT NULL ) GROUP BY clients.client_name, clients.created_on, client_revenue.account_name, client_revenue.bank HAVING SUM(clients.client_size) > 500 AND AVG(clients.client_size) > 100 ORDER BY clients.client_name OFFSET 1 ROWS FETCH NEXT 4 ROWS ONLY;
INSERT
INSERT INTO CLIENTS(client_name, client_size, client_email, phone, client_designation, created_on, emp_dri) VALUES ('Test Motors', 1435, 'tm@abc.com', 4758437183, 'Supply Manager', '2025-07-24T13:40:00', 'Ross');
UPDATE
update CLIENTS set client_name = 'Test Motors New', client_size = 1500, client_email = 'tmnew@gmail.com', phone = 1234567890, client_designation = 'Supply Head', created_on = '2025-08-10T14:40:00', emp_dri = 'Specter' where client_name = 'Test Motors' AND client_size = 1435 AND client_email = 'tm@gmail.com' AND phone = 4758437183 AND client_designation = 'Supply Manager' AND created_on = '2025-07-24T13:40:00' AND emp_dri = 'Ross'
DELETE
DELETE FROM CLIENTS WHERE client_name = 'Test Motors New' AND client_size = 1500 AND client_email = 'tmnew@gmail.com' AND phone = 1234567890 AND client_designation = 'Supply Head' AND created_on = '2025-08-10T14:40:00' AND emp_dri = 'Specter'
If your query does not meet these rules, Zoho CRM will return a helpful error message to guide you. This helps ensure smooth, efficient, and secure interaction with your connected databases.