# How to Send User Input Data to an External API in ZazzyAgent

A common ZazzyAgent workflow is:

> Ask the customer for information → send that information to another system.

For example:

> What's your name?

> What's your email?

> What service do you need?

After the customer answers, you may want to send the information to your CRM, database or custom application.

The **JSON API Connector** can be used for this type of outgoing integration.

## What we're building

We'll create:

```text
Customer
   ↓
User Input Flow
   ↓
Collect Information
   ↓
JSON API Connector
   ↓
External Webhook
   ↓
External System
```

## Before you start

You need:

*   A ZazzyAgent Flow
    
*   User Input fields
    
*   A receiving webhook/API URL
    
*   Access to the JSON API Connector
    

## Step 1: Build your User Input flow

Create a flow that collects the information you need.

For example:

**Name**

**Email**

**Phone**

**Requirement**

Save each answer to the appropriate system/custom field.

## Step 2: Test the User Input first

Before adding the API integration, make sure the flow successfully stores the customer responses.

This gives you a known-good starting point.

## Step 3: Prepare the external endpoint

Create the endpoint that will receive your JSON data.

For testing, you can use a webhook inspection service.

For production, use your own secure API/webhook endpoint.

## Step 4: Open JSON API Connector

Open the JSON API Connector in ZazzyAgent.

Create a new connector.

## Step 5: Name the connector

Use a meaningful name.

For example:

> CRM – Lead Submission

This makes it clear what the connector does.

## Step 6: Add your webhook URL

Enter the external URL that should receive the data.

For example:

```text
https://example.com/api/leads
```

Use your actual endpoint.

## Step 7: Choose the trigger

Select:

**User Input Flow**

Then select the Flow that collects your lead information.

This tells ZazzyAgent:

> When this particular input flow completes, send the selected data.

## Step 8: Select the fields

Choose the information you want to send.

For example:

*   First Name
    
*   Email
    
*   Phone
    
*   Requirement
    
*   Budget
    

The connector can send system fields as well as customer/user-input information. ([botsailor.com](https://botsailor.com/help/en/blog/json-api-connector-in-botsailor-send-user-input-to-external-apis?utm_source=chatgpt.com))

## Step 9: Save

Save the connector.

## Step 10: Run a test

Start your User Input flow.

Enter test information:

> Rahul

> [rahul@example.com](mailto:rahul@example.com)

> +919XXXXXXXXX

> WhatsApp automation

Then check your receiving endpoint.

## Step 11: Inspect the request

You should see the information in JSON form.

The exact structure depends on your selected fields and ZazzyAgent's current payload format.

## Example business workflow

Suppose your sales team uses a CRM.

Your ZazzyAgent lead flow collects:

```text
Name
Email
Phone
Requirement
Budget
```

When the form finishes:

```text
User Input Complete
        ↓
JSON API Connector
        ↓
CRM API
        ↓
New Lead
```

Now your sales team doesn't need to manually copy the lead.

## Use it with Instagram leads

An Instagram AI Agent may qualify a customer.

Once the required information has been collected:

```text
Instagram
    ↓
AI Agent
    ↓
Lead Qualification
    ↓
User Input / Saved Data
    ↓
JSON API
    ↓
CRM
```

The same architecture can be used for WhatsApp or other supported channels.

## Use it with website leads

A website isn't the only place where this approach works.

Any ZazzyAgent conversation that produces structured information can potentially feed an external system.

## Send only the necessary data

Suppose the CRM only requires:

*   Name
    
*   Email
    
*   Phone
    

Don't send twenty unrelated fields.

Smaller payloads are easier to maintain.

## Keep your external endpoint stable

Don't change your endpoint URL casually after the connector is configured.

If the destination changes, update the connector and test it again.

## What if the external system doesn't receive anything?

Check in this order:

### 1\. User Input completed

Did the customer actually reach the end of the form?

### 2\. Connector is active/configured

Is the correct connector attached to the intended User Input Flow?

### 3\. URL

Is the webhook/API URL correct?

### 4\. Endpoint

Is the receiving server online?

### 5\. Payload

Did the request contain the expected fields?

## What if some fields are empty?

Check whether:

*   Customer actually provided them.
    
*   The field is mapped correctly.
    
*   The field is the correct system/custom field.
    
*   The User Input question saves the answer correctly.
    

## What if you need custom authentication?

If the receiving API requires authentication features that the JSON API Connector doesn't directly provide, use a secure backend relay.

For example:

```text
ZazzyAgent
   ↓
Your secure webhook
   ↓
Authenticated server-side API call
   ↓
CRM
```

This avoids placing private API credentials in the customer-facing automation.

## Test with a real-looking payload

Don't test only:

> Test User

Use realistic values.

That lets you discover:

*   Field formatting problems
    
*   Phone-number issues
    
*   Empty values
    
*   Unexpected characters
    
*   CRM validation errors
    

## Add error handling

Your external system can fail.

For example:

*   Server unavailable
    
*   Invalid request
    
*   CRM error
    
*   Duplicate lead
    
*   Authentication failure
    

Your business should decide what happens when that occurs.

## Don't tell the customer the API failed

Avoid:

> HTTP 500

Instead:

> We've received your information. Our team will process it shortly.

Then let your technical system handle the failure internally.

## The final architecture

```text
Customer
   ↓
User Input
   ↓
Validate
   ↓
Save Fields
   ↓
JSON API Connector
   ↓
External System
   ↓
CRM / Database / Application
```

This is one of the simplest ways to turn a ZazzyAgent conversation into an automated business process.
