> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Insightly Integration for AI Agents & Workflows

> CRM and project management platform for managing contacts, tasks, and sales pipelines

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/insightly.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=7f7f52efc962a2c5c8f33c488db3c3f1" alt="Insightly logo" width="72" height="72" data-path="logos/insightly.svg" />

## Overview

Add **Insightly** to any ModuleX agent or workflow. CRM and project management platform for managing contacts, tasks, and sales pipelines via the Insightly REST API (`api.{pod}.insightly.com/v3.1`).

<Info>
  **Categories**: CRM · Sales · Productivity & Collaboration · **Auth**: Insightly API Key · **Actions**: 2
</Info>

## Authentication

### Insightly API Key

Authenticate using your Insightly API key and pod identifier

<Steps>
  <Step title="Step 1">
    Log in to your Insightly account
  </Step>

  <Step title="Step 2">
    Go to User Settings > API
  </Step>

  <Step title="Step 3">
    Copy your API key
  </Step>

  <Step title="Step 4">
    Find your pod identifier from your Insightly URL (e.g. na1, au1)
  </Step>
</Steps>

#### Required Credentials

| Field   | Description                                                                      | Required | Format                                 |
| ------- | -------------------------------------------------------------------------------- | -------- | -------------------------------------- |
| Pod     | Your Insightly pod/region identifier (e.g. na1, au1) found in your Insightly URL | Yes      | `na1`                                  |
| API Key | Your Insightly API key from User Settings > API                                  | Yes      | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |

## Available Actions

<AccordionGroup>
  <Accordion title="create_contact — Creates a new contact in Insightly">
    ### Parameters

    <ResponseField name="first_name" type="string" required>
      The first name of the contact
    </ResponseField>

    <ResponseField name="last_name" type="string" required>
      The last name of the contact
    </ResponseField>

    <ResponseField name="email" type="string" required>
      The email address of the contact
    </ResponseField>

    <ResponseField name="title" type="string">
      The title of the contact
    </ResponseField>

    <ResponseField name="phone" type="string">
      The phone number of the contact
    </ResponseField>

    <ResponseField name="address_street" type="string">
      The street address of the contact
    </ResponseField>

    <ResponseField name="address_city" type="string">
      The city of the contact
    </ResponseField>

    <ResponseField name="address_state" type="string">
      The state of the contact
    </ResponseField>

    <ResponseField name="address_postcode" type="string">
      The zip code/postcode of the contact
    </ResponseField>

    <ResponseField name="address_country" type="string">
      The country of the contact
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "contact_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contact Id"
        },
        "first_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "First Name"
        },
        "last_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Last Name"
        },
        "email_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Email Address"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "phone": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Phone"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_task — Creates a new task in Insightly">
    ### Parameters

    <ResponseField name="title" type="string" required>
      The title of the task
    </ResponseField>

    <ResponseField name="status" type="string" required>
      The status of the task. Allowed values: Not Started, In Progress, Completed, Deferred, Waiting
    </ResponseField>

    <ResponseField name="due_date" type="string" required>
      The due date of the task in YYYY-MM-DD format (e.g. 2023-08-20)
    </ResponseField>

    <ResponseField name="category_id" type="string">
      Identifier of a task category
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Task Id"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Status"
        },
        "due_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Due Date"
        },
        "category_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Rate limits**: Insightly enforces per-plan rate limits (typically 10 requests/second for Professional plans, higher for Enterprise).
* **Pricing**: API access requires a paid Insightly plan (Professional or higher).
* **Error model**: non-2xx responses are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Microsoft Dynamics 365 Sales" href="/integrations/tools/microsoft-dynamics-365-sales" />

  <Card title="Clay" href="/integrations/tools/clay" />

  <Card title="Dropcontact" href="/integrations/tools/dropcontact" />
</CardGroup>

## Links

* [Insightly](https://www.insightly.com)
