Zoho Inventory Integration¶
Connect your Zoho Inventory (or Zoho Books) account with CrewStat to keep stock levels in sync between the two systems.
Note
You need an admin role in both CrewStat and Zoho to complete this setup. The one-time connection takes about 10 minutes.
What the Integration Does¶
- Pull — fetches stock levels from Zoho into CrewStat on a schedule
- Push — sends CrewStat stock changes to Zoho as they happen
- Auto-create — optionally creates CrewStat items for Zoho products that don't yet exist in CrewStat
- Items are matched between the two systems by SKU (case-sensitive)
Part 1 — Get Credentials from Zoho¶
1.1 Open the Zoho API Console¶
Go to the API Console for your Zoho region:
| Region | URL |
|---|---|
| Global | api-console.zoho.com |
| India | api-console.zoho.in |
| Europe | api-console.zoho.eu |
| Australia | api-console.zoho.com.au |
Tip
Use the same region as your Zoho login. If you sign in at zoho.in, use api-console.zoho.in.
If this is your first visit, accept the terms of service when prompted.
1.2 Create a Self Client¶
- Click Add Client (top-right)
- Select Self Client
- Enter a name (e.g.,
CrewStat Integration) and click Create - Copy the Client ID and Client Secret shown on screen — keep them handy
1.3 Generate an Authorization Code¶
- Open your Self Client application
- Go to the Generate Code tab
- In the Scope field, type:
ZohoInventory.fullaccess.all - Set Time Duration to the maximum (10 minutes)
- Add a short Scope Description (e.g.,
CrewStat stock sync) - Click Create
- Copy the authorization code — you'll paste it into CrewStat in the next step
Warning
The authorization code expires in about 10 minutes and works only once. Keep the Zoho tab open until you've pasted the code into CrewStat.
1.4 Find Your Organization ID¶
- Go to Zoho Inventory (or Zoho Books)
- Navigate to Settings → Organization Profile
- Copy the Organization ID (a numeric value)
Part 2 — Connect in CrewStat¶
2.1 Open Integration Settings¶
- Log in to CrewStat as an admin
- Go to Settings → Integrations → Zoho Inventory
2.2 Enter Connection Details¶
Fill in the Connection Settings card:
| Field | What to enter |
|---|---|
| Client ID | Client ID from the Zoho API Console |
| Client Secret | Client Secret from the Zoho API Console |
| Organization ID | Organization ID from your Zoho profile |
| API Region | Select the region matching your Zoho account |
2.3 Exchange the Authorization Code¶
- Paste the authorization code (from step 1.3) into the Authorization Code field
- Click Exchange
- On success, a green "Refresh token is configured" indicator appears
Tip
If the code has expired, go back to the Zoho API Console and generate a new one (repeat step 1.3).
2.4 Test & Save¶
- Click Test Connection to verify everything works
- Click Save to store the connection details
2.5 Configure Sync Options¶
In the Sync Options card:
- Pull from Zoho — turn on to periodically import stock levels from Zoho; choose a Sync Interval (5–60 minutes)
- Push to Zoho — turn on to automatically push CrewStat stock changes to Zoho
- Create Missing Products — turn on if you want CrewStat to auto-create items for Zoho products it doesn't already have. When enabled, pick the Default Category and Default Unit that should apply to these new items.
Click Save Sync Settings when done.
2.6 Activate the Integration¶
Use the Enabled / Disabled toggle at the top of the page to turn the integration on.
Monitoring Sync Activity¶
The Sync Status card shows:
- The last sync time and counts (Synced, Created, Failed)
- A table of recent sync runs with direction (Pull / Push), status, and timestamps
- A Sync Now button to trigger an immediate sync on demand
Troubleshooting¶
| Problem | What to do |
|---|---|
| Exchange failed | Authorization code expired or was already used — generate a new one in the Zoho API Console |
| Test Connection failed | Double-check Client ID, Client Secret, Organization ID, and API Region |
| Items not syncing | Ensure SKUs match exactly in both systems (case-sensitive) |
| Token stopped working | Generate a new authorization code in Zoho and exchange it again |
| Region mismatch | Your Zoho login region must match the API Region selected in CrewStat |
| Integration not available | Contact your CrewStat administrator — the provider may not be enabled for your tenant |