> For the complete documentation index, see [llms.txt](https://docs.planetcrust.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.planetcrust.com/human-connections/netsuite/netsuite.md).

# Netsuite

<p align="center"><a class="button primary" data-icon="circle-caret-right">Try @Human</a><a class="button primary" data-icon="check">Buy @Human Subscription</a><a class="button primary" data-icon="comments">Join @Human Community</a></p>

<figure><img src="/files/ow4OXIWbH1xDsaaD985H" alt=""><figcaption></figcaption></figure>

<h3 align="center">Put Netsuite to Work with @Human Automations and @Human Agents</h3>

<p align="center">The Netsuite Connection documents all Triggers, Actions and Query Operations available for creating automations via the Netsuite API.</p>

{% embed url="<https://www.youtube.com/watch?v=CyuUuaBSZzA>" %}

#### What can you do with the Netsuite Connection?

* Connect to the Netsuite API in a few clicks
* Use the related Netsuite Operations (see below) in @Human Automations or @Human Agents

### Related Operations

#### Trigger Operations

**Lead Created**

Triggers on: leads/created

Triggered when a new lead record is created in NetSuite.

**Lead Updated**

Triggers on: leads/updated

Triggered when an existing lead record is updated in NetSuite.

**Calendar Event Created**

Triggers on: calendar/created

Triggered when a new calendar event is created in NetSuite.

**Calendar Event Updated**

Triggers on: calendar/updated

Triggered when an existing calendar event is updated in NetSuite.

**Activity Event Created**

Triggers on: events/created

Triggered when a new activity event is created in NetSuite.

**Activity Event Updated**

Triggers on: events/updated

Triggered when an existing activity event is updated in NetSuite.

#### Action Operations

[Action: Create a Customer](/human-connections/netsuite/netsuite/action-create-a-customer.md)

[Action: Create a Sales Order](/human-connections/netsuite/netsuite/action-create-a-sales-order.md)

[Action: Update a Sales Order](/human-connections/netsuite/netsuite/action-update-a-sales-order.md)

[Action: Create an Invoice](/human-connections/netsuite/netsuite/action-create-an-invoice.md)

[Action: Update an Invoice](/human-connections/netsuite/netsuite/action-update-an-invoice.md)

#### Query Operations

[Query: Find a Customer](/human-connections/netsuite/netsuite/query-find-a-customer.md)

[Query: Find a Sales Order](/human-connections/netsuite/netsuite/query-find-a-sales-order.md)

[Query: Find an Invoice](/human-connections/netsuite/netsuite/query-find-an-invoice.md)

### Related Automations

Example link

### Obtaining Access Credentials

To obtain a **System-to-System Personal Access Token (PAT)** for **NetSuite**, follow these steps:

#### **Prerequisites**

* **NetSuite Administrator Account** (or a role with permissions to create tokens).
* **NetSuite Subscription** with **Token-Based Authentication (TBA)** enabled.

#### **Steps to Generate the Token**

1. **Log in** to NetSuite with an **Administrator account**.
2. Navigate to: **Setup** → **Company** → **Enable Features** → **SuiteCloud** tab.
   * Ensure **"Token-Based Authentication"** is checked.
   * Save changes.
3. Go to: **Setup** → **Users/Roles** → **Access Tokens** → **New**.
4. Fill in the required fields:
   * **Application Name**: (e.g., "System Integration")
   * **User**: Select the user account for the token.
   * **Role**: Assign the appropriate role (e.g., "Full Access" or a custom role).
   * **Token Name**: (e.g., "System-to-System PAT")
5. Click **Save**.
6. **Copy the generated Token ID and Token Secret** (displayed only once).
   * Store them securely (they cannot be retrieved again).

#### **Required Values for Token Request**

* **Account ID** (NetSuite Account Number)
* **Token ID** (Generated in Step 6)
* **Token Secret** (Generated in Step 6)
* **Consumer Key** (From Integration Record, if applicable)
* **Consumer Secret** (From Integration Record, if applicable)

### Configuring Webhooks

1. **Enable SuiteCloud Features**:
   * Navigate to: **Setup** → **Company** → **Enable Features** → **SuiteCloud** tab.
   * Ensure **Server SuiteScript** and **Workflow** are enabled.
   * Click **Save**.
2. **Access Workflows**:
   * Navigate to: **Customization** → **Scripting** → **Workflows** → **New**.
3. **Initialize the Workflow**:
   * **Record Type**: Select the record you want to monitor (e.g., **Lead**).
   * **Initiation**: Select **Event Based**.
   * **Event Types**: Check **Create** and/or **Edit**.
   * Click **Save**.
4. **Add Outbound Action**:
   * In the workflow canvas, click on the **State** to open the **Workflow State** window.
   * Click **New Action** and select the script or custom action designed for **Outbound Webhooks**.
   * (If using a custom script, select **Execute Script**).
5. **Configure the Endpoint**:
   * Enter the **Webhook URL** provided by the platform (e.g., `https://[INSTANCE]/webhooks/netsuite/leads/created`).
   * Set the **Trigger On** field to **After Record Submit**.
6. **Deploy the Workflow**:
   * Change the **Release Status** to **Released**.
   * Click **Save**.

### Code (Apache v2.0): Service Connectivity and Metadata

```
{
  "handle": "netsuite-api-v2026",
  "status": "active",
  "meta": {
    "short": "NetSuite API",
    "description": "Connects to NetSuite's REST API for managing business operations.",
    "icon": "netsuite",
    "tags": ["ERP", "Accounting", "CRM"]
  },
  "service": {
    "baseURL": {
      "value": "https://{{accountId}}.suitetalk.api.netsuite.com/services/rest/record/v1"
    },
    "protocol": "https",
    "contentType": "application/json",
    "headers": {
      "Accept": {
        "value": "application/json"
      },
      "Content-Type": {
        "value": "application/json"
      }
    },
    "auth": {
      "method": "system_to_system",
      "params": {}
    }
  }
}

```

### Code (Apache v2.0): List of External Resources and Internal Mapping

```
// Some code
[{
  "handle": "leads",
  "meta": {
    "short": "Leads",
    "description": "Represents NetSuite lead records, which are typically stored as CRM entities with basic prospect information before qualification."
  },
  "endpoint": {
    "value": "/services/rest/record/v1/lead",
    "placeholders": []
  },
  "fields": [
    {
      "name": "id",
      "type": "Integer",
      "selector": ["id"],
      "meta": {
        "description": "Internal ID of the lead record"
      }
    },
    {
      "name": "entityId",
      "type": "String",
      "selector": ["entityId"],
      "meta": {
        "description": "Lead display or account ID"
      }
    },
    {
      "name": "companyName",
      "type": "String",
      "selector": ["companyName"],
      "meta": {
        "description": "Lead company name"
      }
    },
    {
      "name": "email",
      "type": "String",
      "selector": ["email"],
      "meta": {
        "description": "Primary email address"
      }
    },
    {
      "name": "phone",
      "type": "String",
      "selector": ["phone"],
      "meta": {
        "description": "Primary phone number"
      }
    },
    {
      "name": "status",
      "type": "String",
      "selector": ["status", "id"],
      "meta": {
        "description": "Lead status internal ID"
      }
    },
    {
      "name": "dateCreated",
      "type": "String",
      "selector": ["dateCreated"],
      "meta": {
        "description": "Creation datetime in ISO format"
      }
    },
    {
      "name": "lastModifiedDate",
      "type": "String",
      "selector": ["lastModifiedDate"],
      "meta": {
        "description": "Last modification datetime in ISO format"
      }
    }
  ],
  "operations": {
    "list": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/lead",
        "placeholders": []
      },
      "headers": {},
      "queryParams": {
        "limit": {
          "value": "{{limit}}",
          "placeholders": [
            {
              "name": "limit",
              "type": "Integer",
              "description": "Maximum number of leads to return",
              "required": false,
              "default": "100",
              "options": []
            }
          ]
        },
        "q": {
          "value": "{{searchQuery}}",
          "placeholders": [
            {
              "name": "searchQuery",
              "type": "String",
              "description": "Optional search query filter",
              "required": false,
              "default": "",
              "options": []
            }
          ]
        }
      },
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "read": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/lead/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the lead",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "create": {
      "method": "POST",
      "path": {
        "value": "/services/rest/record/v1/lead",
        "placeholders": []
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"entityId\":\"{{entityId}}\",\"companyName\":\"{{companyName}}\",\"email\":\"{{email}}\",\"phone\":\"{{phone}}\",\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "entityId",
            "type": "String",
            "description": "Lead display ID",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "companyName",
            "type": "String",
            "description": "Company name for the lead",
            "required": true,
            "default": "",
            "options": []
          },
          {
            "name": "email",
            "type": "String",
            "description": "Primary email address",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "phone",
            "type": "String",
            "description": "Primary phone",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Internal ID of lead status",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "update": {
      "method": "PATCH",
      "path": {
        "value": "/services/rest/record/v1/lead/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the lead",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"companyName\":\"{{companyName}}\",\"email\":\"{{email}}\",\"phone\":\"{{phone}}\",\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "companyName",
            "type": "String",
            "description": "Updated company name",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "email",
            "type": "String",
            "description": "Updated email",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "phone",
            "type": "String",
            "description": "Updated phone",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Updated status internal ID",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "delete": {
      "method": "DELETE",
      "path": {
        "value": "/services/rest/record/v1/lead/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the lead",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    }
  },
  "webhooks": [
    {
      "event": "created",
      "path": "/webhooks/netsuite/leads/created",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the created lead"
          }
        },
        {
          "name": "entityId",
          "type": "String",
          "selector": ["entityId"],
          "meta": {
            "description": "Lead display ID"
          }
        },
        {
          "name": "email",
          "type": "String",
          "selector": ["email"],
          "meta": {
            "description": "Lead primary email"
          }
        },
        {
          "name": "dateCreated",
          "type": "String",
          "selector": ["dateCreated"],
          "meta": {
            "description": "Creation date"
          }
        }
      ]
    },
    {
      "event": "updated",
      "path": "/webhooks/netsuite/leads/updated",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the updated lead"
          }
        },
        {
          "name": "entityId",
          "type": "String",
          "selector": ["entityId"],
          "meta": {
            "description": "Lead display ID"
          }
        },
        {
          "name": "email",
          "type": "String",
          "selector": ["email"],
          "meta": {
            "description": "Lead primary email"
          }
        },
        {
          "name": "lastModifiedDate",
          "type": "String",
          "selector": ["lastModifiedDate"],
          "meta": {
            "description": "Updated date"
          }
        }
      ]
    }
  ]
},
{
  "handle": "calendar",
  "meta": {
    "short": "Calendar Events",
    "description": "Represents NetSuite calendar event records for meetings, appointments, and related scheduled activities."
  },
  "endpoint": {
    "value": "/services/rest/record/v1/calendarevent",
    "placeholders": []
  },
  "fields": [
    {
      "name": "id",
      "type": "Integer",
      "selector": ["id"],
      "meta": {
        "description": "Internal ID of the calendar event"
      }
    },
    {
      "name": "title",
      "type": "String",
      "selector": ["title"],
      "meta": {
        "description": "Event title or subject"
      }
    },
    {
      "name": "message",
      "type": "String",
      "selector": ["message"],
      "meta": {
        "description": "Event description or notes"
      }
    },
    {
      "name": "location",
      "type": "String",
      "selector": ["location"],
      "meta": {
        "description": "Event location"
      }
    },
    {
      "name": "startDate",
      "type": "String",
      "selector": ["startDate"],
      "meta": {
        "description": "Event start date"
      }
    },
    {
      "name": "startTime",
      "type": "String",
      "selector": ["startTime"],
      "meta": {
        "description": "Event start time"
      }
    },
    {
      "name": "endTime",
      "type": "String",
      "selector": ["endTime"],
      "meta": {
        "description": "Event end time"
      }
    },
    {
      "name": "timeZone",
      "type": "String",
      "selector": ["timezone"],
      "meta": {
        "description": "Event time zone identifier"
      }
    },
    {
      "name": "status",
      "type": "String",
      "selector": ["status", "id"],
      "meta": {
        "description": "Event status internal ID"
      }
    },
    {
      "name": "allDayEvent",
      "type": "Boolean",
      "selector": ["allDayEvent"],
      "meta": {
        "description": "Indicates if the event lasts all day"
      }
    },
    {
      "name": "timedEvent",
      "type": "Boolean",
      "selector": ["timedEvent"],
      "meta": {
        "description": "Indicates if the event has specific times"
      }
    },
    {
      "name": "organizer",
      "type": "Integer",
      "selector": ["organizer", "id"],
      "meta": {
        "description": "Organizer employee internal ID"
      }
    },
    {
      "name": "createdDate",
      "type": "String",
      "selector": ["createdDate"],
      "meta": {
        "description": "Event creation datetime"
      }
    }
  ],
  "operations": {
    "list": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/calendarevent",
        "placeholders": []
      },
      "headers": {},
      "queryParams": {
        "limit": {
          "value": "{{limit}}",
          "placeholders": [
            {
              "name": "limit",
              "type": "Integer",
              "description": "Maximum number of events to return",
              "required": false,
              "default": "100",
              "options": []
            }
          ]
        },
        "q": {
          "value": "{{searchQuery}}",
          "placeholders": [
            {
              "name": "searchQuery",
              "type": "String",
              "description": "Optional search query",
              "required": false,
              "default": "",
              "options": []
            }
          ]
        }
      },
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "read": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "create": {
      "method": "POST",
      "path": {
        "value": "/services/rest/record/v1/calendarevent",
        "placeholders": []
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"title\":\"{{title}}\",\"message\":\"{{message}}\",\"location\":\"{{location}}\",\"startDate\":\"{{startDate}}\",\"startTime\":\"{{startTime}}\",\"endTime\":\"{{endTime}}\",\"timedEvent\":{{timedEvent}},\"allDayEvent\":{{allDayEvent}},\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "title",
            "type": "String",
            "description": "Event title",
            "required": true,
            "default": "",
            "options": []
          },
          {
            "name": "message",
            "type": "String",
            "description": "Event description",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "location",
            "type": "String",
            "description": "Event location",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startDate",
            "type": "String",
            "description": "Start date in YYYY-MM-DD",
            "required": true,
            "default": "",
            "options": []
          },
          {
            "name": "startTime",
            "type": "String",
            "description": "Start time in HH:mm",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "endTime",
            "type": "String",
            "description": "End time in HH:mm",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "timedEvent",
            "type": "Boolean",
            "description": "Whether event has specific time",
            "required": false,
            "default": "true",
            "options": []
          },
          {
            "name": "allDayEvent",
            "type": "Boolean",
            "description": "Whether event is all-day",
            "required": false,
            "default": "false",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Internal ID of status",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "update": {
      "method": "PATCH",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"title\":\"{{title}}\",\"message\":\"{{message}}\",\"location\":\"{{location}}\",\"startDate\":\"{{startDate}}\",\"startTime\":\"{{startTime}}\",\"endTime\":\"{{endTime}}\",\"timedEvent\":{{timedEvent}},\"allDayEvent\":{{allDayEvent}},\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "title",
            "type": "String",
            "description": "Updated title",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "message",
            "type": "String",
            "description": "Updated description",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "location",
            "type": "String",
            "description": "Updated location",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startDate",
            "type": "String",
            "description": "Updated start date",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startTime",
            "type": "String",
            "description": "Updated start time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "endTime",
            "type": "String",
            "description": "Updated end time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "timedEvent",
            "type": "Boolean",
            "description": "Updated timed flag",
            "required": false,
            "default": "true",
            "options": []
          },
          {
            "name": "allDayEvent",
            "type": "Boolean",
            "description": "Updated all-day flag",
            "required": false,
            "default": "false",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Updated status internal ID",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "delete": {
      "method": "DELETE",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    }
  },
  "webhooks": [
    {
      "event": "created",
      "path": "/webhooks/netsuite/calendar/created",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the created event"
          }
        },
        {
          "name": "title",
          "type": "String",
          "selector": ["title"],
          "meta": {
            "description": "Event title"
          }
        },
        {
          "name": "startDate",
          "type": "String",
          "selector": ["startDate"],
          "meta": {
            "description": "Start date"
          }
        },
        {
          "name": "startTime",
          "type": "String",
          "selector": ["startTime"],
          "meta": {
            "description": "Start time"
          }
        },
        {
          "name": "timezone",
          "type": "String",
          "selector": ["timezone"],
          "meta": {
            "description": "Event time zone"
          }
        }
      ]
    },
    {
      "event": "updated",
      "path": "/webhooks/netsuite/calendar/updated",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the updated event"
          }
        },
        {
          "name": "title",
          "type": "String",
          "selector": ["title"],
          "meta": {
            "description": "Event title"
          }
        },
        {
          "name": "startDate",
          "type": "String",
          "selector": ["startDate"],
          "meta": {
            "description": "Start date"
          }
        },
        {
          "name": "startTime",
          "type": "String",
          "selector": ["startTime"],
          "meta": {
            "description": "Start time"
          }
        },
        {
          "name": "lastModifiedDate",
          "type": "String",
          "selector": ["lastModifiedDate"],
          "meta": {
            "description": "Last modification datetime"
          }
        }
      ]
    }
  ]
},
{
  "handle": "events",
  "meta": {
    "short": "Activity Events",
    "description": "Represents generic NetSuite activity-style events, aligned to calendar event records for integration purposes."
  },
  "endpoint": {
    "value": "/services/rest/record/v1/calendarevent",
    "placeholders": []
  },
  "fields": [
    {
      "name": "id",
      "type": "Integer",
      "selector": ["id"],
      "meta": {
        "description": "Internal ID of the event"
      }
    },
    {
      "name": "title",
      "type": "String",
      "selector": ["title"],
      "meta": {
        "description": "Title or subject of the event"
      }
    },
    {
      "name": "message",
      "type": "String",
      "selector": ["message"],
      "meta": {
        "description": "Details or notes about the event"
      }
    },
    {
      "name": "status",
      "type": "String",
      "selector": ["status", "id"],
      "meta": {
        "description": "Event status internal ID"
      }
    },
    {
      "name": "startDate",
      "type": "String",
      "selector": ["startDate"],
      "meta": {
        "description": "Start date"
      }
    },
    {
      "name": "startTime",
      "type": "String",
      "selector": ["startTime"],
      "meta": {
        "description": "Start time"
      }
    },
    {
      "name": "endTime",
      "type": "String",
      "selector": ["endTime"],
      "meta": {
        "description": "End time"
      }
    },
    {
      "name": "organizer",
      "type": "Integer",
      "selector": ["organizer", "id"],
      "meta": {
        "description": "Organizer internal ID"
      }
    },
    {
      "name": "createdDate",
      "type": "String",
      "selector": ["createdDate"],
      "meta": {
        "description": "Creation datetime"
      }
    }
  ],
  "operations": {
    "list": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/calendarevent",
        "placeholders": []
      },
      "headers": {},
      "queryParams": {
        "limit": {
          "value": "{{limit}}",
          "placeholders": [
            {
              "name": "limit",
              "type": "Integer",
              "description": "Maximum number of events to return",
              "required": false,
              "default": "100",
              "options": []
            }
          ]
        }
      },
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "read": {
      "method": "GET",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    },
    "create": {
      "method": "POST",
      "path": {
        "value": "/services/rest/record/v1/calendarevent",
        "placeholders": []
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"title\":\"{{title}}\",\"message\":\"{{message}}\",\"startDate\":\"{{startDate}}\",\"startTime\":\"{{startTime}}\",\"endTime\":\"{{endTime}}\",\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "title",
            "type": "String",
            "description": "Event title",
            "required": true,
            "default": "",
            "options": []
          },
          {
            "name": "message",
            "type": "String",
            "description": "Event description",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startDate",
            "type": "String",
            "description": "Start date",
            "required": true,
            "default": "",
            "options": []
          },
          {
            "name": "startTime",
            "type": "String",
            "description": "Start time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "endTime",
            "type": "String",
            "description": "End time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Event status internal ID",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "update": {
      "method": "PATCH",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {
        "Content-Type": {
          "value": "application/json",
          "placeholders": []
        }
      },
      "queryParams": {},
      "bodyTemplate": {
        "value": "{\"title\":\"{{title}}\",\"message\":\"{{message}}\",\"startDate\":\"{{startDate}}\",\"startTime\":\"{{startTime}}\",\"endTime\":\"{{endTime}}\",\"status\":{\"id\":\"{{statusId}}\"}}",
        "placeholders": [
          {
            "name": "title",
            "type": "String",
            "description": "Updated title",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "message",
            "type": "String",
            "description": "Updated description",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startDate",
            "type": "String",
            "description": "Updated start date",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "startTime",
            "type": "String",
            "description": "Updated start time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "endTime",
            "type": "String",
            "description": "Updated end time",
            "required": false,
            "default": "",
            "options": []
          },
          {
            "name": "statusId",
            "type": "String",
            "description": "Updated status internal ID",
            "required": false,
            "default": "",
            "options": []
          }
        ]
      }
    },
    "delete": {
      "method": "DELETE",
      "path": {
        "value": "/services/rest/record/v1/calendarevent/{{id}}",
        "placeholders": [
          {
            "name": "id",
            "type": "Integer",
            "description": "Internal ID of the event",
            "required": true,
            "default": "",
            "options": []
          }
        ]
      },
      "headers": {},
      "queryParams": {},
      "bodyTemplate": {
        "value": "",
        "placeholders": []
      }
    }
  },
  "webhooks": [
    {
      "event": "created",
      "path": "/webhooks/netsuite/events/created",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the created event"
          }
        },
        {
          "name": "title",
          "type": "String",
          "selector": ["title"],
          "meta": {
            "description": "Event title"
          }
        },
        {
          "name": "startDate",
          "type": "String",
          "selector": ["startDate"],
          "meta": {
            "description": "Start date"
          }
        }
      ]
    },
    {
      "event": "updated",
      "path": "/webhooks/netsuite/events/updated",
      "payload": [
        {
          "name": "id",
          "type": "Integer",
          "selector": ["id"],
          "meta": {
            "description": "Internal ID of the updated event"
          }
        },
        {
          "name": "title",
          "type": "String",
          "selector": ["title"],
          "meta": {
            "description": "Event title"
          }
        },
        {
          "name": "startDate",
          "type": "String",
          "selector": ["startDate"],
          "meta": {
            "description": "Start date"
          }
        },
        {
          "name": "lastModifiedDate",
          "type": "String",
          "selector": ["lastModifiedDate"],
          "meta": {
            "description": "Last modification datetime"
          }
        }
      ]
    }
  ]
}]
```

<p align="center"><a class="button primary" data-icon="square-caret-right">Try @Human</a><a class="button primary" data-icon="check">Buy @Human Subscription</a><a class="button primary" data-icon="comments">Join @Human Community</a></p>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.planetcrust.com/human-connections/netsuite/netsuite.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.
