CRM Outbound

Setting Up Automatic Outbound Calls from Your CRM

Overview

This guide walks you through connecting any CRM to Hoomanlabs (HL) so that outbound calls are automatically placed to your leads. The setup involves three main steps:

  1. Create a Realtime Campaign in HL and copy its Campaign ID.

  2. Generate an API Token from your HL workspace settings.

  3. Configure your CRM to call the HL Create Task API when a lead event occurs.

Once set up, any time a qualifying lead event happens in your CRM — such as a new lead being created or a lead status changing — HL will automatically place a call using your configured agent and calling number.


Create a Realtime Campaign in Hoomanlabs

A Realtime Campaign in Hoomanlabs defines the agent who will handle calls and sets a cap on concurrent

What you configure at the Campaign level

  • Name: a label to identify this campaign in your dashboard.

  • Agent: the HL agent that will handle calls under this campaign.

  • Slots: the maximum number of concurrent calls allowed for this campaign. Leave blank to use all available slots in your workspace, or set a number to cap concurrency for this campaign specifically.

    Retries, timing, priorities, intervals, and retry outcomes are all configured at the task level. Meaning each individual call task can have its own settings. You do not need to configure these in the campaign.

    How to create a Campaign?

    1. Log in to your Hoomanlabs dashboard.

    2. In the left navigation, go to Campaigns > Realtime.

    3. Click New Campaign.

    4. Enter a Name, select your Agent, and optionally set a Slots value.

    5. Save the campaign.

    6. Copy the Campaign ID. You will need this in Step 3.


Generate an API Token

The API token authenticates your requests to Hoomanlabs, confirming that the API call is coming from your authorised account.

How to generate an API Token

  1. In the HL dashboard, navigate to Settings > Workspace.

  2. Find the API Token section and click Generate Token (or copy an existing token if one has already been created).

  3. Copy the token and store it securely — treat it like a password and do not share it publicly.

If you regenerate a token, your previous token will stop working. Make sure to update any existing integrations if you do this.

Trigger the HL API from Your CRM

With your Campaign ID and API token ready, the final step is to configure your CRM to call the Hoomanlabs task creation API whenever a lead event occurs.

Most modern CRMs support outgoing webhooks or API actions that can fire on lead events such as a new lead being added, a status change, or a form submission. Refer to the documentation for your specific CRM — links for popular platforms are listed at the end of this guide.

Regardless of which CRM or method you use, the API call you need to make is identical. The details are below.

API Endpoint

POST https://api.hoomanlabs.com/routes/v1/tasks/

Authentication Headers

Every request must include your API token and content type header

Authorization: YOUR_SECRET_TOKEN
Content-Type: application/json

Request Fields

The request body must be sent as JSON. The table below explains each field:

Field

Required?

Description

Example Value

phone

Required

The lead's phone number to call, in e.164 format.

+919876543210

campaign

Required

The Campaign ID from Step 1.

BQxYM9SsxEeM2gzjmlRr

agent

Required

The Agent ID. Find this on the Agents page in your HL dashboard.

agent_xyz789

start

Required

Earliest time to place the call, in HHMM 24-hour format. E.g. 900 = 9:00 AM, 1800 = 6:00 PM.

900

end

Required

Latest time to place the call, in HHMM 24-hour format.

1800

timezone

Required

Timezone for the start/end window. Defaults to Asia/Kolkata.

Asia/Kolkata

from

Optional

The calling number (caller ID) to use. Find this on the Numbers page in HL.

+911234567890

retries

Optional

Total number of call attempts including the first. Defaults to 1. If set to more than 1, unanswered, busy, and failed calls are automatically retried — no need to specify these in retryOutcomes.

3

priorities

Optional

Priority for each attempt as an array. Length must equal retries. Higher number = higher priority. E.g. [3,2,1] means the first attempt has the highest priority.

[3,2,1]

intervals

Optional

Time in milliseconds to wait between retry attempts. Length must equal retries minus 1. E.g. [300000] = wait 5 minutes between attempts.

[300000,600000]

retryOutcomes

Optional

Additional outcomes that should trigger a retry, beyond the automatic ones. Useful for retrying connected calls that ended unexpectedly, such as a dropped call or voicemail.

["voicemail","dropped"]

context

Optional

A JSON object to pass extra information about the lead to the agent. Recommended: include a unique lead ID from your CRM so data can be matched back after the call.

{"leadId": "LS-00123"}

startAfter

Optional

Do not attempt the call before this time, as a UNIX timestamp in milliseconds.

1708320000000

endAfter

Optional

Do not attempt the call after this time, as a UNIX timestamp in milliseconds.

1708406400000

Sample API Request (cURL)

Below is a complete example. Replace the placeholder values with your actual data before using it in your CRM.

curl <https://api.hoomanlabs.com/routes/v1/tasks/> \\
  --request POST \\
  --header 'Content-Type: application/json' \\
  --header 'Authorization: YOUR_SECRET_TOKEN' \\
  --data '{
    "phone": "+919876543210",
    "campaign": "BQxYM9SsxEeM2gzjmlRr",
    "agent": "agent_xyz789",
    "from": "+911234567890",
    "start": 900,
    "end": 1800,
    "timezone": "Asia/Kolkata",
    "retries": 3,
    "priorities": [3, 2, 1],
    "intervals": [300000, 600000],
    "retryOutcomes": ["voicemail"],
    "context": { "leadId": "LS-00123" }
  }'

Mapping Your CRM Fields to the API

When configuring your CRM webhook or automation, you will need to dynamically inject the lead's phone number and lead ID into the request. Most CRMs support variable substitution in webhook payloads — for example, using a placeholder like {{lead.mobile}} or {PhoneNumber} that gets replaced with the actual value at the time the webhook fires.

  • Map the lead's phone field to the phone parameter.

  • Map the lead's unique ID (from your CRM) to context.leadId. This lets you match call data back to the right lead after the call is completed.

  • Keep campaign, agent, from, start, end, and timezone as fixed values since they are the same for every call.

Refer to your CRM's documentation for the exact syntax to use when inserting lead field values into a webhook payload.


Tips & Common Questions

  • What is HHMM format?

HHMM is a simple 24-hour time format — the first digits are the hour and the last two are the minutes. For example: 9:00 AM = 900, 2:30 PM = 1430, 6:00 PM = 1800. There is no colon.

  • How do retries work?

Set retries to the total number of attempts you want, including the first call. If retries is greater than 1, HL will automatically retry calls that were not answered, were busy, or failed — you do not need to list these in retryOutcomes. Use retryOutcomes only if you also want to retry calls that connected but ended in an undesirable way, such as going to voicemail or dropping unexpectedly.

  • How does priority work?

The priorities array assigns a priority level to each call attempt. Higher numbers mean higher priority. The array length must match the value of retries. For example, [3,2,1] with retries: 3 means the first attempt is the highest priority, and each retry is lower. This is useful when you have a busy call queue and want fresh leads to be called first.

  • Why should I pass a leadId in context?

After a call is completed, Hoomanlabs sends the call outcome and data back to your system. By including a unique leadId (or any identifier from your CRM) in the context field, you can reliably match that response back to the correct lead record — even if you have thousands of calls running simultaneously.

  • Where do I find my Agent ID?

Go to the Agents page in your Hoomanlabs dashboard. Each agent has a unique Agent ID you can copy from there. Link

  • Where do I find my From number?

Go to the Numbers page in your Hoomanlabs dashboard. This lists all the calling numbers available in your workspace. Link

Tip: Start simple: set retries to 1 and leave optional fields out when first testing your integration. Once calls are flowing correctly, you can layer in retry logic, priorities, and context data.


CRM Integration References

Below are links to the relevant webhook and API automation documentation for popular CRMs. Use these to configure the trigger that fires the Hoomanlabs API call.