Skip to content

Commit

Permalink
feat: jsonmaps, docs & manifest
Browse files Browse the repository at this point in the history
  • Loading branch information
itsnedhir committed Nov 13, 2024
1 parent a22f644 commit d21c90b
Show file tree
Hide file tree
Showing 10 changed files with 36,227 additions and 12,901 deletions.
346 changes: 205 additions & 141 deletions README.md

Large diffs are not rendered by default.

48,180 changes: 35,454 additions & 12,726 deletions manifest.json

Large diffs are not rendered by default.

71 changes: 37 additions & 34 deletions src/hrflow_connectors/connectors/zohorecruit/README.md
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 src/hrflow_connectors/connectors/zohorecruit/docs/pull_job_list.md
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 src/hrflow_connectors/connectors/zohorecruit/docs/pull_profile_list.md
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=***,
)
)
```
Loading

0 comments on commit d21c90b

Please sign in to comment.