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

> Node: E-goi (`egoi`) · Action · v1
> Category: Communication · Credentials: E-goi API (`egoiApi`)
> Updated: 2026-08-16

# E-goi

> Manage contacts in E-goi marketing lists.

## Overview

E-goi is a marketing automation platform providing email, SMS, push, and voice campaigns. This tool manages contacts (subscribers) in E-goi lists, supporting create, get, get many, and update operations. It handles custom extra fields, tag attachment, and contact data simplification.

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

**Appearance:** Icon: `lucide-Mail` | Color: `#00AFEB`

## Node Type

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

## Input / Output

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

## Credentials

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

### Resources

| Resource | Value |
|----------|-------|
| Contact | `contact` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a contact |
| Get | `get` | Get a contact |
| Get Many | `getAll` | Get many contacts |
| Update | `update` | Update a contact |

### Parameters

#### Contact: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| List ID | `string` | Yes | — | ID of the E-goi mailing list. Find in E-goi dashboard under Lists. Supports expressions. |
| Email | `string` | No | — | Email address for the subscriber. Supports expressions. |
| Resolve Data | `boolean` | No | `true` | By default the response just includes the contact ID. If enabled, the full contact record will be fetched after create/update. |
| Additional Fields | `collection` | No | `{}` | Optional contact details stored alongside the email address. |
| — Birth Date | `dateTime` | No | — | Birth date of the subscriber (formatted YYYY-MM-DD). |
| — Cellphone | `string` | No | — | Cellphone number of the subscriber. |
| — Extra Fields | `fixedCollection` | No | `{}` | Values for the list's own custom fields. Add one entry per field. |
| — — Field ID | `string` | No | — | Extra field ID. Find via E-goi dashboard or API: GET /lists/{listId}/fields (filter type === "extra"). |
| — — Value | `string` | No | — | The value to store in that extra field. |
| — First Name | `string` | No | — | First name of the subscriber. |
| — Last Name | `string` | No | — | Last name of the subscriber. |
| — Status | `options` | No | `active` | Subscriber status. |
| | | | | Options: `unconfirmed`, `active`, `inactive`, `removed` |
| — Tag IDs | `string` | No | — | Comma-separated list of tag IDs to attach to the contact after creation. Find tag IDs via E-goi dashboard or API: GET /tags. |

#### Contact: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| List ID | `string` | Yes | — | ID of the E-goi mailing list. Find in E-goi dashboard under Lists. Supports expressions. |
| By | `options` | No | `id` | How to look up the contact. |
| | | | | Options: `id` (Contact ID), `email` |
| Contact ID | `string` | No | — | Contact ID of the subscriber. Supports expressions. _(shown when By is `id`)_ |
| Email | `string` | No | — | Email address for the subscriber. Supports expressions. _(shown when By is `email`)_ |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response instead of the raw data. Flattens base fields and resolves extra field IDs to names. |

#### Contact: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| List ID | `string` | Yes | — | ID of the E-goi mailing list. Find in E-goi dashboard under Lists. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `100` | Max number of results to return. _(shown when Return All is `false`)_ |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response instead of the raw data. Flattens base fields and resolves extra field IDs to names. |

#### Contact: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| List ID | `string` | Yes | — | ID of the E-goi mailing list. Find in E-goi dashboard under Lists. Supports expressions. |
| Contact ID | `string` | No | — | Contact ID of the subscriber. Supports expressions. |
| Resolve Data | `boolean` | No | `true` | By default the response just includes the contact ID. If enabled, the full contact record will be fetched after create/update. |
| Update Fields | `collection` | No | `{}` | The contact details to change. Fields you leave out are not touched. |
| — Birth Date | `dateTime` | No | — | Birth date of the subscriber (formatted YYYY-MM-DD). |
| — Cellphone | `string` | No | — | Cellphone number of the subscriber. |
| — Email | `string` | No | — | Updated email address for the subscriber. |
| — Extra Fields | `fixedCollection` | No | `{}` | Values for the list's own custom fields. Add one entry per field. |
| — — Field ID | `string` | No | — | Extra field ID. Find via E-goi dashboard or API: GET /lists/{listId}/fields (filter type === "extra"). |
| — — Value | `string` | No | — | The value to store in that extra field. |
| — First Name | `string` | No | — | First name of the subscriber. |
| — Last Name | `string` | No | — | Last name of the subscriber. |
| — Status | `options` | No | `active` | Subscriber status. |
| | | | | Options: `unconfirmed`, `active`, `inactive`, `removed` |
| — Tag IDs | `string` | No | — | Comma-separated list of tag IDs to attach to the contact after update. Find tag IDs via E-goi dashboard or API: GET /tags. |

#### All Operations

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

## Output Data

The contact record **replaces** the item JSON rather than merging into it, so upstream fields are not carried forward — capture anything you still need before this node. Binary data on the input item is forwarded.

| Operation | Output |
|-----------|--------|
| `create` | One item. With Resolve Data off, the create response — chiefly `contact_id`. With it on, the full contact record fetched straight after |
| `get` | One item carrying the contact. Looking up by email returns the first match |
| `getAll` | **One item per contact** in the list, trimmed to Limit unless Return All is on |
| `update` | One item. With Resolve Data off, the update response. With it on, the full contact record fetched straight after |

**Simplify** (Get and Get Many) changes the shape of the contact:

- **On** — the contact's `base` fields (`contact_id`, `email`, `first_name`, `last_name`, `status`, …) are flattened to the top level, each extra field appears under its own field *name* instead of a numeric ID, and `tags` is kept. On a single Get, the per-channel counters `email_stats`, `sms_stats`, `push_stats`, `webpush_stats` and `voice_stats` are kept as well.
- **Off** — the raw API record is returned, with the contact under `base` and custom values in an `extra` array of `{ field_id, value }` entries.

Reference a contact downstream by expression, e.g. `{{ $json.contact_id }}`.

## Usage Examples

- Create a new subscriber in E-goi list
- Get a contact from E-goi by email
- List all contacts in an E-goi mailing list
- Update a subscriber status in E-goi

## Example Configuration

Create a contact with just an email address:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "list": "123456",
    "email": "{{ $json.email }}"
  }
}
```

Create a contact with profile details, a custom field and tags:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "list": "123456",
    "email": "john.doe@example.com",
    "resolveData": true,
    "additionalFields": {
      "first_name": "John",
      "last_name": "Doe",
      "cellphone": "+1234567890",
      "birth_date": "1990-01-15T00:00:00Z",
      "status": "active",
      "extraFieldsUi": {
        "extraFieldValues": [
          {
            "field_id": "custom_field_1",
            "value": "Custom Value"
          }
        ]
      },
      "tagIds": "tag1,tag2"
    }
  }
}
```

Get a contact by ID, simplified:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "get",
    "list": "123456",
    "by": "id",
    "contactId": "987654",
    "simple": true
  }
}
```

Get a contact by email address, raw:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "get",
    "list": "123456",
    "by": "email",
    "email": "john.doe@example.com",
    "simple": false
  }
}
```

Update a contact and re-fetch the stored record:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "update",
    "list": "123456",
    "contactId": "{{ $json.contact_id }}",
    "resolveData": true,
    "updateFields": {
      "first_name": "Jane",
      "last_name": "Smith",
      "email": "jane.smith@example.com",
      "cellphone": "+1987654321",
      "status": "active",
      "extraFieldsUi": {
        "extraFieldValues": [
          {
            "field_id": "department",
            "value": "Marketing"
          }
        ]
      }
    }
  }
}
```

List the first 50 contacts in a list:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "getAll",
    "list": "123456",
    "returnAll": false,
    "limit": 50,
    "simple": true
  }
}
```

Walk every page of a list and return the raw records:

```json
{
  "type": "egoi",
  "parameters": {
    "resource": "contact",
    "operation": "getAll",
    "list": "123456",
    "returnAll": true,
    "simple": false
  }
}
```

### 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

Create, retrieve, update, and list contacts in E-goi marketing automation lists with custom field and tag support.

### Notes

- **Collections take a flat object.** Write `"additionalFields": { "first_name": "John" }` — do not wrap the fields in an extra key.
- **Extra Fields uses its group key.** The entries go under `extraFieldsUi.extraFieldValues`, one `{ "field_id": …, "value": … }` object per field.
- **Tags are attached after the write.** Tag IDs are comma-separated and applied to the contact once it has been created or updated, so a bad tag ID fails the item after the contact already exists.
- **Birth dates are normalised.** Anything the platform can parse as a date is sent to E-goi as `YYYY-MM-DD`.
- **Resolve Data costs an extra call.** Turn it off when you only need the contact ID back from a create or update.
- **Get by email returns one contact.** If several records in the list share the address, the first match is used.

### Common patterns

- **Contact lifecycle:** create with the email plus additional fields, retrieve with Get by ID or email, update with the contact ID and update fields, and audit the whole list with Get Many.