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

# Maximizer CRM

> Connect Maximizer CRM to your Agent

## Overview

The Maximizer integration lets your agents search, create, update, and delete records in Maximizer CRM through Maximizer's Octopus API. Agents can work with the address book (companies, individuals, and contacts), opportunities, cases, leads, notes, tasks, appointments, and custom fields (UDFs).

<Note>
  This integration currently supports **Maximizer CRM cloud** (`api.maximizer.com`). On-premise installations are not yet supported.
</Note>

## Features

* **Schema discovery**: Agents list objects and fields at runtime, including your custom UDFs and the allowed values for picklist fields
* **Flexible search**: Filters using Octopus operators (`$EQ`, `$LIKE`, `$IN`, `$RANGE`, …) combined with `$AND` / `$OR`, plus quick phrase search by name, email, or phone
* **Aggregates**: Group and count or sum records, for example open opportunities by status or forecast revenue by sales stage
* **Record management**: Create, update, and delete companies, contacts, opportunities, notes, tasks, and more
* **Large results**: Result sets too large to return inline are attached as a CSV for analysis in Python

## Prerequisites

* A Maximizer CRM cloud account
* A **Personal Access Token** (PAT) created by a Maximizer user whose permissions cover the data your agents need

## Setup Guide

<Steps>
  <Step title="Create a Personal Access Token">
    In Maximizer, click your profile photo to open the menu, then select **Personal Access Tokens**. Create a new token, give it a descriptive name (e.g., "Aster Agents"), and choose an expiration date.

    Copy the token and store it somewhere safe. You will paste it into Aster in the next step.

    <Note>
      The token acts with the creating user's permissions. For shared agents, create the token under a dedicated integration user so access doesn't change when a person leaves or their role changes.
    </Note>
  </Step>

  <Step title="Connect Maximizer in Aster">
    In Aster Agents, go to **Control Hub > Integrations**, find the **Maximizer CRM** card, and click **Connect**. Paste your Personal Access Token and save. Aster verifies the token with Maximizer before saving it.
  </Step>

  <Step title="Add Tools to Your Agent">
    Edit your agent and enable the Maximizer tools you need:

    * **Get Maximizer Schema**: discover objects, fields, UDFs, and picklist values
    * **Search Maximizer**: search and read records, including aggregates
    * **Manage Maximizer Records**: create, update, and delete records

    We recommend enabling Get Schema along with the others. Agents use it to learn exact field keys and valid option values before searching or writing.
  </Step>
</Steps>

## Available Tools

### Get Maximizer Schema

Three modes:

* **No arguments**: list every object the Octopus API supports
* **`objectType`**: list that object's fields with their key, display name, type, and flags (Queryable, Assignable, Mandatory, HasOption), including UDFs
* **`objectType` + `fieldOptions`**: return the allowed values for picklist fields, for example Opportunity `Status` or AbEntry `Type`

### Search Maximizer

Reads records with the Octopus `Read` method:

* **`searchQuery`**: an Octopus filter such as `{"$AND": [{"Type": {"$EQ": "Company"}}, {"CompanyName": {"$LIKE": "acme%"}}]}`
* **`phrase`**: quick search by name, email, or phone, the same as Maximizer's search bar
* **`fields`**: the fields to return, including sub-fields (`Status/DisplayValue`) and UDFs (`Udf/$NAME(Industry)`)
* **`groupBy`**: aggregates with `$COUNT()`, `$SUM(Field)`, `$AVG(Field)`, `$MIN(Field)`, `$MAX(Field)`
* **`orderBy`** and **`limit`**: up to 5,000 records per call

### Manage Maximizer Records

Creates, updates, or deletes one record per call. Each record is identified by its Maximizer `Key`. Contacts are created under a company or individual via `ParentKey`, opportunities attach to an address book entry via `AbEntryKey`, and notes attach to any entry, opportunity, lead, or case via `ParentKey`.

## Security Considerations

* **Use a dedicated integration user**: the PAT inherits that user's Maximizer permissions
* **Set an expiration date and rotate**: when the token expires, agents get an authentication error until you paste a new token in Control Hub
* **Limit write tools**: enable only Get Schema and Search on agents that should be read-only

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication Failed">
    * The token may have expired or been revoked. Create a new one in Maximizer and update it in **Control Hub > Integrations**
    * Make sure the full token was copied (PATs are long)
    * Only Maximizer cloud is supported today; tokens from on-premise installations will not work
  </Accordion>

  <Accordion title="Field not found or operator unsupported">
    * Field keys are case-sensitive. Use Get Maximizer Schema to get the exact `Key`
    * Not every field supports every operator; the error message names the unsupported combination
    * For UDFs, use `Udf/$NAME(Field Name)` or `Udf/$TYPEID(123)`
  </Accordion>

  <Accordion title="Write fails on a picklist field">
    * Picklist fields take option keys, not display labels. Call Get Maximizer Schema with `fieldOptions` to get the keys
    * Multi-select fields take an array of keys
  </Accordion>

  <Accordion title="Duplicate records">
    * Octopus has no upsert. Agents should search for an existing record (for example with `phrase` on the email address) before creating one
  </Accordion>
</AccordionGroup>
