# Zoho PageSense

> Website analytics and conversion optimization. Manage goals and custom events, and read traffic totals, breakdowns and daily trends.

App · Analytics · 12 actions. Web page: https://docs.lodol.com/docs/integrations/zoho-pagesense

## Actions

### Create custom event

Register a custom event your site's tracking code can send. The API cannot delete events.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- Event name (`event_name`, text, required): The event's name, unique in the project.

**Outputs**: A custom event.

- `event_id` (text): The event's id.
- `event_name` (text): The event's name, as the tracking code sends it.
- `linkname` (text): The event's linkname; a custom-event goal takes it.

**Example output**

```json
{
  "event_id": "93969000000020001",
  "event_name": "signup_clicked",
  "linkname": "signup-clicked"
}
```

### Create goal

Create a conversion goal in a project. The free plan allows five goals.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- Name (`display_name`, text, required): The goal's name.
- Goal type (`goal_type`, text, required): What counts as reaching the goal. One of: `1` (Page visit), `2` (Link click), `3` (Form submit), `4` (Element click), `5` (Engagement), `6` (Custom event), `8` (Time spent).
- Goal URL (`goal_url`, text, required): The page the goal is about. Zoho requires it for every goal type.
- URL match type (`url_match_type`, text): Optional. How the goal URL and the URL lists are matched. Default: simple match. One of: `1` (Simple match), `2` (Exact match), `3` (Pattern match), `4` (Regex match), `5` (Contains), `6` (Starts with), `7` (Ends with), `8` (Domain).
- Element CSS selector (`element_css_selector`, text): Optional. The element to track, e.g. #signup-button; required for an element-click goal.
- Time threshold (seconds) (`time_threshold`, number): Optional. Seconds on the site that reach the goal; required for a time-spent goal. At least 1.
- Custom event linkname (`custom_event_linkname`, text): Optional. The event, from 'List custom events'; required for a custom-event goal.
- Track on these URLs (`include_urls`, list): Optional. Only count the goal on these pages. Leave empty for the whole site.
- Exclude these URLs (`exclude_urls`, list): Optional. Never count the goal on these pages.

**Outputs**: A project goal.

- `created_date` (text): When the goal was created.
- `created_time` (number): When the goal was created, in Unix milliseconds.
- `display_name` (text): The goal's name.
- `element_css_selector` (text): The CSS selector of the element the goal tracks.
- `goal_id` (text): The goal's id.
- `goal_id_string` (text): The goal's id, as text.
- `goal_status` (number): 1 Active, 2 Paused.
- `goal_type` (number): 1 page visit, 2 link click, 3 form submit, 4 element click, 5 engagement, 6 custom event, 7 revenue, 8 time spent.
- `goal_url` (text): The page the goal is tied to.
- `is_data_tracked` (true/false): Whether the goal has recorded any data.
- `linkname` (text): The goal's linkname; Get, Update and Delete goal take it.
- `project_id` (text): The id of the goal's project.
- `project_linkname` (text): The linkname of the goal's project.
- `time_threshold` (number): Seconds on the site that count as reaching a time-spent goal.
- `unique_goal_achieved_count` (number): Visitors who reached the goal.
- `unique_visitor_count` (number): Visitors counted for the goal.

**Example output**

```json
{
  "created_time": 1761700000000,
  "display_name": "Signup time spent",
  "element_css_selector": "",
  "goal_id": "93969000000011017",
  "goal_id_string": "93969000000011017",
  "goal_status": 1,
  "goal_type": 8,
  "goal_url": "",
  "is_data_tracked": false,
  "linkname": "signup-time-spent",
  "project_linkname": "my-website",
  "time_threshold": 60
}
```

### Delete goal

Permanently delete a goal and its recorded conversions.

**Inputs**

- Goal linkname (`goal_linkname`, text, required): The goal's linkname, from 'List goals' or 'Create goal'.

**Outputs**: The goal that was deleted.

- `deleted` (true/false): Always true.
- `display_name` (text): The deleted goal's name.
- `goal_id` (text): The deleted goal's id.
- `linkname` (text): The deleted goal's linkname.

**Example output**

```json
{
  "deleted": true,
  "display_name": "Signup time spent",
  "goal_id": "93969000000011017",
  "linkname": "signup-time-spent"
}
```

### Get daily traffic

Traffic for each day in a date range.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- From (`start_date`, date, required): The first day to report on. The free plan keeps one month of data.
- To (`end_date`, date, required): The last day to report on.
- Metrics (`metrics`, list): Optional. Which numbers to report; all of them if none is chosen. One or more of: `page_views` (Page views), `unique_page_views` (Unique page views), `average_time_on_page` (Average time on page), `entrances`, `bounce_rate` (Bounce rate), `exit_rate` (Exit rate).

**Outputs**

- `count` (number): How many days were returned.
- `items` (list): The days.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "average_time_on_page": 52000,
      "bounce_rate": 36.62,
      "date": "2026-09-01",
      "entrances": 640,
      "exit_rate": 41.2,
      "page_views": 1520,
      "unique_page_views": 1210
    }
  ]
}
```

### Get goal

Get one goal's settings (not its conversion numbers).

**Inputs**

- Goal linkname (`goal_linkname`, text, required): The goal's linkname, from 'List goals' or 'Create goal'.

**Outputs**: A project goal.

- `created_date` (text): When the goal was created.
- `created_time` (number): When the goal was created, in Unix milliseconds.
- `display_name` (text): The goal's name.
- `element_css_selector` (text): The CSS selector of the element the goal tracks.
- `goal_id` (text): The goal's id.
- `goal_id_string` (text): The goal's id, as text.
- `goal_status` (number): 1 Active, 2 Paused.
- `goal_type` (number): 1 page visit, 2 link click, 3 form submit, 4 element click, 5 engagement, 6 custom event, 7 revenue, 8 time spent.
- `goal_url` (text): The page the goal is tied to.
- `is_data_tracked` (true/false): Whether the goal has recorded any data.
- `linkname` (text): The goal's linkname; Get, Update and Delete goal take it.
- `project_id` (text): The id of the goal's project.
- `project_linkname` (text): The linkname of the goal's project.
- `time_threshold` (number): Seconds on the site that count as reaching a time-spent goal.
- `unique_goal_achieved_count` (number): Visitors who reached the goal.
- `unique_visitor_count` (number): Visitors counted for the goal.

**Example output**

```json
{
  "created_time": 1761700000000,
  "display_name": "Signup time spent",
  "element_css_selector": "",
  "goal_id": "93969000000011017",
  "goal_id_string": "93969000000011017",
  "goal_status": 1,
  "goal_type": 8,
  "goal_url": "",
  "is_data_tracked": false,
  "linkname": "signup-time-spent",
  "project_linkname": "my-website",
  "time_threshold": 60
}
```

### Get project

Get one project's details.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).

**Outputs**: A PageSense project (one website).

- `alt_script_url` (text): Alternate (CDN) URL of the tracking script.
- `created_by` (text): Who created the project.
- `created_time` (text): When the project was created.
- `display_name` (text): The project's name.
- `id` (text): The project's id, as text (same as project_id).
- `is_full_tracking_enabled` (true/false): Whether full tracking is on.
- `is_hipaa_enabled` (true/false): Whether HIPAA mode is on.
- `linkname` (text): The project's linkname; the other actions take it.
- `modified_time` (text): When the project was last modified.
- `project_id` (text): The project's id, as text.
- `project_key` (text): The project's tracking key.
- `project_status` (number): 1 when the project is active.
- `project_type` (number): The project's type code.
- `running_experiments` (number): How many experiments are running.
- `script_url` (text): URL of the tracking script to install on the website.
- `total_experiments` (number): How many experiments the project has.
- `user_role_link_name` (text): The connected user's role in the project.

**Example output**

```json
{
  "display_name": "My website",
  "linkname": "my-website",
  "project_id": "93969000000002003"
}
```

### Get traffic breakdown

Traffic for a date range broken down by page, referrer, country, device, browser or UTM value.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- From (`start_date`, date, required): The first day to report on. The free plan keeps one month of data.
- To (`end_date`, date, required): The last day to report on.
- Dimension (`dimension`, text, required): What to break the traffic down by. One of: `currenturl` (Page URL), `referrer`, `country`, `device_type` (Device type), `os` (Operating system), `browser`, `query` (Query string), `utm_campaign` (UTM campaign), `utm_content` (UTM content), `utm_term` (UTM term).
- Metrics (`metrics`, list): Optional. Which numbers to report; all of them if none is chosen. One or more of: `page_views` (Page views), `unique_page_views` (Unique page views), `average_time_on_page` (Average time on page), `entrances`, `bounce_rate` (Bounce rate), `exit_rate` (Exit rate).
- Sort by (`sort_by`, text): Optional. The metric to sort by; one of those chosen above. One of: `page_views` (Page views), `unique_page_views` (Unique page views), `average_time_on_page` (Average time on page), `entrances`, `bounce_rate` (Bounce rate), `exit_rate` (Exit rate).
- Order (`sort_type`, text): Optional. Highest first by default. One of: `desc` (Highest first), `asc` (Lowest first).
- Rows per page (`limit`, number): Optional. 1 to 100. Default 25. From 1 to 100.
- Page (`page`, number): Optional. The page to return, from 1. At least 1.

**Outputs**

- `count` (number): How many rows were returned.
- `dimension` (text): The dimension the traffic is broken down by.
- `has_more` (true/false): Whether another page is probably available.
- `items` (list): The rows.
- `next_page` (number): Pass as 'Page' to fetch the next page; empty on the last.
- `page` (number): The page number returned.

**Example output**

```json
{
  "count": 1,
  "dimension": "country",
  "has_more": false,
  "items": [
    {
      "average_time_on_page": 52000,
      "bounce_rate": 36.62,
      "entrances": 640,
      "exit_rate": 41.2,
      "page_views": 1520,
      "primary_dimension": "United States",
      "unique_page_views": 1210
    }
  ],
  "next_page": null,
  "page": 1
}
```

### Get traffic totals

Page views, entrances, bounce and exit rates for a date range.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- From (`start_date`, date, required): The first day to report on. The free plan keeps one month of data.
- To (`end_date`, date, required): The last day to report on.
- Metrics (`metrics`, list): Optional. Which numbers to report; all of them if none is chosen. One or more of: `page_views` (Page views), `unique_page_views` (Unique page views), `average_time_on_page` (Average time on page), `entrances`, `bounce_rate` (Bounce rate), `exit_rate` (Exit rate).

**Outputs**: Traffic totals for the date range.

- `average_time_on_page` (number): Average time on page, as PageSense reports it (milliseconds in the totals, seconds in the daily report).
- `bounce_rate` (number): Bounce rate, as a percentage (36.62 means 36.62%).
- `end_date` (text): The last day of the range, YYYY-MM-DD.
- `entrances` (number): Sessions that started here.
- `exit_rate` (number): Exit rate, as a percentage.
- `full_tracking_first_data_tracked_time` (text): When the project first recorded data.
- `full_tracking_first_data_tracked_time_in_long` (number): When the project first recorded data, in Unix milliseconds.
- `has_data` (true/false): Whether any traffic was recorded in the range.
- `page_views` (number): Page views.
- `start_date` (text): The first day of the range, YYYY-MM-DD.
- `unique_page_views` (number): Unique page views.

**Example output**

```json
{
  "average_time_on_page": 52000,
  "bounce_rate": 36.62,
  "end_date": "2026-09-30",
  "entrances": 640,
  "exit_rate": 41.2,
  "has_data": true,
  "page_views": 1520,
  "start_date": "2026-09-01",
  "unique_page_views": 1210
}
```

### List custom events

List a project's custom events and their linknames.

**Inputs**

- Project (`project_linkname`, text, required): The PageSense project (website).
- Search (`search`, text): Optional. Only events whose name contains this text.

**Outputs**

- `count` (number): How many custom events were returned.
- `items` (list): The custom events.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "event_id": "93969000000020001",
      "event_name": "signup_clicked",
      "linkname": "signup-clicked"
    }
  ]
}
```

### List goals

List the conversion goals set up in PageSense.

**Inputs**

- Project (`project_linkname`, text): Optional. Only this project's goals.
- Search (`search`, text): Optional. Only goals whose name contains this text.
- Page size (`limit`, number): Optional. How many to return, 1 to 100. Default 50. From 1 to 100.
- Offset (`offset`, number): Optional. Where to start: the next_offset of the previous page. At least 0.

**Outputs**

- `count` (number): How many goals were returned.
- `has_more` (true/false): Whether another page is probably available.
- `items` (list): The goals.
- `next_offset` (number): Pass as 'Offset' to fetch the next page; empty on the last.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "created_time": 1761700000000,
      "display_name": "Signup time spent",
      "element_css_selector": "",
      "goal_id": "93969000000011017",
      "goal_id_string": "93969000000011017",
      "goal_status": 1,
      "goal_type": 8,
      "goal_url": "",
      "is_data_tracked": false,
      "linkname": "signup-time-spent",
      "project_linkname": "my-website",
      "time_threshold": 60
    }
  ],
  "next_offset": null
}
```

### List projects

List the portal's projects (websites) and their linknames.

**Inputs**: None.

**Outputs**

- `count` (number): How many projects were returned.
- `items` (list): The projects.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "display_name": "My website",
      "linkname": "my-website",
      "project_id": "93969000000002003"
    }
  ]
}
```

### Update goal

Rename, pause, resume or retarget a goal. Blank fields are left as they are.

**Inputs**

- Goal linkname (`goal_linkname`, text, required): The goal's linkname, from 'List goals' or 'Create goal'.
- Project (`project_linkname`, text, required): The goal's project.
- Name (`display_name`, text): Optional. A new name.
- Status (`goal_status`, text): Optional. Pause or resume the goal. One of: `1` (Active), `2` (Paused).
- Goal URL (`goal_url`, text): Optional. The page the goal is about.
- URL match type (`url_match_type`, text): Optional. How the goal URL and the URL lists are matched. Default: simple match. One of: `1` (Simple match), `2` (Exact match), `3` (Pattern match), `4` (Regex match), `5` (Contains), `6` (Starts with), `7` (Ends with), `8` (Domain).
- Element CSS selector (`element_css_selector`, text): Optional. The element to track, e.g. #signup-button; required for an element-click goal.
- Time threshold (seconds) (`time_threshold`, number): Optional. Seconds on the site that reach the goal; required for a time-spent goal. At least 1.
- Track on these URLs (`include_urls`, list): Optional. Only count the goal on these pages. Leave empty for the whole site.
- Exclude these URLs (`exclude_urls`, list): Optional. Never count the goal on these pages.

**Outputs**: A project goal.

- `created_date` (text): When the goal was created.
- `created_time` (number): When the goal was created, in Unix milliseconds.
- `display_name` (text): The goal's name.
- `element_css_selector` (text): The CSS selector of the element the goal tracks.
- `goal_id` (text): The goal's id.
- `goal_id_string` (text): The goal's id, as text.
- `goal_status` (number): 1 Active, 2 Paused.
- `goal_type` (number): 1 page visit, 2 link click, 3 form submit, 4 element click, 5 engagement, 6 custom event, 7 revenue, 8 time spent.
- `goal_url` (text): The page the goal is tied to.
- `is_data_tracked` (true/false): Whether the goal has recorded any data.
- `linkname` (text): The goal's linkname; Get, Update and Delete goal take it.
- `project_id` (text): The id of the goal's project.
- `project_linkname` (text): The linkname of the goal's project.
- `time_threshold` (number): Seconds on the site that count as reaching a time-spent goal.
- `unique_goal_achieved_count` (number): Visitors who reached the goal.
- `unique_visitor_count` (number): Visitors counted for the goal.

**Example output**

```json
{
  "created_time": 1761700000000,
  "display_name": "Signup time spent",
  "element_css_selector": "",
  "goal_id": "93969000000011017",
  "goal_id_string": "93969000000011017",
  "goal_status": 2,
  "goal_type": 8,
  "goal_url": "",
  "is_data_tracked": false,
  "linkname": "signup-time-spent",
  "project_linkname": "my-website",
  "time_threshold": 60
}
```
