> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knotie-ai.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Agency command center: run outbound campaigns for clients without extra middleware

> Use Knotie Partner Portal to separate clients, map numbers to agents, enforce credits, and trigger outbound calls from GHL natively.

## Who this is for

This playbook is for agencies that:

* Run outbound lead follow-up for multiple clients
* Need clean separation by client (billing, credits, reporting)
* Want to avoid adding extra platforms (middleware costs + complexity)

## The client concern this solves

A common objection to outbound automation stacks is:

* “I don’t want to pay for Knotie *and* another automation platform.”

With Knotie’s **native GHL webhook support**, you can often remove the “middleware” layer that was previously used only for payload shaping.

## What you'll build

A repeatable client delivery process:

1. Onboard a client as a **Customer**
2. Import a phone number (Twilio or Retell)
3. Assign a voice agent to that number with **Outbound** enabled
4. Generate a per-number outbound webhook key (`owk_...`)
5. Add a GHL workflow webhook step using that key

<Tip>
  For multi-client outbound, plan to import one outbound-capable agent **per client** (Retell is the most reliable). Agents are scoped to a single customer in the assign-agent picker, so a single shared agent won't cover all your clients.
</Tip>

> <img src="https://mintcdn.com/kno2getherlabsltd/lzQmpFGTMKLe_lLS/images/screenshots/customers-list-2026-06-09.png?fit=max&auto=format&n=lzQmpFGTMKLe_lLS&q=85&s=6fe6605e195913f627dc07e1cd2d55ab" alt="Knotie AI Pro Partner Portal — Customers list" width="1526" height="923" data-path="images/screenshots/customers-list-2026-06-09.png" />

## Step 1 — Onboard the client as a customer

1. Partner Portal → **Customers**
2. Create the customer record
3. (Optional) Enable customer portal access if you want them to see call logs/credits

<img src="https://mintcdn.com/kno2getherlabsltd/GeC0o0_i5BwV0IQw/images/screenshots/customers-quick-onboard-modal-2026-06-22.png?fit=max&auto=format&n=GeC0o0_i5BwV0IQw&q=85&s=bc84a3d3b3f53b922334d59e2dae3331" alt="Quick Onboard modal — form fields for customer name, email, company, and portal access toggle, with a Save button" width="1536" height="730" data-path="images/screenshots/customers-quick-onboard-modal-2026-06-22.png" />

## Step 2 — Set up credits (so usage is enforceable)

Why credits matter:

* Agencies need a hard stop to prevent runaway spend
* Clients need predictable billing

1. Open customer **Manage** modal
2. Go to **Credits**
3. Add credits for the customer

<img src="https://mintcdn.com/kno2getherlabsltd/GeC0o0_i5BwV0IQw/images/screenshots/customers-manage-credits-tab-2026-06-22.png?fit=max&auto=format&n=GeC0o0_i5BwV0IQw&q=85&s=31c227295c53c600381f877ded09016a" alt="Customer Manage modal — Credits tab showing current credit balance, Add Credits button, and transaction history for the customer" width="1536" height="730" data-path="images/screenshots/customers-manage-credits-tab-2026-06-22.png" />

## Step 3 — Import and assign a phone number

1. Partner Portal → **Phone Numbers**
2. Import from:
   * **Twilio** (owned in Twilio)
   * **Retell** (purchased inside Retell)
3. Assign the number to the client/customer

<Note>
  The Assign Customer picker is a typeahead — type the client's first name, last name, or email. The Phone Numbers list shows the **contact name**, not the brand/company name from your Customers list, so the same client may appear under either name depending on where you're looking.
</Note>

<img src="https://mintcdn.com/kno2getherlabsltd/J5o1wCtkIoZBzK9I/images/screenshots/phone-numbers-2026-06-09.png?fit=max&auto=format&n=J5o1wCtkIoZBzK9I&q=85&s=d971940b44d36cc8fec7d29e1bb60287" alt="Knotie AI Pro Partner Portal — Phone Numbers list with assigned customers" width="1526" height="2113" data-path="images/screenshots/phone-numbers-2026-06-09.png" />

## Step 4 — Assign the outbound agent

1. In the phone numbers table, click **Assign Agent**
2. Select the correct provider agent
3. Enable **Outbound**

<Warning>
  In the **Assign Agent** modal, switch the **Direction** toggle from **Inbound Only** (the default) to **Outbound Only**. The default is set up for AI-receptionist use, not for outbound campaigns.
</Warning>

<Note>
  The agent dropdown is scoped to the customer on this number — only agents belonging to that client will appear. If you don't see an agent, you may need to create or import one for that client first.
</Note>

<img src="https://mintcdn.com/kno2getherlabsltd/roapHUhX_kUdTTdE/images/screenshots/phone-number-assign-agent-modal-2026-06-22.png?fit=max&auto=format&n=roapHUhX_kUdTTdE&q=85&s=45fe523de0573dca9848a2946849a270" alt="Assign Agent modal — agent selector scoped to the assigned customer, with a Direction toggle (Inbound Only / Outbound Only) that must be set to Outbound Only for this flow" width="1536" height="730" data-path="images/screenshots/phone-number-assign-agent-modal-2026-06-22.png" />

## Step 5 — Generate a dedicated webhook key

Each outbound-mapped phone number has its own key.

1. Open phone number details
2. Generate **Outbound Webhook Key**
3. Store in your agency vault/password manager

<Tip>
  The Outbound Webhook section only appears for numbers with an outbound-capable agent assigned. If you don't see it, double-check the Direction toggle in Step 4 — it must be set to **Outbound Only**.
</Tip>

<img src="https://mintcdn.com/kno2getherlabsltd/w3UDOzU-0S4zV0wH/images/screenshots/ghl-outbound-webhook-section-2026-06-22.png?fit=max&auto=format&n=w3UDOzU-0S4zV0wH&q=85&s=c460370d02cd93c83d43bd8a208cd9fb" alt="Outbound Webhook section in the phone number detail panel — masked owk_ API key with Active badge, Regenerate Key and Revoke buttons, and a curl usage example" width="837" height="387" data-path="images/screenshots/ghl-outbound-webhook-section-2026-06-22.png" />

## Step 6 — Connect the client's GHL workflow

In the client's GoHighLevel account:

* Add a Webhook step:
  * `POST https://connecthub.knotie-ai.pro/api/outbound-call`
* Add `Authorization: Bearer owk_...`
* Add required custom data:
  * `from_number`
  * `to_number`
* Add a `metadata` object with any personalization variables your agent expects

Example body:

```json theme={null}
{
  "from_number": "+1XXXXXXXXXX",
  "to_number": "{{contact.phone_raw}}",
  "metadata": {
    "client": "client_name",
    "campaign": "campaign_id"
  }
}
```

## Delivery checklist (copy/paste)

* Customer created
* Credits added
* Number imported
* Customer assigned to number
* Agent assigned to number (Outbound enabled)
* Outbound key generated and stored
* GHL workflow published
* Test lead submitted and call verified

## Best practices

* Use **warm lead timing** (call within minutes)
* Keep your outbound agent CTA simple (book, qualify, route)
* Rotate numbers if you see spam flagging patterns
