Reference · Tools
E-goi
Manage contacts in E-goi marketing automation lists
The E-goi node connects BusyBot to your E-goi marketing lists so you can create, update, retrieve, and audit contacts without leaving your workflow. Use it to sync CRM signups directly into an E-goi list, attach tags based on behaviour, or pull a full subscriber export for reporting. Custom extra fields and tag assignment are both supported out of the box.
- Node type
- Action
- Parameters
- 15
- Outputs
- Output, Error
- Credentials
- E-goi API
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 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. |
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) |
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. |
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
basefields (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, andtagsis kept. On a single Get, the per-channel countersemail_stats,sms_stats,push_stats,webpush_statsandvoice_statsare kept as well. - Off — the raw API record is returned, with the contact under
baseand custom values in anextraarray 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:
{
"type": "egoi",
"parameters": {
"resource": "contact",
"operation": "create",
"list": "123456",
"email": "{{ $json.email }}"
}
}
Create a contact with profile details, a custom field and tags:
{
"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:
{
"type": "egoi",
"parameters": {
"resource": "contact",
"operation": "get",
"list": "123456",
"by": "id",
"contactId": "987654",
"simple": true
}
}
Get a contact by email address, raw:
{
"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:
{
"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:
{
"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:
{
"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.
Frequently asked questions
What credential do I need to connect to E-goi?
You need an E-goi API credential, configured in BusyBot as type egoiApi. Generate the API key from your E-goi account settings and paste it into the credential form. All four operations — create, get, get many, and update — share the same credential.
How do I attach tags to a contact?
Tag IDs are entered as a comma-separated list and are applied after the contact write completes. This means if a tag ID is invalid, the contact will already exist in E-goi before the error is raised. Double-check your tag IDs before running the workflow to avoid partially-applied contacts.
How do I set custom extra fields on a contact?
Extra fields go under extraFieldsUi.extraFieldValues as an array of objects, each with a field_id and a value key. Do not nest them further. Standard additional fields like first_name go in a flat additionalFields object — wrapping them in another key will cause them to be ignored.
If I only need the contact ID back after a create or update, is there a way to skip the extra API call?
Yes. The node has a Resolve Data option that fetches the full contact record after a write. Turn it off when you only need the contact ID, and the node will skip that second API call, making your workflow faster and reducing API usage.
What happens if multiple contacts in a list share the same email address and I use Get by email?
The node returns only the first matching contact. E-goi may allow duplicate email addresses within a list, but this node does not surface all matches — it picks the first result. If uniqueness matters, use Get by ID instead once you have the contact ID from a prior create or update step.
Build with the E-goi node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need E-goi API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.