-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
36,227 additions
and
12,901 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,69 +1,72 @@ | ||
# 📖 Summary | ||
- [📖 Summary](#📖-summary) | ||
- [💼 About Zohorecruit](#💼-about-zohorecruit) | ||
- [😍 Why is it a big deal for Zohorecruit customers & partners?](#😍-why-is-it-a-big-deal-for-zohorecruit-customers--partners) | ||
- [🔧 How does it work?](#🔧-how-does-it-work) | ||
- [📊 Data integration capabilities:](#📊-data-integration-capabilities) | ||
- [🧠 Artificial Intelligence capabilities:](#🧠-artificial-intelligence-capabilities) | ||
- [🔌 Connector Actions](#🔌-connector-actions) | ||
- [💍 Quick Start Examples](#💍-quick-start-examples) | ||
- [🔗 Useful Links](#🔗-useful-links) | ||
- [👏 Special Thanks](#👏-special-thanks) | ||
|
||
- [📖 Summary](#-summary) | ||
- [💼 About Zoho](#-about-zoho) | ||
- [😍 Why is it a big deal for Zoho customers & partners?](#-why-is-it-a-big-deal-for-zoho-customers--partners) | ||
- [🔧 How does it work?](#-how-does-it-work) | ||
- [📊 Data integration capabilities:](#-data-integration-capabilities) | ||
- [🧠 Artificial Intelligence capabilities:](#-artificial-intelligence-capabilities) | ||
- [🔌 Connector Actions](#-connector-actions) | ||
- [💍 Quick Start Examples](#-quick-start-examples) | ||
- [🔗 Useful Links](#-useful-links) | ||
- [👏 Special Thanks](#-special-thanks) | ||
|
||
# 💼 About Zoho | ||
# 💼 About Zohorecruit | ||
|
||
> Zoho Corporation is a prominent multinational SaaS (Software as a Service)company offering a wide array of cloud-based software applications and services for businesses. Known for its user-friendly and customizable tools, Zoho empowers users to manage work, collaborate, and automate tasks efficiently.With a global reach, competitive pricing, and a strong emphasis on data privacy and security, Zoho is a popular choice for businesses seeking productivity and management solutions. | ||
> Zoho Recruit offers a powerful ATS and CRM in a single recruitment platform. With scalability, customization, and remote hiring tools, Recruit has everything your staffing agency or internal HR team needs to match the right candidate to the right role. | ||
## 😍 Why is it a big deal for Zoho customers & partners? | ||
|
||
This new connector will enable: | ||
|
||
- ⚡ A Fastlane Talent & Workforce data integration for Zoho customers & partners | ||
- 🤖 Cutting-edge AI-powered Talent Experiences & Recruiter Experiences for Zoho customers | ||
|
||
# 🔧 How does it work? | ||
## 😍 Why is it a big deal for Zohorecruit customers & partners? | ||
|
||
## 📊 Data integration capabilities | ||
This new connector will enable: | ||
- ⚡ A Fastlane Talent & Workforce data integration for Zohorecruit customers & partners | ||
- 🤖 Cutting-edge AI-powered Talent Experiences & Recruiter Experiences for Zohorecruit customers | ||
|
||
- ⬅️ Send Profiles data from Zoho to a Destination of your choice. | ||
- ➡️ Send Profiles data from a Source of your choice to Zoho. | ||
- ⬅️ Send Jobs data from Zoho to a Destination of your choice. | ||
- ➡️ Send Jobs data from a Source of your choice to Zoho. | ||
# 🔧 How does it work? | ||
## 📊 Data integration capabilities: | ||
- ⬅️ Send Profiles data from Zohorecruit to a Destination of your choice. | ||
- ➡️ Send Profiles data from a Source of your choice to Zohorecruit. | ||
- ⬅️ Send Jobs data from Zohorecruit to a Destination of your choice. | ||
- ➡️ Send Jobs data from a Source of your choice to Zohorecruit. | ||
|
||
## 🧠 Artificial Intelligence capabilities | ||
|
||
## 🧠 Artificial Intelligence capabilities: | ||
- Extract, Structure, and Categorize Talent & Workforce data | ||
- Search, Score, and Match Profiles & Jobs with our APIs and AI Widgets (**Matching Custom Tab in Zoho**) | ||
- Search, Score, and Match Profiles & Jobs with our APIs and AI Widgets (**Matching Custom Tab in Zohorecruit**) | ||
|
||
|
||
# 🔌 Connector Actions | ||
<p align="center"> | ||
|
||
| Action | Description | | ||
| ------- | ----------- | | ||
| [**Pull profile list**](docs/pull_profile_list.md) | Retrieves profiles from Zoho and writes them to an Hrflow.ai source | | ||
| [**Push profile**](docs/push_profile.md) | Pushs specific Profile from HrFlow and writes it to a Zoho Candidate | | ||
| [**Pull job list**](docs/pull_job_list.md) | Retrieves jobs from zoho and writes them to an Hrflow.ai board | | ||
| [**Pull profile list**](docs/pull_profile_list.md) | Retrieves profiles from Zoho Recruit and writes them to an Hrflow.ai source | | ||
| [**Push profile list**](docs/push_profile_list.md) | Pushs Profiles from HrFlow to Zoho Recruit | | ||
| [**Pull job list**](docs/pull_job_list.md) | Retrieves jobs from Zoho Recruit and writes them to an Hrflow.ai board | | ||
|
||
|
||
</p> | ||
|
||
|
||
# 💍 Quick Start Examples | ||
|
||
To make sure you can successfully run the latest versions of the example scripts, you have to **install the package from PyPi**. | ||
|
||
|
||
To browse the examples of actions corresponding to released versions of 🤗 this connector, you just need to import the module like this : | ||
|
||
|
||
Once the connector module is imported, you can leverage all the different actions that it offers. | ||
|
||
For more code details checkout connector code. | ||
|
||
|
||
# 🔗 Useful Links | ||
|
||
- 📄Visit [Zoho](https://www.zoho.com/) to learn more. | ||
- 💻 [Connector code](https://github.com/Riminder/hrflow-connectors/tree/master/src/hrflow_connectors/connectors/zoho) on our Github. | ||
- 📄Visit [Zohorecruit](https://zoho.com/recruit/) to learn more. | ||
- ⚙️ API documentation : (https://www.zoho.com/recruit/developer-guide/apiv2/) | ||
- 💻 [Connector code](https://github.com/Riminder/hrflow-connectors/tree/master/src/hrflow_connectors/connectors/zohorecruit) on our Github. | ||
|
||
# 👏 Special Thanks | ||
|
||
- 💻 HrFlow.ai : Abdellahi Mezid - Software Engineer | ||
- 🤝 Zoho : XXXXX YYYYY - Partner Manager | ||
# 👏 Special Thanks | ||
- 💻 HrFlow.ai : Nedhir Ebnou - Software Engineer |
120 changes: 120 additions & 0 deletions
120
src/hrflow_connectors/connectors/zohorecruit/docs/pull_job_list.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
# Pull job list | ||
`Zoho Jobs` :arrow_right: `HrFlow.ai Jobs` | ||
|
||
Retrieves jobs from Zoho Recruit and writes them to an Hrflow.ai board | ||
|
||
|
||
|
||
## Action Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `logics` | `typing.List[typing.Callable[[typing.Dict], typing.Optional[typing.Dict]]]` | [] | List of logic functions | | ||
| `format` | `typing.Callable[[typing.Dict], typing.Dict]` | [`format_job_opening_to_hrflow`](../connector.py#L75) | Formatting function | | ||
| `read_mode` | `str` | ReadMode.sync | If 'incremental' then `read_from` of the last run is given to Origin Warehouse during read. **The actual behavior depends on implementation of read**. In 'sync' mode `read_from` is neither fetched nor given to Origin Warehouse during read. | | ||
|
||
## Source Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `fields` | `str` | None | To list all the module records with respect to fields | ||
Multiple field API names, comma-separated. | ||
For example Last_Name, Email | | ||
| `sort_order` | `str` | None | To sort the available list of records in either ascending or descending order | ||
asc - ascending order | ||
desc - descending order | | ||
| `sort_by` | `str` | None | To sort the available list of records based on the given field | ||
Field API name | ||
Example: Email | | ||
| `converted` | `str` | ZohoBool.FALSE | To get the list of converted records. | ||
The default value is false | ||
true - get only converted records | ||
false - get only non-converted records | ||
both - get all records | | ||
| `approved` | `str` | ZohoBool.TRUE | To get the list of approved records. | ||
The default value is true | ||
true - get only approved records | ||
false - get only non-approved records | ||
both - get all records | | ||
| `cvid` | `int` | None | To get the list of records based on custom views | ||
{custom_view_id} | | ||
| `territory_id` | `int` | None | To get the list of records based on territory | ||
{territory_id} | | ||
| `include_child` | `bool` | None | To include records from the child territories. | ||
True includes child territory records. | ||
False does not include child territory records. | ||
The default value is false. | | ||
| `state` | `str` | None | If the value of this parameter is 'draft', then the response will only contain Draft records from the specified module. If the parameter's value is 'save', then the response will return saved records from the specified module. | ||
|
||
If this parameter is not included in your request body, then the response will only return saved records from the specified module. | | ||
| `zoho_accounts_url` | `str` | ZohoAccountsURL.EU | Zoho CRM is hosted at multiple data centers. Therefore, the API domain URL varies for each data center. | ||
You must use your domain-specific Zoho Accounts URL to generate access and refresh tokens. The following are the various domains and their corresponding accounts URLs. | ||
US: https://accounts.zoho.com | ||
AU: https://accounts.zoho.com.au | ||
EU: https://accounts.zoho.eu | ||
IN: https://accounts.zoho.in | ||
CN: https://accounts.zoho.com.cn | ||
JP: https://accounts.zoho.jp | ||
CA: https://accounts.zohocloud.ca | | ||
| `client_id` :red_circle: | `str` | None | A unique ID displayed under Self Client > Client Secret. | | ||
| `client_secret` :red_circle: | `str` | None | A unique confidential secret displayed under Self Client > Client Secret. | | ||
| `authorization_code` :red_circle: | `str` | None | The authorization code generated during the Self Client creation, used to get the refresh token and the first access token. | | ||
| `refresh_token` | `str` | None | The refresh token is used to generate a new access token when the current access token expires. | | ||
|
||
## Destination Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `api_secret` :red_circle: | `str` | None | X-API-KEY used to access HrFlow.ai API | | ||
| `api_user` :red_circle: | `str` | None | X-USER-EMAIL used to access HrFlow.ai API | | ||
| `board_key` :red_circle: | `str` | None | HrFlow.ai board key | | ||
| `sync` | `bool` | True | When enabled only pushed jobs will remain in the board | | ||
| `update_content` | `bool` | False | When enabled jobs already present in the board are updated | | ||
| `enrich_with_parsing` | `bool` | False | When enabled jobs are enriched with HrFlow.ai parsing | | ||
|
||
:red_circle: : *required* | ||
|
||
## Example | ||
|
||
```python | ||
import logging | ||
from hrflow_connectors import ZohoRecruit | ||
from hrflow_connectors.core import ReadMode | ||
|
||
|
||
logging.basicConfig(level=logging.INFO) | ||
|
||
|
||
ZohoRecruit.pull_job_list( | ||
workflow_id="some_string_identifier", | ||
action_parameters=dict( | ||
logics=[], | ||
format=lambda *args, **kwargs: None # Put your code logic here, | ||
read_mode=ReadMode.sync, | ||
), | ||
origin_parameters=dict( | ||
fields="your_fields", | ||
sort_order="asc", | ||
sort_by="your_sort_by", | ||
converted="false", | ||
approved="true", | ||
cvid=0, | ||
territory_id=0, | ||
include_child=False, | ||
state="draft", | ||
zoho_accounts_url="https://accounts.zoho.eu", | ||
client_id="your_client_id", | ||
client_secret="your_client_secret", | ||
authorization_code="your_authorization_code", | ||
refresh_token="your_refresh_token", | ||
), | ||
target_parameters=dict( | ||
api_secret="your_api_secret", | ||
api_user="your_api_user", | ||
board_key="your_board_key", | ||
sync=True, | ||
update_content=False, | ||
enrich_with_parsing=False, | ||
) | ||
) | ||
``` |
118 changes: 118 additions & 0 deletions
118
src/hrflow_connectors/connectors/zohorecruit/docs/pull_profile_list.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
# Pull profile list | ||
`Zoho Candidates` :arrow_right: `HrFlow.ai Profiles` | ||
|
||
Retrieves profiles from Zoho Recruit and writes them to an Hrflow.ai source | ||
|
||
|
||
|
||
## Action Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `logics` | `typing.List[typing.Callable[[typing.Dict], typing.Optional[typing.Dict]]]` | [] | List of logic functions | | ||
| `format` | `typing.Callable[[typing.Dict], typing.Dict]` | [`format_candidate_to_hrflow`](../connector.py#L163) | Formatting function | | ||
| `read_mode` | `str` | ReadMode.sync | If 'incremental' then `read_from` of the last run is given to Origin Warehouse during read. **The actual behavior depends on implementation of read**. In 'sync' mode `read_from` is neither fetched nor given to Origin Warehouse during read. | | ||
|
||
## Source Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `fields` | `str` | None | To list all the module records with respect to fields | ||
Multiple field API names, comma-separated. | ||
For example Last_Name, Email | | ||
| `sort_order` | `str` | None | To sort the available list of records in either ascending or descending order | ||
asc - ascending order | ||
desc - descending order | | ||
| `sort_by` | `str` | None | To sort the available list of records based on the given field | ||
Field API name | ||
Example: Email | | ||
| `converted` | `str` | ZohoBool.FALSE | To get the list of converted records. | ||
The default value is false | ||
true - get only converted records | ||
false - get only non-converted records | ||
both - get all records | | ||
| `approved` | `str` | ZohoBool.TRUE | To get the list of approved records. | ||
The default value is true | ||
true - get only approved records | ||
false - get only non-approved records | ||
both - get all records | | ||
| `cvid` | `int` | None | To get the list of records based on custom views | ||
{custom_view_id} | | ||
| `territory_id` | `int` | None | To get the list of records based on territory | ||
{territory_id} | | ||
| `include_child` | `bool` | None | To include records from the child territories. | ||
True includes child territory records. | ||
False does not include child territory records. | ||
The default value is false. | | ||
| `state` | `str` | None | If the value of this parameter is 'draft', then the response will only contain Draft records from the specified module. If the parameter's value is 'save', then the response will return saved records from the specified module. | ||
|
||
If this parameter is not included in your request body, then the response will only return saved records from the specified module. | | ||
| `zoho_accounts_url` | `str` | ZohoAccountsURL.EU | Zoho CRM is hosted at multiple data centers. Therefore, the API domain URL varies for each data center. | ||
You must use your domain-specific Zoho Accounts URL to generate access and refresh tokens. The following are the various domains and their corresponding accounts URLs. | ||
US: https://accounts.zoho.com | ||
AU: https://accounts.zoho.com.au | ||
EU: https://accounts.zoho.eu | ||
IN: https://accounts.zoho.in | ||
CN: https://accounts.zoho.com.cn | ||
JP: https://accounts.zoho.jp | ||
CA: https://accounts.zohocloud.ca | | ||
| `client_id` :red_circle: | `str` | None | A unique ID displayed under Self Client > Client Secret. | | ||
| `client_secret` :red_circle: | `str` | None | A unique confidential secret displayed under Self Client > Client Secret. | | ||
| `authorization_code` :red_circle: | `str` | None | The authorization code generated during the Self Client creation, used to get the refresh token and the first access token. | | ||
| `refresh_token` | `str` | None | The refresh token is used to generate a new access token when the current access token expires. | | ||
|
||
## Destination Parameters | ||
|
||
| Field | Type | Default | Description | | ||
| ----- | ---- | ------- | ----------- | | ||
| `api_secret` :red_circle: | `str` | None | X-API-KEY used to access HrFlow.ai API | | ||
| `api_user` :red_circle: | `str` | None | X-USER-EMAIL used to access HrFlow.ai API | | ||
| `source_key` :red_circle: | `str` | None | HrFlow.ai source key | | ||
| `edit` | `bool` | False | When enabled the profile must exist in the source | | ||
| `only_edit_fields` :red_circle: | `typing.List[str]` | None | List of attributes to use for the edit operation e.g. ['tags', 'metadatas'] | | ||
|
||
:red_circle: : *required* | ||
|
||
## Example | ||
|
||
```python | ||
import logging | ||
from hrflow_connectors import ZohoRecruit | ||
from hrflow_connectors.core import ReadMode | ||
|
||
|
||
logging.basicConfig(level=logging.INFO) | ||
|
||
|
||
ZohoRecruit.pull_profile_list( | ||
workflow_id="some_string_identifier", | ||
action_parameters=dict( | ||
logics=[], | ||
format=lambda *args, **kwargs: None # Put your code logic here, | ||
read_mode=ReadMode.sync, | ||
), | ||
origin_parameters=dict( | ||
fields="your_fields", | ||
sort_order="asc", | ||
sort_by="your_sort_by", | ||
converted="false", | ||
approved="true", | ||
cvid=0, | ||
territory_id=0, | ||
include_child=False, | ||
state="draft", | ||
zoho_accounts_url="https://accounts.zoho.eu", | ||
client_id="your_client_id", | ||
client_secret="your_client_secret", | ||
authorization_code="your_authorization_code", | ||
refresh_token="your_refresh_token", | ||
), | ||
target_parameters=dict( | ||
api_secret="your_api_secret", | ||
api_user="your_api_user", | ||
source_key="your_source_key", | ||
edit=False, | ||
only_edit_fields=***, | ||
) | ||
) | ||
``` |
Oops, something went wrong.