Skip to main content

Evergrowth Inbound Integration Guide

How to push inbound leads from your CRM into Evergrowth, create the account and contact if they do not already exist, and trigger an Evergrowth workflow that researches the contact and generates outreach.

This guide covers one endpoint, workflow/init, which does all of the above in a single call.


What this does

When a lead comes into your CRM, you send one HTTPS request to Evergrowth with the company and contact details. Evergrowth will:

  1. Find or create the account (the company) in your Evergrowth workspace.

  2. Find or create the contact (the person) on that account.

  3. If you include a workflow ID, start that workflow for the contact, which runs research and generates the outreach plays.

It is asynchronous. The request returns immediately once the workflow is accepted. The research and plays are produced by Evergrowth's agents a short time later (typically a couple of minutes).


Before you start

You will need three things from your Evergrowth contact:

  • Your API token. A bearer token starting with egt_. Keep it secret; treat it like a password.

  • Your company UUID. Looks like CO followed by a string of characters. Your token is bound to this one company, and the company_uuid you send must match it.

  • The workflow ID you want to run for each inbound contact. A number, for example 1058. Ask your Evergrowth contact which workflow is configured for your inbound process.

Confirm with your Evergrowth contact that your token has the ability to call workflow/init. Without it the call returns 403.


The endpoint

POST https://data-hub.evergrowth.com/api/workflow/init

Always use https. A plain http request will be redirected and the body dropped, which surfaces as a connection failure with no response.

Required headers

Authorization: Bearer egt_your_token_here
Content-Type: application/json
Accept: application/json

Note the exact header name Content-Type (with the hyphen). A malformed header name means the body is not parsed as JSON.


The request body

A minimum valid body needs the company, a contact identity, and the workflow to run.

You can identify the contact in one of two ways:

Option A, by LinkedIn URL (Evergrowth enriches the rest automatically):

json

{
"company_uuid": "CO_your_company_uuid",
"workflow_id": 1058,
"contact_linkedin_url": "https://www.linkedin.com/in/jane-doe"
}

Option B, by name (use when you do not have a LinkedIn URL):

json

{
"company_uuid": "CO_your_company_uuid",
"workflow_id": 1058,
"account_name": "Acme Inc",
"domain": "https://acme.com",
"contact_first_name": "Jane",
"contact_last_name": "Doe"
}

If you omit workflow_id, the account and contact are still created or updated, but no workflow runs.

Field reference

Field

Required

Notes

company_uuid

Yes

Must match the company your token is bound to.

workflow_id

To run a workflow

Integer. Omit to only upsert the account and contact without running anything.

contact_linkedin_url

One contact identity required

Either this, or the three name fields below.

contact_first_name

If no LinkedIn URL

Required when contact_linkedin_url is not present.

contact_last_name

If no LinkedIn URL

Required when contact_linkedin_url is not present.

account_name

Recommended

The company name.

domain

Recommended

Send as a full URL, for example https://acme.com.

email

Optional

Contact email address.

phone

Optional

Contact phone number.

Optional: passing your CRM record IDs

So that records can be matched back to your CRM later, you can include your CRM type and record IDs:

json

{
"company_uuid": "CO_your_company_uuid",
"workflow_id": 1058,
"contact_first_name": "Jane",
"contact_last_name": "Doe",
"account_name": "Acme Inc",
"domain": "https://acme.com",
"account_crm_type": "your_crm_name",
"account_crm_id": "the_company_record_id",
"contact_crm_type": "your_crm_name",
"contact_crm_id": "the_person_record_id"
}

You can also attach custom fields to the account or contact with account_additional_data and contact_additional_data, each an object of string keys to string values.


Full example

bash

curl -sS -X POST https://data-hub.evergrowth.com/api/workflow/init \
-H "Authorization: Bearer egt_your_token_here" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"company_uuid": "CO_your_company_uuid",
"workflow_id": 1058,
"account_name": "Acme Inc",
"domain": "https://acme.com",
"contact_first_name": "Jane",
"contact_last_name": "Doe",
"email": "[email protected]"
}'


What you get back

On success, a 200 response containing the account, the contact, and a confirmation that the workflow was started:

json

{
"account": { "id": "ACO..." },
"contact": { "id": "..." },
"workflow_initiated": true
}

The account.id (an ACO... value) is Evergrowth's account identifier. Store it if you want to reference the account in later calls.

If you sent no workflow_id, workflow_initiated comes back empty and nothing runs.

The generated research and plays appear on the contact in Evergrowth a short time after the response, since processing is asynchronous.


Response codes

Code

Meaning

What to do

200

Success

Account and contact upserted; workflow started if a workflow ID was sent.

401

Bad or missing token

Check the Authorization header and that the token starts with egt_.

403

Token missing the required ability

Ask your Evergrowth contact to grant the workflow/init ability.

422

Validation error

Read the response body. Common causes: missing contact identity, domain not sent as a URL, or company_uuid not matching the token.

429

Rate limited

Slow down and retry.

502

Workflow failed to start

Account and contact may be created; the workflow did not run. Retry or contact Evergrowth.


Common pitfalls

These are the things most likely to trip up a first integration:

  • Use https, never http. An http request loses its body in redirect and looks like a dead connection rather than an error.

  • Send a contact. workflow/init requires either a LinkedIn URL or first and last name. Empty strings do not count as present; a blank value is treated as missing.

  • Format domain as a URL. Send https://acme.com, not acme.com, or the request is rejected.

  • company_uuid must match your token. The token is bound to one company; a mismatch is rejected.

  • Get the Content-Type header exactly right. It must read Content-Type: application/json.


Support

For a token, your company UUID, the right workflow ID, or to confirm your token's abilities, contact your Evergrowth representative.

Did this answer your question?