Oct 6, 2025

Create, Update & Get e‑Goi Subscribers in n8n

Create, Update & Get e‑Goi Subscribers in n8n This step-by-step tutorial shows how to build a simple n8n workflow that creates a subscriber in e‑Goi, updates their data, and then retrieves the final contact details. It uses the built-in e‑Goi node and demonstrates expressions to pass IDs between nodes so the workflow stays dynamic and […]

Create, Update & Get e‑Goi Subscribers in n8n

Create, Update & Get e‑Goi Subscribers in n8n

This step-by-step tutorial shows how to build a simple n8n workflow that creates a subscriber in e‑Goi, updates their data, and then retrieves the final contact details. It uses the built-in e‑Goi node and demonstrates expressions to pass IDs between nodes so the workflow stays dynamic and reusable.

Why this workflow is useful

Automating contact management saves time and prevents manual errors. With this workflow you can:

  • Create a new subscriber automatically (create contact)
  • Update the subscriber immediately after creation (update contact)
  • Verify or fetch the updated contact details (get contact)

Prerequisites

  • An n8n instance (cloud or self-hosted)
  • An e‑Goi account with API access and an API key
  • A list ID in e‑Goi where contacts will be created

Workflow overview

The workflow uses four nodes:

  1. Manual Trigger (to start the test)
  2. e‑Goi node — operation: create (creates the contact)
  3. e‑Goi node — operation: update (updates the created contact)
  4. e‑Goi node — operation: get (retrieves the updated contact)

The visual template you provided looks like a linear sequence where each e‑Goi node receives parameters and the contact ID from the previous node. That is the core pattern we’ll replicate and explain.

Step-by-step: Build the workflow

1. Add a Manual Trigger

Start with the Manual Trigger node for easy testing. You can later replace it with a webhook, schedule, or another event node.

2. Create the contact

Add an e‑Goi node and set the operation to create or create: contact (depending on the node version). Configure:

  • List: the numeric ID of the list to which the contact will be added
  • Email: the subscriber email (you can hardcode or use incoming data)
  • Additional fields: first name, last name, custom fields, etc.

Example configuration in the template:

"list": 1,
"email": "nathan@testmail.com",
"additionalFields": { "first_name": "Nathan" }

When this node runs successfully, e‑Goi will return a JSON response containing a contact_id (or similar id) under the response payload. In the template the node response path is $node[“e-goi”].json[“base”][“contact_id”]. Keep that location in mind — it’s how subsequent nodes find the contact ID.

3. Update the contact

Add a second e‑Goi node. Set the operation to update (update: contact). The important part is how you pass the contactId and list dynamically:

"list": "={{$node[\"e-goi\"].parameter[\"list\"]}}",
"contactId": "={{$node[\"e-goi\"].json[\"base\"][\"contact_id\"]}}",
"updateFields": { "first_name": "Nat" }

Explanation:

  • list: reuses the list parameter from the first node — this keeps nodes in sync even if you change the list later
  • contactId: reads the contact_id created by the first node so the update targets the correct record
  • updateFields: contains the new values (e.g., change first name to “Nat”)

4. Get the contact

Add a third e‑Goi node set to the get operation. Use the contact ID returned by the update node to fetch the latest record:

"list": "={{$node[\"e-goi\"].parameter[\"list\"]}}",
"contactId": "={{$node[\"e-goi1\"].json[\"base\"][\"contact_id\"]}}"

This node returns the full contact details so you can inspect or send them to another system (spreadsheet, CRM, chat, etc.).

Expressions and dynamic data

Key expressions used in the template:

  • {{$node[“e-goi”].parameter[“list”]}} — reuses the list parameter from the first node
  • {{$node[“e-goi”].json[“base”][“contact_id”]}} — gets the contact ID from the create response
  • {{$node[“e-goi1”].json[“base”][“contact_id”]}} — gets the contact ID after the update

Using these expressions ensures that the contact ID is passed reliably and your workflow will work for any created contact without manual ID lookups.

Testing the workflow

  1. Click the Manual Trigger and run the workflow.
  2. Open the output of the create node to confirm the contact_id returned by e‑Goi.
  3. View the update node to confirm the update succeeded.
  4. Inspect the get node output to see the final contact fields.

If the get node shows the updated name (e.g., “Nat”), everything worked.

Troubleshooting & common issues

1. Missing contact_id in response

Some e‑Goi API responses embed the id in a different path depending on node version or API changes. Inspect the raw JSON output from the create node to find where the ID is located, and adjust the expression accordingly. Example alternatives you may encounter:

  • $node[“e-goi”].json[“contact_id”]
  • $node[“e-goi”].json[“id”]

2. Authentication or permission errors

Ensure the e‑Goi credentials are correctly configured in n8n (API key and any required account ID). Also verify that the API key has permission to create and update contacts.

3. Rate limits and retries

If you run a lot of requests quickly, e‑Goi may apply rate limits. Implement error handling and exponential backoff in n8n (use the Wait node, IF node for retries, or the built-in error workflow) if necessary.

4. Field mapping mismatches

Make sure the field names you send (e.g., first_name) match the field keys in your e‑Goi list and account. For custom fields confirm the key name via the e‑Goi API or the UI.

Best practices

  • Use environment variables or credentials for sensitive values (API keys, list IDs).
  • Keep field names consistent and document custom field keys.
  • Use expressions instead of hard-coded values where possible so the workflow remains flexible.
  • Log responses or store results in a database for auditability.

Example output snippet

After a successful create request you might see a response like:

{
  "base": {
    "contact_id": "123456",
    "email": "nathan@testmail.com",
    "first_name": "Nathan"
  }
}

Use the path base.contact_id to pass the ID to the update node as shown earlier.

Next steps and extensions

Once you have this basic flow working, you can extend it:

  • Add an IF node to check whether the contact already exists and use create vs update accordingly.
  • Connect a CRM or Google Sheets node to store the contact details.
  • Trigger campaigns or tags based on the contact attributes.

Conclusion

This simple chain of e‑Goi nodes in n8n — create, update, get — is a powerful pattern for contact automation. By passing the list and contact ID dynamically with expressions you can keep workflows flexible and maintainable.

Ready to try it? Import the template into n8n, plug in your e‑Goi credentials, and run the manual trigger. If you want help adapting this workflow to your use case, reach out or leave a comment below.

Call to action: Try this workflow in your n8n instance today, subscribe for more automation tutorials, or download the example template for quick import.

Leave a Reply

Your email address will not be published. Required fields are marked *