# Zoho Push Punch Logs

Use this integration to push attendance data from we360.ai into Zoho People.

## Before you start

You need a Zoho self client and a refresh token.

You also need:

* Client ID
* Client Secret
* Organization ID
* Refresh Token

## Create a Zoho self client

{% stepper %}
{% step %}

### Open the API console

Go to `https://api-console.zoho.in/`.

Select **Add Client**.

Choose **Self Client**.
{% endstep %}

{% step %}

### Set the scope

Use this scope:

```
ZOHOPEOPLE.attendance.ALL
```

{% endstep %}

{% step %}

### Generate the code

Create a code in the self client.

Copy the generated code.
{% endstep %}
{% endstepper %}

## Get the organization ID

Open `https://people.zoho.in/organizations`.

Copy your **Organization ID**.

## Exchange the code for tokens

Run this request after replacing the placeholders:

```bash
curl --location --request POST \
'https://accounts.zoho.in/oauth/v2/token?grant_type=authorization_code&client_id=<clientId>&client_secret=<clientSecret>&redirect_uri=https%3A%2F%2Faccounts.zohocorp.in%2Faccounts%2Fextoauth%2F<OrganisationID>%2Fclientcallback&code=<CreatedCode>' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8'
```

Replace these placeholders:

* `<clientId>` with the Client ID from the Zoho API Console
* `<clientSecret>` with the Client Secret from the Zoho API Console
* `<OrganisationID>` with the Zoho People organization ID
* `<CreatedCode>` with the generated code

A successful response returns both an access token and a refresh token.

Example response:

```json
{
  "access_token": "1000...",
  "refresh_token": "1000...",
  "scope": "ZOHOPEOPLE.attendance.ALL",
  "api_domain": "https://www.zohoapis.in",
  "token_type": "Bearer",
  "expires_in": 3600
}
```

Copy the `refresh_token` value.

## Configure the integration in we360.ai

In we360.ai, go to **Settings → Integrations**.

Open **Zoho Push Punch Logs**.

Enter the generated credentials and IDs in the integration form.

At minimum, use the `Client ID`, `Client Secret`, and `Refresh Token` generated above.

Save the integration after all required fields are filled.

![](/files/H4dVaepwpkR9dCW0zt7A)

## Troubleshooting

#### Token generation fails

Check the scope, client values, organization ID, and authorization code.

#### Sync fails after setup

Confirm the refresh token copied into we360.ai is complete and current.

#### Attendance does not update in Zoho People

Re-check the organization-specific values and the credentials used in the integration form.

## References

* Zoho API Console — `https://api-console.zoho.in/`
* Zoho People organizations — `https://people.zoho.in/organizations`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.we360.ai/deployment-and-it-ops/readme/integrations/portal-integrations/zoho-push-punch-logs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
