Skip to Content
Bring leads into Sustentus

Bring leads into Sustentus

There are three ways to get leads into Sustentus besides typing them in: a webhook your CRM or automation tool posts to, a lead form on your website, and a CSV import. Whichever way a lead arrives, it gets a request number and follows the same journey as a lead created by hand.

From your CRM or automation tool (webhook)

Your other system sends each lead to Sustentus as a JSON request, signed with a key your admin issues.

Issue a key

  1. An admin opens Settings → Integrations and generates a webhook key.
  2. Copy the key straight away: it is shown once and cannot be recovered. If it is lost, generate a new one.
  3. Put the key in the sending system.

You can hold two active keys at once, so you can switch to a new key before revoking the old one. A revoked key stops working on its next request.

Admins, CSMs, SDMs and vendors can see the endpoint address, the active keys and the recent deliveries on the Webhook tab of the lead import page (/service-leads/import/webhook). Vendors reach that page from Leads → Import lead in the sidebar.

Send a lead

POST /api/webhooks/leads Authorization: Bearer slw_<keyId>_<secret> Content-Type: application/json

The full address, including your platform’s domain, is on the Webhook tab.

{ "externalId": "crm-deal-8823", "customer": { "email": "ada@northwind.example", "firstName": "Ada", "lastName": "Byron", "companyName": "Northwind Ltd" }, "product": "Cloud Migration", "service": "Readiness Assessment", "description": "Two-region Azure move, 40 workloads." }
FieldRequiredNotes
customer.emailyesAttaches the lead to an existing customer, or sets up a new one.
productyesThe product’s id, or its name as it appears in your catalogue.
serviceyesThe service’s id, or its name. It must belong to the product.
externalIdnoYour system’s own id for the lead. Send it: a repeat with the same id creates nothing new.
customer.*nofirstName, lastName, companyName, region, country — stored on a new customer.
skillsnoUp to 20, by id or name.
descriptionnoUp to 5,000 characters.
bidDeadlinenoA date, such as 2026-10-01.
sourcenoWhere the lead came from: one of sales, product-trial, customer-success, marketing, partner, website, crm, api, support, professional-services, ai, product-onboarding, in lower case. Anything else is recorded as sales.

Names are matched without regard to case. If two active records share a name, the request is refused and the reply asks you to send the id instead. The body can be up to 32 KB.

Read the reply

StatusMeaning
201The lead was created. The reply carries its request number.
200A lead with this externalId was already received. Nothing new was created.
400The body is not valid JSON.
401The key is missing, wrong or revoked.
413The body is over 32 KB.
422One or more fields are invalid. Every invalid field is named in the reply. A customer.email error on a well-formed address means a record your organisation already holds, archived or otherwise, conflicts with it: an admin restores or removes that record, or you send another address.
429The organisation’s invitation limit is reached. Send the same request again after the time in the Retry-After header.
500A fault on our side. Send the same request again. It is safe only when the request carries an externalId: without one, a retry may create a second lead.

When the customer’s email address already belongs to someone with a Sustentus account, that person is sent an invitation to your organisation rather than added to it. Each organisation can send 20 such invitations in any 24 hours through the webhook; the 429 above is that limit.

From your website (lead form)

A form you place on your own website, served by Sustentus. Each enquiry it collects becomes a lead.

  1. An admin opens Settings → Integrations, switches the lead form on, and picks the products and services it offers.
  2. Copy one of the two snippets shown there into your website. They carry your platform’s address and your own form key; the examples below show their shape.

The script version sizes itself to the form:

<script src="https://platform.sustentus.com/embed/lead-form.js" data-sustentus-form="<formKey>" async ></script>

If your website builder removes <script> tags, use the frame instead. It works everywhere but keeps a fixed height:

<iframe src="https://platform.sustentus.com/embed/lead-form/<formKey>" title="Request a quote" loading="lazy" style="width:100%;height:780px;border:0" ></iframe>

Rotating the form key in settings stops every copy of the old snippet at once, so update your website when you do it.

Admins, CSMs, SDMs and vendors can see the form’s set-up on the Public form tab of the lead import page (/service-leads/import/public-form).

From a spreadsheet (CSV import)

Admins, CSMs, SDMs and vendors can import leads from a CSV or Excel file on the Import CSV tab of the lead import page (/service-leads/import/csv). Vendors reach it from Leads → Import lead in the sidebar.

  1. Download the CSV template from the page, or the template with a reference sheet that explains each column.
  2. Fill in one row per lead. Keep every column of the template, in the template’s order: a file with columns added, removed or reordered is refused. These columns must have a value: company name, firstname, lastname, email, product, category, description and region. For product, category (the service) and region, use the names your Sustentus catalogue already has. A row naming an inactive product or skill is not imported, and its errors say which one is inactive.
  3. Upload the file, review and correct the rows, then import them.

Contact us

If a lead does not arrive the way you expect, contact the Sustentus team .

Last updated on