# Zoho Campaigns Integration via LowCodeAPI

## Overview

Email marketing

## Base Endpoint

```
https://api.lowcodeapi.com/zohocampaigns/
```

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [Zoho Campaigns](https://www.zoho.com/campaigns)
2. **Get your credentials** from [credential page](https://accounts.zoho.com/developerconsole)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

**Auth Type**: OAUTH2.0

## API Categories

- **Campaign Management** - 12 endpoints
- **List Management** - 16 endpoints
- **Topic Management** - 3 endpoints
- **Workflow Management** - 2 endpoints

## Common Endpoints

### Category: Campaign Management

#### Campaign Details

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/getcampaigndetails`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getcampaigndetails?resfmt={resfmt}&campaigntype={campaigntype}&campaignkey={campaignkey}&api_token={api_token}
```

**Description**: Campaign details: data, status, sender, lists, reports

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resfmt` | string | No | XML (or) JSON |
|`campaigntype` | string | Yes | abtesting |
|`campaignkey` | string | Yes | Get it from recentcampaigns response |

---

#### Create Campaign

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/createcampaign`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/createcampaign?api_token={api_token}
```

**Description**: Create a campaign

**Request Body**:
```json
{
  "campaignname": "<string>",
  "from_email": "<string>",
  "subject": "<string>",
  "list_details": "<object>",
  "topicId": "<string>"
}
```

---

#### Schedule Campaign

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/sendcampaign`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/sendcampaign?api_token={api_token}
```

**Description**: Schedule sending time for campaigns

**Request Body**:
```json
{
  "scheduledate": "<string>",
  "schedulehour": "<number>",
  "scheduleminute": "<number>",
  "am_pm": "<string>"
}
```

---

#### Clone Campaign

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/type/clonecampaign`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/type/clonecampaign?api_token={api_token}
```

**Description**: Clone campaigns

**Request Body**:
```json
{
  "campaigninfo": "<object>"
}
```

---

#### Campaign Reports

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/campaignreports`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/campaignreports?resfmt={resfmt}&campaignkey={campaignkey}&api_token={api_token}
```

**Description**: Schedule sending time for campaigns

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resfmt` | string | No | XML (or) JSON |
|`campaignkey` | string | Yes | Get it from recentcampaigns response |

---

#### Recent Campaigns

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/recentcampaigns`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/recentcampaigns?resfmt={resfmt}&sort={sort}&fromindex={fromindex}&range={range}&status={status}&api_token={api_token}
```

**Description**: See the details of the five most recent campaigns

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resfmt` | string | No | XML (or) JSON |
|`sort` | string | No | asc/desc |
|`fromindex` | number | No | Default value: 1 |
|`range` | number | No | number |
|`status` | string | No | all|all campaigns|drafts|scheduled|inprogress|sent|stopped| canceled|tobereviewed|reviewed|paused|intesting |

---

#### Recently Sent Campaigns

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/recentsentcampaigns`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/recentsentcampaigns?resfmt={resfmt}&version={version}&limit={limit}&api_token={api_token}
```

**Description**: View the email campaign that was recently sent

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resfmt` | string | No | XML (or) JSON |
|`version` | string | No | This will fetch responses based on the current API version |
|`limit` | number | Yes | Limit to fetch Recent campaigns from campaigns list |

---

#### Last Campaign Report

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/getlastcampaignreport`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getlastcampaignreport?api_token={api_token}
```

**Description**: View the report for the last sent campaign

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Get Campaign Recipients Data

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/getcampaignrecipientsdata`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getcampaignrecipientsdata?api_token={api_token}
```

**Description**: Get the campaign recipients' data

**Request Body**:
```json
{
  "campaignkey": "<string>",
  "action": "<string>"
}
```

---

#### View Coupon Details

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/coupon/coupondetails`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/coupon/coupondetails?type={type}&couponCode={couponCode}&api_token={api_token}
```

**Description**: View the coupon details

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`type` | string | No | XML (or) JSON |
|`couponCode` | string | Yes | Get it from recent coupon campaign |

---

#### Change Coupon Status

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/coupon/changestatus`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/coupon/changestatus?api_token={api_token}
```

**Description**: Change the status of a coupon code

**Request Body**:
```json
{
  "couponCode": "<string>"
}
```

---

#### Delete Campaign

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/deletecampaign`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/deletecampaign?api_token={api_token}
```

**Description**: Delete campaigns

**Request Body**:
```json
{
  "campaignkey": "<string>"
}
```

---

### Category: List Management

#### Get List Advanced Details

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/getlistadvanceddetails`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getlistadvanceddetails?listkey={listkey}&resfmt={resfmt}&filtertype={filtertype}&fromindex={fromindex}&range={range}&api_token={api_token}
```

**Description**: Fetch the list based advanced details

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`listkey` | string | Yes | List Key to send a subscription mail to contacts |
|`resfmt` | string | No | XML (or) JSON |
|`filtertype` | string | No | sentcampaigns, scheduledcampaigns, recentcampaigns |
|`fromindex` | number | No | values are in number |
|`range` | number | No | values are in number |

---

#### Get Mailing Lists

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/getmailinglists`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getmailinglists?api_token={api_token}
```

**Description**: Fetch the mailing list and list details

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Get List Contacts

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/getlistsubscribers`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getlistsubscribers?listkey={listkey}&resfmt={resfmt}&sort={sort}&fromindex={fromindex}&range={range}&status={status}&api_token={api_token}
```

**Description**: Get the contacts based on status

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`listkey` | string | Yes | List Key to send a subscription mail to contacts |
|`resfmt` | string | No | XML (or) JSON |
|`sort` | string | No | asc/desc |
|`fromindex` | number | No | values are in number |
|`range` | number | No | values are in number |
|`status` | string | No | active/ recent/ most recent/ unsub/ bounce |

---

#### Get All Contact Fields

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/contact/allfields`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/contact/allfields?api_token={api_token}
```

**Description**: Fetch contact fields to get profile information of contacts

**Request Body**:
```json
{
  "type": "<string>"
}
```

---

#### Get Segment Details

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/getsegmentdetails`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getsegmentdetails?api_token={api_token}
```

**Description**: Fetch the segment details

**Request Body**:
```json
{
  "listkey": "<string>",
  "cvid": "<number>"
}
```

---

#### Get Segment Contacts

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/getsegmentcontact`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/getsegmentcontact?resfmt={resfmt}&cvid={cvid}&api_token={api_token}
```

**Description**: Fetch the segment contacts

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resfmt` | string | No | XML (or) JSON |
|`cvid` | number | Yes | You will get cvid from getmailinglists |

---

#### Update List

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/updatelistdetails`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/updatelistdetails?listkey={listkey}&resfmt={resfmt}&newlistname={newlistname}&signupform={signupform}&api_token={api_token}
```

**Description**: Edit mailing list's name and allow sign-up form

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`listkey` | string | Yes | List Key to send a subscription mail to contacts |
|`resfmt` | string | No | XML (or) JSON |
|`newlistname` | string | Yes | Give list name |
|`signupform` | string | Yes | public/private |

---

#### Delete Mailing List

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/deletemailinglist`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/deletemailinglist?listkey={listkey}&resfmt={resfmt}&deletecontacts={deletecontacts}&api_token={api_token}
```

**Description**: Delete the mailing list

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`listkey` | string | Yes | List Key to send a subscription mail to contacts |
|`resfmt` | string | No | XML (or) JSON |
|`deletecontacts` | string | No | on/off |

---

#### Total Contacts

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/listsubscriberscount`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/listsubscriberscount?listkey={listkey}&resfmt={resfmt}&status={status}&api_token={api_token}
```

**Description**: View all the contacts in a mailing list

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`listkey` | string | Yes | List Key to send a subscription mail to contacts |
|`resfmt` | string | No | XML (or) JSON |
|`status` | string | No | [active| unsub| bounce| spam] |

---

#### Subscribe

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/type/listsubscribe`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/type/listsubscribe?api_token={api_token}
```

**Description**: Add contacts and custom fields to a list

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`type` | string | Yes | XML (or) JSON |

**Request Body**:
```json
{
  "listkey": "<string>",
  "contactinfo": "<object>"
}
```

---

#### Unsubscribe

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/type/listunsubscribe`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/type/listunsubscribe?api_token={api_token}
```

**Description**: Unsubscribe the user from a list

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`type` | string | Yes | XML (or) JSON |

**Request Body**:
```json
{
  "listkey": "<string>",
  "contactinfo": "<object>"
}
```

---

#### Move to Do-Not-Mail

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/type/contactdonotmail`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/type/contactdonotmail?api_token={api_token}
```

**Description**: Move a contact to Do-Not-Mail registry

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`type` | string | Yes | XML (or) JSON |

**Request Body**:
```json
{
  "contactinfo": "<object>"
}
```

---

#### Add Contacts in Existing List

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/addlistsubscribersinbulk`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/addlistsubscribersinbulk?api_token={api_token}
```

**Description**: Add contacts in existing list

**Request Body**:
```json
{
  "listkey": "<string>",
  "emailids": "<object>"
}
```

---

#### Add New List and Contacts

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/addlistandcontacts`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/addlistandcontacts?api_token={api_token}
```

**Description**: Add new list and contacts in the list

**Request Body**:
```json
{
  "emailids": "<object>",
  "listname": "<string>",
  "signupform": "<string>",
  "mode": "<string>"
}
```

---

#### Create Custom Fields

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/custom/add`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/custom/add?api_token={api_token}
```

**Description**: Create custom fields for contacts

**Request Body**:
```json
{
  "type": "<string>",
  "fieldname": "<string>",
  "fieldtype": "<string>"
}
```

---

*Note: Showing 15 of 16 endpoints in this category.*

---

### Category: Topic Management

#### Create Topics

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/topics`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/topics?api_token={api_token}
```

**Description**: Create new topics 

**Request Body**:
```json
{
  "topic_desc": "<string>",
  "topic_name": "<string>"
}
```

---

#### Get Topics

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/topics`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/topics?from_index={from_index}&range={range}&api_token={api_token}
```

**Description**: Get a list of all topics

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`from_index` | number | No | Range of topics to be returned to the user |
|`range` | number | No | Range of topics to be returned to the user |

---

#### Get Product

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/topics/products`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/topics/products?from_index={from_index}&range={range}&api_token={api_token}
```

**Description**: Get a list of products

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`from_index` | number | No | Range of topics to be returned to the user |
|`range` | number | No | Range of topics to be returned to the user |

---

### Category: Workflow Management

#### Get open custom workflows

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1.1/workflow`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/workflow?details={details}&api_token={api_token}
```

**Description**: List open custom organization workflows

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`details` | string | No | It is a JSON Object containing key-value data of the following details: page, limit, sort_order, user, trigger_type |

---

#### Trigger contacts

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1.1/workflow/custom_workflow_key/action/trigger`

**Full URL**:
```
https://api.lowcodeapi.com/zohocampaigns/api/v1.1/workflow/custom_workflow_key/action/trigger?api_token={api_token}
```

**Description**: Trigger/Add your contacts into custom workflows

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`custom_workflow_key` | string | Yes | Custom Workflow key |

**Request Body**:
```json
{
  "key": "value"
}
```

---

## Complete Endpoint Reference

For a complete list of all 33 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/zohocampaigns/definition`
- **Official Provider Documentation**: https://www.zoho.com/campaigns/help/developers/