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

> Node: Salesmate (`salesmate`) · Action · v1
> Category: Sales · Credentials: Salesmate API (`salesmateApi`)
> Updated: 2026-08-16

# Salesmate

> Manage companies, activities, and deals in Salesmate CRM

## Overview

Salesmate is a CRM platform for managing sales pipelines. This tool supports CRUD operations on companies, activities (calls, meetings, tasks), and deals, including searching with complex filter conditions.

**Category:** Sales  
**Tool Name:** `salesmate`  
**Version:** 1

**Appearance:** Icon: `lucide-CircleDollarSign` | Color: `#5D70AE`

## Node Type

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

## Input / Output

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

## Credentials

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

### Resources

| Resource | Value |
|----------|-------|
| Activity | `activity` |
| Company | `company` |
| Deal | `deal` |

### Operations

All three resources offer the same five operations. Pick the resource first, then the operation.

| Operation | Value |
|-----------|-------|
| Create | `create` |
| Delete | `delete` |
| Get | `get` |
| Get Many | `getAll` |
| Update | `update` |

### Parameters

Owner, contact and company identifiers are Salesmate record IDs. All text fields accept expressions such as `{{ $json.companyId }}`, so you can feed them from an upstream item.

#### Company: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Name | `string` | Yes | — | The name of the company. |
| Owner | `string` | Yes | — | Owner user ID. Find in Salesmate: Settings > Users. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional company fields to set on creation. |
| — Website | `string` | No | — | — |
| — Phone | `string` | No | — | — |
| — Other Phone | `string` | No | — | — |
| — Facebook Handle | `string` | No | — | — |
| — Google Plus Handle | `string` | No | — | — |
| — LinkedIn Handle | `string` | No | — | — |
| — Skype ID | `string` | No | — | — |
| — Twitter Handle | `string` | No | — | — |
| — Currency | `string` | No | — | — |
| — Billing Address Line 1 | `string` | No | — | — |
| — Billing Address Line 2 | `string` | No | — | — |
| — Billing City | `string` | No | — | — |
| — Billing Zip Code | `string` | No | — | — |
| — Billing State | `string` | No | — | — |
| — Description | `string` | No | — | — |
| — Tags | `string` | No | — | — |

#### Company: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID (`id`) | `string` | Yes | — | The ID of the company to update. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Company fields to change. Only the fields you add are sent. |
| — Name | `string` | No | — | — |
| — Owner | `string` | No | — | Owner user ID. |
| — Website | `string` | No | — | — |
| — Phone | `string` | No | — | — |
| — Other Phone | `string` | No | — | — |
| — Facebook Handle | `string` | No | — | — |
| — Google Plus Handle | `string` | No | — | — |
| — LinkedIn Handle | `string` | No | — | — |
| — Skype ID | `string` | No | — | — |
| — Twitter Handle | `string` | No | — | — |
| — Currency | `string` | No | — | — |
| — Billing Address Line 1 | `string` | No | — | — |
| — Billing Address Line 2 | `string` | No | — | — |
| — Billing City | `string` | No | — | — |
| — Billing Zip Code | `string` | No | — | — |
| — Billing State | `string` | No | — | — |
| — Description | `string` | No | — | — |
| — Tags | `string` | No | — | — |

#### Company: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID (`id`) | `string` | Yes | — | The ID of the company to retrieve. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |

#### 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 | `10` | Max number of results to return. Accepts 1–25. _(shown when Return All is `false`)_ |
| JSON Parameters | `boolean` | No | `false` | Whether to provide the search body as raw JSON. |
| Options (`options`) | `collection` | No | `{}` | Query options for the search request. |
| — Fields | `string` | No | — | Comma-separated list of fields to return. |
| — Sort By | `string` | No | — | The field to sort by. |
| — Sort Order | `options` | No | `desc` | — |
| | | | | Options: `asc`, `desc` |
| Filters (JSON) (`filtersJson`) | `json` | No | — | JSON search body with fields, query, and group filter rules. _(shown when JSON Parameters is `true`)_ |
| Filters (`filters`) | `fixedCollection` | No | `{}` | Structured filter conditions built in the editor. _(shown when JSON Parameters is `false`)_ |
| — Operator | `options` | No | `AND` | — |
| | | | | Options: `AND`, `OR` |
| — Conditions | `fixedCollection` | No | `{}` | The conditions this filter group evaluates. |
| — — Field | `options` | No | `name` | — |
| | | | | Options: `name`, `email`, `phone` |
| — — Condition | `options` | No | `EQUALS` | — |
| | | | | Options: `EQUALS`, `NOT_EQUALS`, `Contains`, `DOES_NOT_CONTAINS`, `EMPTY`, `NOT_EMPTY`, `STARTS_WITH`, `ENDS_WITH` |
| — — Value | `string` | No | — | — |

#### Company: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company ID (`id`) | `string` | Yes | — | ID of the company to delete. If more than one, add them separated by comma. |

#### Activity: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | The title of the activity. |
| Owner | `string` | Yes | — | Owner user ID. Find in Salesmate: Settings > Users. |
| Type | `string` | Yes | — | Activity type such as "call", "meeting", "task", etc. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional activity fields to set on creation. |
| — Description | `string` | No | — | Details related to the activity. |
| — Tags | `string` | No | — | Tags associated with the activity. |
| — Due Date | `string` | No | — | Expiry date of the activity (ISO 8601 format). |
| — Duration | `number` | No | `0` | Time duration of the activity in minutes. |
| — Is Calendar Invite | `boolean` | No | `false` | Whether to send a calendar invite. |
| — Is Completed | `boolean` | No | `false` | Whether the activity is completed. |

#### Activity: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`id`) | `string` | Yes | — | The ID of the activity to update. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Activity fields to change. Only the fields you add are sent. |
| — Title | `string` | No | — | — |
| — Type | `string` | No | — | — |
| — Owner | `string` | No | — | Owner user ID. |
| — Description | `string` | No | — | Details related to the activity. |
| — Tags | `string` | No | — | Tags associated with the activity. |
| — Due Date | `string` | No | — | Expiry date (ISO 8601 format). |
| — Duration | `number` | No | `0` | Time duration in minutes. |
| — Is Calendar Invite | `boolean` | No | `false` | Whether to send a calendar invite. |
| — Is Completed | `boolean` | No | `false` | Whether the activity is completed. |

#### Activity: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`id`) | `string` | Yes | — | The ID of the activity to retrieve. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |

#### Activity: 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 | `10` | Max number of results to return. Accepts 1–25. _(shown when Return All is `false`)_ |
| JSON Parameters | `boolean` | No | `false` | Whether to provide the search body as raw JSON. |
| Options (`options`) | `collection` | No | `{}` | Query options for the search request. |
| — Fields | `string` | No | — | Comma-separated list of fields to return. |
| — Sort By | `string` | No | — | The field to sort by. |
| — Sort Order | `options` | No | `desc` | — |
| | | | | Options: `asc`, `desc` |
| Filters (JSON) (`filtersJson`) | `json` | No | — | JSON search body with fields, query, and group filter rules. _(shown when JSON Parameters is `true`)_ |
| Filters (`filters`) | `fixedCollection` | No | `{}` | Structured filter conditions built in the editor. _(shown when JSON Parameters is `false`)_ |
| — Operator | `options` | No | `AND` | — |
| | | | | Options: `AND`, `OR` |
| — Conditions | `fixedCollection` | No | `{}` | The conditions this filter group evaluates. |
| — — Field | `options` | No | `title` | — |
| | | | | Options: `title`, `tags` |
| — — Condition | `options` | No | `EQUALS` | — |
| | | | | Options: `EQUALS`, `NOT_EQUALS`, `Contains`, `DOES_NOT_CONTAINS`, `EMPTY`, `NOT_EMPTY`, `STARTS_WITH`, `ENDS_WITH` |
| — — Value | `string` | No | — | — |

#### Activity: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Activity ID (`id`) | `string` | Yes | — | ID of the activity to delete. If more than one, add them separated by comma. |

#### Deal: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | The title of the deal. |
| Owner | `string` | Yes | — | Owner user ID. Find in Salesmate: Settings > Users. |
| Primary Contact | `string` | Yes | — | Primary contact ID for the deal. Find in Salesmate contacts list. |
| Pipeline | `options` | Yes | `Sales` | The pipeline for the deal. |
| | | | | Options: `Sales` |
| Status | `options` | Yes | `Open` | The status of the deal. |
| | | | | Options: `Open`, `Close`, `Lost` |
| Stage | `options` | Yes | — | The stage of the deal. |
| | | | | Options: `New (Untouched)`, `Contacted`, `Qualified`, `In Negotiation`, `Proposal Presented` |
| Currency | `string` | Yes | — | Currency code (e.g. "USD", "EUR"). |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional deal fields to set on creation. |
| — Description | `string` | No | — | Details related to the deal. |
| — Tags | `string` | No | — | Tags associated with the deal. |
| — Primary Company | `string` | No | — | Primary company ID for the deal. |
| — Source | `options` | No | `Ads` | — |
| | | | | Options: `Ads`, `Referrals`, `Website`, `Word of mouth` |
| — Estimated Close Date | `string` | No | — | Expected close date (ISO 8601 format). |
| — Deal Value | `number` | No | `0` | Monetary value of the deal. |
| — Priority | `options` | No | `Medium` | — |
| | | | | Options: `High`, `Medium`, `Low` |

#### Deal: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`id`) | `string` | Yes | — | The ID of the deal to update. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Deal fields to change. Only the fields you add are sent. |
| — Title | `string` | No | — | — |
| — Owner | `string` | No | — | Owner user ID. |
| — Primary Contact | `string` | No | — | Primary contact ID. |
| — Pipeline | `options` | No | — | — |
| | | | | Options: `Sales` |
| — Status | `options` | No | `Open` | — |
| | | | | Options: `Open`, `Close`, `Lost` |
| — Stage | `options` | No | — | — |
| | | | | Options: `Contacted`, `In Negotiation`, `New (Untouched)`, `Proposal Presented`, `Qualified` |
| — Currency | `string` | No | — | — |
| — Description | `string` | No | — | Details related to the deal. |
| — Tags | `string` | No | — | Tags associated with the deal. |
| — Primary Company | `string` | No | — | Primary company ID. |
| — Source | `options` | No | `Ads` | — |
| | | | | Options: `Ads`, `Referrals`, `Website`, `Word of mouth` |
| — Estimated Close Date | `string` | No | — | Expected close date (ISO 8601). |
| — Deal Value | `number` | No | `0` | Monetary value of the deal. |
| — Priority | `options` | No | `Medium` | — |
| | | | | Options: `High`, `Medium`, `Low` |

#### Deal: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`id`) | `string` | Yes | — | The ID of the deal to retrieve. |
| RAW Data | `boolean` | No | `false` | Whether the data should include the fields details. |

#### Deal: 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 | `10` | Max number of results to return. Accepts 1–25. _(shown when Return All is `false`)_ |
| JSON Parameters | `boolean` | No | `false` | Whether to provide the search body as raw JSON. |
| Options (`options`) | `collection` | No | `{}` | Query options for the search request. |
| — Fields | `string` | No | — | Comma-separated list of fields to return. |
| — Sort By | `string` | No | — | The field to sort by. |
| — Sort Order | `options` | No | `desc` | — |
| | | | | Options: `asc`, `desc` |
| Filters (JSON) (`filtersJson`) | `json` | No | — | JSON search body with fields, query, and group filter rules. _(shown when JSON Parameters is `true`)_ |
| Filters (`filters`) | `fixedCollection` | No | `{}` | Structured filter conditions built in the editor. _(shown when JSON Parameters is `false`)_ |
| — Operator | `options` | No | `AND` | — |
| | | | | Options: `AND`, `OR` |
| — Conditions | `fixedCollection` | No | `{}` | The conditions this filter group evaluates. |
| — — Field | `options` | No | `title` | — |
| | | | | Options: `title`, `tags`, `lastCommunicationMode` |
| — — Condition | `options` | No | `EQUALS` | — |
| | | | | Options: `EQUALS`, `NOT_EQUALS`, `Contains`, `DOES_NOT_CONTAINS`, `EMPTY`, `NOT_EMPTY`, `STARTS_WITH`, `ENDS_WITH` |
| — — Value | `string` | No | — | — |

#### Deal: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Deal ID (`id`) | `string` | Yes | — | ID of the deal to delete. If more than one, add them separated by comma. |

#### All Operations

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

## Output Data

For every operation except **Get Many**, the Salesmate response is **merged onto the input item's JSON** at the top level — the returned record's fields sit alongside the fields the item already carried, so downstream nodes address them directly (`{{ $json.id }}`). A response field with the same name as an existing item field overwrites it. Binary data on the input item is forwarded unchanged, and one input item produces one output item.

**Get Many replaces the item JSON instead of merging it.** The search response fans out: each returned record becomes its own output item whose JSON is that record alone — nothing from the input item's JSON carries over. Binary is still forwarded onto every item. A search that matches nothing produces no output items for that input.

| Operations | Output |
|------------|--------|
| Create, Update, Get on companies, activities and deals | One output item; the returned record's fields merged onto the input JSON. |
| Get Many on companies, activities and deals | **One output item per matching record**, each carrying only that record's fields. |
| Delete on companies, activities and deals | One output item; the delete response merged onto the input JSON, or `success: true` when the API returns no body. |

Leave **RAW Data** off to strip the verbose per-field `detail` block from Create, Update and Get responses; turn it on when you need Salesmate's field metadata as well as the values.

## Usage Examples

- Create a new company in Salesmate
- Search for all open deals
- Update an activity status in Salesmate
- Delete a company from Salesmate CRM

## Example Configuration

Create a company with billing details:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "company",
    "operation": "create",
    "name": "Acme Corporation",
    "owner": "1",
    "rawData": true,
    "additionalFields": {
      "website": "https://acme.com",
      "phone": "+1-555-0123",
      "description": "Leading provider of innovative solutions",
      "currency": "USD",
      "billingAddressLine1": "123 Business St",
      "billingCity": "New York",
      "billingState": "NY",
      "billingZipCode": "10001"
    }
  }
}
```

Update a company using an ID carried on the incoming item:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "company",
    "operation": "update",
    "id": "{{ $json.companyId }}",
    "updateFields": {
      "name": "Acme Corporation Ltd",
      "website": "https://acme-corp.com",
      "phone": "+1-555-0124",
      "description": "Updated description"
    }
  }
}
```

Search companies with the structured filter builder, sorted by name:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "company",
    "operation": "getAll",
    "returnAll": false,
    "limit": 25,
    "jsonParameters": false,
    "options": {
      "sortBy": "name",
      "sortOrder": "asc"
    },
    "filters": {
      "filtersUi": {
        "operator": "AND",
        "conditions": {
          "conditionsUi": [
            {
              "field": "name",
              "condition": "Contains",
              "value": "Corp"
            }
          ]
        }
      }
    }
  }
}
```

Log a follow-up call against a contact:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "activity",
    "operation": "create",
    "title": "Follow-up Call",
    "owner": "1",
    "type": "call",
    "additionalFields": {
      "description": "Schedule follow-up call with prospect",
      "dueDate": "{{ $datetime.iso }}",
      "duration": 30,
      "isCalendarInvite": true
    }
  }
}
```

Create a qualified deal in the Sales pipeline:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "deal",
    "operation": "create",
    "title": "Enterprise Software License",
    "owner": "1",
    "primaryContact": "{{ $json.contactId }}",
    "pipeline": "Sales",
    "status": "Open",
    "stage": "Qualified",
    "currency": "USD",
    "additionalFields": {
      "description": "Annual enterprise software license deal",
      "dealValue": 50000,
      "estimatedCloseDate": "2026-03-31",
      "priority": "High",
      "source": "Referrals"
    }
  }
}
```

Pull every open deal with a raw JSON search body. **Filters (JSON) is parsed as text**, so give it a JSON *string* rather than a nested object — an object is silently ignored and the search returns everything:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "deal",
    "operation": "getAll",
    "returnAll": true,
    "jsonParameters": true,
    "filtersJson": "{\"query\":{\"group\":{\"operator\":\"AND\",\"conditions\":[{\"field\":\"status\",\"condition\":\"EQUALS\",\"value\":\"Open\"}]}}}"
  }
}
```

Delete several records in one call:

```json
{
  "type": "salesmate",
  "parameters": {
    "resource": "company",
    "operation": "delete",
    "id": "123,456,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

Salesmate CRM: create, read, update, delete, and search companies, activities, and deals.

### Filtering and Pagination

- Use `returnAll: true` to get all records, or `returnAll: false` with `limit` for pagination. Limit accepts 1–25 per request.
- Use `jsonParameters: true` for complex JSON filters, or `jsonParameters: false` for the structured filter builder.
- **Filters (JSON)** is read as text and parsed. Supply a JSON string; anything that fails to parse is discarded without an error, and the search runs unfiltered.
- Add **Options** whenever you list records so you control sorting and which fields come back.

### Data Structure Considerations

- Collection parameters (**Additional Fields**, **Update Fields**, **Options**) are flat objects keyed by the sub-field's internal name.
- The **Filters** fixed collection nests under the group key `filtersUi`, and its conditions nest under `conditionsUi`.
- Set **RAW Data** to `true` when you want Salesmate's field-detail metadata in the response.
</content>
</invoke>