<!-- BusyBot node reference — https://busybot.net/tools/mautic/ -->

> Node: Mautic (`mautic`) · Action · v1
> Category: Communication · Credentials: Mautic API (`mauticApi`)
> Updated: 2026-08-16

# Mautic

> Manage contacts, companies, campaigns, and emails in Mautic

## Overview

Mautic is an open-source marketing automation platform. This tool manages contacts, companies, campaigns, segments, and email sending via the Mautic REST API. Authenticates via HTTP Basic against the user/password configured on the Mautic instance (OAuth2 is not supported because Mautic is self-hosted with no centralized provider URL). Provides CRUD operations for contacts and companies, plus segment/campaign membership management and email dispatch.

**Category:** Communication  
**Tool Name:** `mautic`  
**Version:** 1

**Appearance:** Icon: `si-mautic` | Color: `#4E5E9E`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Mautic API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/mautic-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Campaign Contact | `campaignContact` |
| Company | `company` |
| Company Contact | `companyContact` |
| Contact | `contact` |
| Contact Segment | `contactSegment` |
| Segment Email | `segmentEmail` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new company |
| Delete | `delete` | Delete a company |
| Get | `get` | Get data of a company |
| Get Many | `getAll` | Get data of many companies |
| Update | `update` | Update a company |
| Create | `create` | Create a new contact |
| Delete | `delete` | Delete a contact |
| Edit Contact Points | `editContactPoint` | Edit contact's points |
| Edit Do Not Contact List | `editDoNotContactList` | Add/remove from DNC list |
| Get | `get` | Get data of a contact |
| Get Many | `getAll` | Get data of many contacts |
| Send Email | `sendEmail` | Send email to contact |
| Update | `update` | Update a contact |
| Add | `add` | Add contact to a segment |
| Remove | `remove` | Remove contact from a segment |
| Add | `add` | Add contact to a campaign |
| Remove | `remove` | Remove contact from a campaign |
| Add | `add` | Add contact to a company |
| Remove | `remove` | Remove a contact from a company |
| Send | `send` | Send an email to a segment |

The operation list is scoped to the resource you pick, which is why `create`, `delete`, `get`, `getAll`, `update`, `add` and `remove` each appear more than once.

### Parameters

#### Contact: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| JSON Parameters | `boolean` | No | `false` | Whether to pass contact data as a raw JSON body. |
| Email | `string` | No | — | Email address of the contact. Supports expressions like {{ $json.email }}. _(shown when JSON Parameters is `false`)_ |
| First Name | `string` | No | — | The contact's first name. Supports expressions. _(shown when JSON Parameters is `false`)_ |
| Last Name | `string` | No | — | The contact's last name. Supports expressions. _(shown when JSON Parameters is `false`)_ |
| Primary Company | `string` | No | — | Company name or ID. Find in Mautic: Companies > select company > note the name or ID. _(shown when JSON Parameters is `false`)_ |
| Position | `string` | No | — | The contact's job position. _(shown when JSON Parameters is `false`)_ |
| Title | `string` | No | — | The contact's title. _(shown when JSON Parameters is `false`)_ |
| Body (JSON) | `json` | No | — | Raw JSON body with contact field data. Supply it as a JSON string. _(shown when JSON Parameters is `true`)_ |
| Additional Fields | `collection` | No | `{}` | Further contact attributes to set on creation. |
| — Address | `fixedCollection` | No | `{}` | The contact's postal address. |
| — — Address Line 1 | `string` | No | — | First address line. |
| — — Address Line 2 | `string` | No | — | Second address line. |
| — — City | `string` | No | — | City. |
| — — State | `string` | No | — | State or region. |
| — — Country | `string` | No | — | Country. |
| — — Zip Code | `string` | No | — | Postal code. |
| — B2B or B2C | `options` | No | — | Whether the contact is a business or consumer record. |
| | | | | Options: `B2B`, `B2C` |
| — CRM ID | `string` | No | — | Identifier for this contact in an external CRM. |
| — Custom Fields | `fixedCollection` | No | `{}` | Values for the instance's custom contact fields. |
| — — Field ID | `string` | No | — | The alias of the custom field. Find in Mautic: Settings > Custom Fields. |
| — — Field Value | `string` | No | — | The value to store in that field. Supports expressions. |
| — Fax | `string` | No | — | Fax number. |
| — Has Purchased | `boolean` | No | `false` | Whether the contact has purchased. |
| — IP Address | `string` | No | — | IP address to associate with the contact. |
| — Last Active | `string` | No | — | Date/time in UTC (e.g. 2024-01-15T10:30:00). |
| — Mobile | `string` | No | — | Mobile number. |
| — Owner ID | `string` | No | — | ID of a Mautic user to assign this contact to. |
| — Phone | `string` | No | — | Phone number. |
| — Prospect or Customer | `options` | No | — | Where the contact sits in the funnel. |
| | | | | Options: `Prospect`, `Customer` |
| — Sandbox | `boolean` | No | `false` | Whether this is a sandbox record. |
| — Stage | `string` | No | — | Stage ID. Find in Mautic: Stages > note the ID. |
| — Tags | `string` | No | — | Comma-separated tag names. |
| — Social Media | `fixedCollection` | No | `{}` | The contact's social profiles. |
| — — Facebook | `string` | No | — | Facebook handle. |
| — — Foursquare | `string` | No | — | Foursquare handle. |
| — — Instagram | `string` | No | — | Instagram handle. |
| — — LinkedIn | `string` | No | — | LinkedIn handle. |
| — — Skype | `string` | No | — | Skype handle. |
| — — Twitter | `string` | No | — | Twitter handle. |
| — Website | `string` | No | — | Website URL. |
| Options | `collection` | No | `{}` | Query and response settings for the contact call. |
| — Search | `string` | No | — | String or search command to filter entities by. |
| — Order By | `string` | No | — | Column to sort by (will be converted to snake_case). |
| — Order By Dir | `options` | No | — | Sort direction. |
| | | | | Options: `asc` (ASC), `desc` (DESC) |
| — Published Only | `boolean` | No | `false` | Whether to return currently published entities. |
| — Minimal | `boolean` | No | `false` | Whether to return array of entities without additional lists. |
| — RAW Data | `boolean` | No | `true` | If true, return the raw response with all data. If false, return only field values. |

#### Contact: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact to update. Supports expressions like {{ $json.contactId }}. |
| JSON Parameters | `boolean` | No | `false` | Whether to pass update data as a raw JSON body. |
| Update Fields | `collection` | No | `{}` | The contact attributes to change. |
| — Body (JSON) | `json` | No | — | Raw JSON body with contact fields to update. Supply it as a JSON string. |
| — Address | `fixedCollection` | No | `{}` | The contact's postal address. |
| — — Address Line 1 | `string` | No | — | First address line. |
| — — Address Line 2 | `string` | No | — | Second address line. |
| — — City | `string` | No | — | City. |
| — — State | `string` | No | — | State or region. |
| — — Country | `string` | No | — | Country. |
| — — Zip Code | `string` | No | — | Postal code. |
| — B2B or B2C | `options` | No | — | Whether the contact is a business or consumer record. |
| | | | | Options: `B2B`, `B2C` |
| — CRM ID | `string` | No | — | Identifier for this contact in an external CRM. |
| — Custom Fields | `fixedCollection` | No | `{}` | Values for the instance's custom contact fields. |
| — — Field ID | `string` | No | — | The alias of the custom field. |
| — — Field Value | `string` | No | — | The value to store in that field. Supports expressions. |
| — Email | `string` | No | — | Email address of the contact. Supports expressions. |
| — Fax | `string` | No | — | Fax number. |
| — First Name | `string` | No | — | The contact's first name. |
| — Has Purchased | `boolean` | No | `false` | Whether the contact has purchased. |
| — IP Address | `string` | No | — | IP address to associate with the contact. |
| — Last Active | `string` | No | — | Date/time in UTC. |
| — Last Name | `string` | No | — | The contact's last name. |
| — Mobile | `string` | No | — | Mobile number. |
| — Owner ID | `string` | No | — | ID of a Mautic user to assign this contact to. |
| — Phone | `string` | No | — | Phone number. |
| — Position | `string` | No | — | The contact's job position. |
| — Primary Company | `string` | No | — | Company name or ID. |
| — Prospect or Customer | `options` | No | — | Where the contact sits in the funnel. |
| | | | | Options: `Prospect`, `Customer` |
| — Sandbox | `boolean` | No | `false` | Whether this is a sandbox record. |
| — Stage | `string` | No | — | Stage ID. |
| — Tags | `string` | No | — | Comma-separated tag names. |
| — Title | `string` | No | — | The contact's title. |
| — Social Media | `fixedCollection` | No | `{}` | The contact's social profiles. |
| — — Facebook | `string` | No | — | Facebook handle. |
| — — Foursquare | `string` | No | — | Foursquare handle. |
| — — Instagram | `string` | No | — | Instagram handle. |
| — — LinkedIn | `string` | No | — | LinkedIn handle. |
| — — Skype | `string` | No | — | Skype handle. |
| — — Twitter | `string` | No | — | Twitter handle. |
| — Website | `string` | No | — | Website URL. |
| Options | `collection` | No | `{}` | Query and response settings for the contact call. |
| — Search | `string` | No | — | String or search command to filter entities by. |
| — Order By | `string` | No | — | Column to sort by (will be converted to snake_case). |
| — Order By Dir | `options` | No | — | Sort direction. |
| | | | | Options: `asc`, `desc` |
| — Published Only | `boolean` | No | `false` | Whether to return currently published entities. |
| — Minimal | `boolean` | No | `false` | Whether to return array of entities without additional lists. |
| — RAW Data | `boolean` | No | `true` | If true, return the raw response with all data. If false, return only field values. |

#### Contact: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact to fetch. Supports expressions. |
| Options | `collection` | No | `{}` | Query and response settings for the contact call. |
| — Search | `string` | No | — | String or search command to filter entities by. |
| — Order By | `string` | No | — | Column to sort by (will be converted to snake_case). |
| — Order By Dir | `options` | No | — | Sort direction. |
| | | | | Options: `asc`, `desc` |
| — Published Only | `boolean` | No | `false` | Whether to return currently published entities. |
| — Minimal | `boolean` | No | `false` | Whether to return array of entities without additional lists. |
| — RAW Data | `boolean` | No | `true` | If true, return the raw response with all data. If false, return only field values. |

#### Contact: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `30` | Max number of results to return. Accepts 1–30. _(shown when Return All is `false`)_ |
| Options | `collection` | No | `{}` | Query and response settings for the contact call. |
| — Search | `string` | No | — | String or search command to filter entities by. |
| — Order By | `string` | No | — | Column to sort by (will be converted to snake_case). |
| — Order By Dir | `options` | No | — | Sort direction. |
| | | | | Options: `asc`, `desc` |
| — Published Only | `boolean` | No | `false` | Whether to return currently published entities. |
| — Minimal | `boolean` | No | `false` | Whether to return array of entities without additional lists. |
| — RAW Data | `boolean` | No | `true` | If true, return the raw response with all data. If false, return only field values. |

#### Contact: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact to delete. Supports expressions. |
| Options | `collection` | No | `{}` | Query and response settings for the contact call. |
| — Search | `string` | No | — | String or search command to filter entities by. |
| — Order By | `string` | No | — | Column to sort by (will be converted to snake_case). |
| — Order By Dir | `options` | No | — | Sort direction. |
| | | | | Options: `asc`, `desc` |
| — Published Only | `boolean` | No | `false` | Whether to return currently published entities. |
| — Minimal | `boolean` | No | `false` | Whether to return array of entities without additional lists. |
| — RAW Data | `boolean` | No | `true` | If true, return the raw response with all data. If false, return only field values. |

#### Contact: Edit Do Not Contact List

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact. Supports expressions. |
| Action | `options` | No | `add` | Whether to add the contact to the Do Not Contact list or remove it. |
| | | | | Options: `add`, `remove` |
| Channel | `options` | Yes | `email` | The channel the Do Not Contact entry applies to. |
| | | | | Options: `email`, `sms` |
| Additional Fields | `collection` | No | `{}` | Extra detail recorded with the entry. |
| — Reason To Do Not Contact | `options` | No | `3` | Why the contact was added to the list. |
| | | | | Options: `1` (Unsubscribed), `2` (Bounced), `3` (Manual) |
| — Comments | `string` | No | — | A text describing details of Do Not Contact entry. |

#### Contact: Edit Contact Points

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact. Supports expressions. |
| Action | `options` | No | `add` | Whether to add points to the contact or subtract them. |
| | | | | Options: `add`, `remove` |
| Points | `number` | No | `0` | How many points to apply. |

#### Contact: Send Email

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Campaign Email ID | `string` | Yes | — | ID of the campaign/template email to send. Find in Mautic: Channels > Emails > select template email > note the ID. |
| Contact ID | `string` | Yes | — | The ID of the contact to send to. Supports expressions. |

#### Company: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company Name | `string` | No | — | The name of the company to create. Supports expressions. |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response. |
| Additional Fields | `collection` | No | `{}` | Further company attributes to set on creation. |
| — Address | `fixedCollection` | No | `{}` | The company's postal address. |
| — — Address Line 1 | `string` | No | — | First address line. |
| — — Address Line 2 | `string` | No | — | Second address line. |
| — — City | `string` | No | — | City. |
| — — State | `string` | No | — | State or region. |
| — — Country | `string` | No | — | Country. |
| — — Zip Code | `string` | No | — | Postal code. |
| — Annual Revenue | `number` | No | `0` | Reported annual revenue. |
| — Company Email | `string` | No | — | The company's email address. |
| — Custom Fields | `fixedCollection` | No | `{}` | Values for the instance's custom company fields. |
| — — Field ID | `string` | No | — | The alias of the company custom field. |
| — — Field Value | `string` | No | — | The value to store in that field. |
| — Description | `string` | No | — | Free-text description of the company. |
| — Fax | `string` | No | — | Fax number. |
| — Industry | `string` | No | — | Industry name. Find available values in Mautic: Settings > Custom Fields > companyindustry. |
| — Is Published | `boolean` | No | `false` | Whether the company record is published. |
| — Number of Employees | `number` | No | `0` | Employee headcount. |
| — Overwrite With Blank | `boolean` | No | `false` | Whether empty values are set to fields. |
| — Phone | `string` | No | — | Phone number. |
| — Website | `string` | No | — | Website URL. |

#### Company: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID | `string` | No | — | The ID of the company to update. Supports expressions. |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response. |
| Update Fields | `collection` | No | `{}` | The company attributes to change. |
| — Address | `fixedCollection` | No | `{}` | The company's postal address. |
| — — Address Line 1 | `string` | No | — | First address line. |
| — — Address Line 2 | `string` | No | — | Second address line. |
| — — City | `string` | No | — | City. |
| — — State | `string` | No | — | State or region. |
| — — Country | `string` | No | — | Country. |
| — — Zip Code | `string` | No | — | Postal code. |
| — Annual Revenue | `number` | No | `0` | Reported annual revenue. |
| — Company Email | `string` | No | — | The company's email address. |
| — Company Name | `string` | No | — | The company's name. |
| — Custom Fields | `fixedCollection` | No | `{}` | Values for the instance's custom company fields. |
| — — Field ID | `string` | No | — | The alias of the company custom field. |
| — — Field Value | `string` | No | — | The value to store in that field. |
| — Description | `string` | No | — | Free-text description of the company. |
| — Fax | `string` | No | — | Fax number. |
| — Industry | `string` | No | — | Industry name. |
| — Is Published | `boolean` | No | `false` | Whether the company record is published. |
| — Number of Employees | `number` | No | `0` | Employee headcount. |
| — Overwrite With Blank | `boolean` | No | `false` | Whether empty values are set to fields. |
| — Phone | `string` | No | — | Phone number. |
| — Website | `string` | No | — | Website URL. |

#### Company: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID | `string` | No | — | The ID of the company to fetch. Supports expressions. |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response. |

#### Company: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `30` | Max number of results to return. Accepts 1–30. _(shown when Return All is `false`)_ |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response. |
| Additional Fields | `collection` | No | `{}` | Query settings for the listing. |
| — Order Direction | `options` | No | — | Sort direction. |
| | | | | Options: `asc` (ASC), `desc` (DESC) |
| — Order By | `string` | No | — | Column to sort by (company field alias). |
| — Search | `string` | No | — | String or search command to filter companies by. |

#### Company: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID | `string` | No | — | The ID of the company to delete. Supports expressions. |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response. |

#### Contact Segment: Add / Remove

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | Yes | — | The ID of the contact. Supports expressions. |
| Segment ID | `string` | Yes | — | The ID of the segment. Find in Mautic: Segments > select segment > note the ID. |

#### Campaign Contact: Add / Remove

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | Yes | — | The ID of the contact. Supports expressions. |
| Campaign ID | `string` | Yes | — | The ID of the campaign. Find in Mautic: Campaigns > select campaign > note the ID. |

#### Company Contact: Add / Remove

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Contact ID | `string` | No | — | The ID of the contact. Supports expressions. |
| Company ID | `string` | No | — | The ID of the company. Supports expressions. |

#### Segment Email: Send

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Segment Email ID | `string` | Yes | — | ID of the segment (list) email. Find in Mautic: Channels > Emails > filter by Segment type > note the ID. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Mautic API response is merged into the item JSON at the top level, so the fields the input item already carried pass through unchanged and binary data is forwarded.

| Operation | Output items |
|-----------|--------------|
| `contact` / `getAll` | **Fans out** — one output item per contact returned |
| `company` / `getAll` | **Fans out** — one output item per company returned |
| Every other operation | One item per input item, carrying the record or status Mautic returned |

The two `getAll` operations are the only ones that change the item count, so no Split Out node is needed after them. `Return All` pages through the whole result set; otherwise `Limit` caps it at up to 30 records per call.

**Simplify and RAW Data change the shape of the record you get back.** With **Simplify** on (the company operations' default), the response is flattened to the record's field values instead of the full API envelope. On the contact operations the equivalent switch is **Options → RAW Data**: leave it on for the full response, turn it off to receive field values only. Run the node once and inspect an output item to confirm which shape your settings produce before writing downstream expressions.

## Usage Examples

- Create a new contact in Mautic
- Update a company in Mautic
- Add a contact to a segment
- Send a campaign email to a contact
- List all contacts from Mautic

## Example Configuration

Create a contact from individual fields:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "jsonParameters": false,
    "email": "john.doe@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "company": "Acme Corp",
    "position": "Manager",
    "additionalFields": {
      "phone": "555-1234",
      "website": "https://johndoe.com",
      "tags": "lead,qualified",
      "socialMediaUi": {
        "socialMediaValues": [
          {
            "facebook": "johndoe",
            "twitter": "@johndoe",
            "linkedIn": "john-doe"
          }
        ]
      }
    }
  }
}
```

Create a contact from a raw JSON body instead — note that Body (JSON) is a JSON **string**:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "jsonParameters": true,
    "bodyJson": "{\"email\": \"jane.smith@example.com\", \"firstName\": \"Jane\", \"lastName\": \"Smith\", \"company\": \"Tech Solutions\", \"phone\": \"555-5678\"}"
  }
}
```

Update a contact, including a custom field:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "update",
    "contactId": "{{ $json.contactId }}",
    "updateFields": {
      "email": "newemail@example.com",
      "firstName": "UpdatedFirst",
      "phone": "555-9999",
      "customFieldsUi": {
        "customFieldValues": [
          {
            "fieldId": "custom_field_1",
            "fieldValue": "Updated Value"
          }
        ]
      }
    }
  }
}
```

Add a contact to the Do Not Contact list for email:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "editDoNotContactList",
    "contactId": "123",
    "action": "add",
    "channel": "email",
    "additionalFields": {
      "reason": "3",
      "comments": "User requested removal"
    }
  }
}
```

Award engagement points to a contact:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "editContactPoint",
    "contactId": "123",
    "action": "add",
    "points": 50
  }
}
```

List contacts matching a search, newest field order first:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "getAll",
    "returnAll": false,
    "limit": 30,
    "options": {
      "search": "john",
      "orderBy": "email",
      "orderByDir": "asc",
      "publishedOnly": true,
      "minimal": false,
      "rawData": true
    }
  }
}
```

Send a template email to one contact:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contact",
    "operation": "sendEmail",
    "contactId": "123",
    "campaignEmailId": "456"
  }
}
```

Create a company with an address and full response:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "company",
    "operation": "create",
    "name": "New Company Inc",
    "simple": false,
    "additionalFields": {
      "companyEmail": "info@newcompany.com",
      "phone": "555-0123",
      "website": "https://newcompany.com",
      "industry": "Technology",
      "annualRevenue": 1000000,
      "numberOfEmpoyees": 50,
      "addressUi": {
        "addressValues": [
          {
            "address1": "123 Main St",
            "city": "Anytown",
            "state": "CA",
            "country": "USA",
            "zipCode": "12345"
          }
        ]
      }
    }
  }
}
```

Update a company:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "company",
    "operation": "update",
    "companyId": "789",
    "simple": true,
    "updateFields": {
      "name": "Updated Company Name",
      "companyEmail": "updated@company.com",
      "phone": "555-7890",
      "annualRevenue": 1500000
    }
  }
}
```

Add a contact to a segment:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "contactSegment",
    "operation": "add",
    "contactId": "123",
    "segmentId": "456"
  }
}
```

Add a contact to a campaign:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "campaignContact",
    "operation": "add",
    "contactId": "123",
    "campaignId": "789"
  }
}
```

Associate a contact with a company:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "companyContact",
    "operation": "add",
    "contactId": "123",
    "companyId": "456"
  }
}
```

Send a segment email:

```json
{
  "type": "mautic",
  "parameters": {
    "resource": "segmentEmail",
    "operation": "send",
    "segmentEmailId": "789"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage contacts, companies, segments, campaigns, and email sending in Mautic marketing automation platform.

### Data Management Best Practices

- Use `simple: true` for basic operations to reduce response payload
- Set appropriate `limit` values for getAll operations
- Use `rawData: true` in options for complete data responses
- Leverage `customFieldsUi` for custom field management
- Use `additionalFields` collections for extended contact/company data

### Key Notes

- **Limit tops out at 30.** Both Get Many operations accept 1–30; ask for more by turning Return All on instead.
- **Body (JSON) must be a JSON string.** A raw object is rejected as invalid JSON — quote and escape it, or leave JSON Parameters off and use the individual fields.
- **Two emails, two IDs.** Contact: Send Email wants a *campaign/template* email ID; Segment Email: Send wants a *segment (list)* email ID. Mautic lists both under Channels > Emails, distinguished by type.
- **Options is not shown for every contact operation.** Send Email, Edit Do Not Contact List and Edit Contact Points do not accept it.