diff --git a/independent-publisher-connectors/Zoho CRM/README.md b/independent-publisher-connectors/Zoho CRM/README.md new file mode 100644 index 0000000000..f7a1ec1f69 --- /dev/null +++ b/independent-publisher-connectors/Zoho CRM/README.md @@ -0,0 +1,92 @@ +# Zoho CRM for Power BI Basic + +The Zoho CRM is a Power BI custom data connector that enables seamless integration between Zoho CRM and Microsoft Power BI. It provides authenticated, paginated access to all Zoho CRM modules with proper data typing, lazy-loaded navigation, and support for scheduled refresh via the On-premises Data Gateway. + +## Publisher: iFour Technolab Pvt Ltd. + +## Prerequisites + +You need to have a Zoho CRM Login Credentials. + +## Obtaining Secrets + +Once you have created an organization, create a Self Client from the [Zoho API Console](https://api-console.zoho.com/). This will create a Client ID and Client Password to be used with the connector. + +--- + +## Setup & Installation + +### Step 1 — Get Zoho API Credentials + +1. Navigate to [https://api-console.zoho.in](https://api-console.zoho.in) +2. Create a new **Server-based Application** +3. Set the redirect URI to: + ``` + https://oauth.powerbi.com/views/oauthredirect.html + ``` +4. Copy your **Client ID** and **Client Secret** +5. Required scopes: + ``` + ZohoCRM.modules.ALL, ZohoCRM.settings.ALL + ``` + +### Step 2 — Configure Credentials + +Create the credential files in your project root and add the secretes here. + +`client_id` + +``` +1000.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +``` + +`client_secret` + +``` +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +``` + +--- + +## Supported Operations + +### Get Modules + +- Get all the modules list. + +### Get Fields + +- Get all the fields of the module. + +### Get Module Data + +- Get all the module data. + +## API Reference + +| Endpoint | Used For | +| ------------------------------------------------ | ----------------------------------- | +| `GET crm/v8/settings/modules` | Fetch list of all CRM modules | +| `GET crm/v8/settings/fields?module={name}` | Fetch field metadata for a module | +| `GET crm/v8/{ModuleName}?page=N&per_page=200` | Fetch paginated records | +| `GET crm/v8/Leads?converted=true` | Fetch converted leads | +| `POST accounts.zoho.in/oauth/v8/token` | Exchange auth code for access token | +| `POST accounts.zoho.in/oauth/v8/token` (refresh) | Refresh expired access token | + +--- + +## License & Contact + +| Property | Details | +| ----------------- | ----------------------------------------------- | +| Developer | iFour Technolab | +| Website | https://www.ifourtechnolab.com | +| Zoho CRM API Docs | https://www.zoho.com/crm/developer/docs/api/v8/ | +| Power Query SDK | https://docs.microsoft.com/power-query/ | +| License | Proprietary — All rights reserved | + +--- + +## Known Issues and Limitations + +There are no known issues at this time. diff --git a/independent-publisher-connectors/Zoho CRM/apiDefinition.swagger.json b/independent-publisher-connectors/Zoho CRM/apiDefinition.swagger.json new file mode 100644 index 0000000000..e7f73b9a2f --- /dev/null +++ b/independent-publisher-connectors/Zoho CRM/apiDefinition.swagger.json @@ -0,0 +1,131 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Zoho CRM API", + "version": "1.0.0", + "description": "Zoho CRM APIs by iFour Technolab" + }, + "servers": [ + { + "url": "https://www.zohoapis.com" + } + ], + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + } + } + }, + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/crm/v8/Leads": { + "get": { + "tags": [ + "Leads" + ], + "summary": "Get Lead Records", + "description": "Retrieve lead records from Zoho CRM.", + "operationId": "GetLeads", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Company": { + "type": "string", + "example": "Zylker" + }, + "Last_Name": { + "type": "string", + "example": "Daly" + }, + "First_Name": { + "type": "string", + "example": "Paul" + }, + "Email": { + "type": "string", + "format": "email", + "example": "p.daly@zylker.com" + }, + "State": { + "type": "string", + "example": "Texas" + } + } + } + }, + "trigger": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "approval", + "workflow", + "blueprint" + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Record added successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": "SUCCESS" + }, + "message": { + "type": "string", + "example": "record added" + }, + "status": { + "type": "string", + "example": "success" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request or validation error" + }, + "401": { + "description": "Authentication failed" + } + } + } + } + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Zoho CRM/apiProperties.json b/independent-publisher-connectors/Zoho CRM/apiProperties.json new file mode 100644 index 0000000000..c3305cb9f9 --- /dev/null +++ b/independent-publisher-connectors/Zoho CRM/apiProperties.json @@ -0,0 +1,38 @@ +{ + "properties": { + "connectionParameters": { + "access_token": { + "type": "securestring", + "uiDefinition": { + "displayName": "Zoho CRM Access Token", + "description": "Enter your Zoho CRM OAuth Access Token", + "tooltip": "Provide a valid Zoho CRM Bearer Token", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Set Authorization Header", + "parameters": { + "x-ms-apimTemplateParameter.name": "Authorization", + "x-ms-apimTemplateParameter.value": "Bearer @connectionParameters('access_token')", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "GetLeads" + ] + } + } + ], + "iconBrandColor": "#C8202F", + "capabilities": [], + "publisher": "iFour Technolab", + "stackOwner": "Zoho Corporation" + } +} \ No newline at end of file