# New-lead webhook

> The endpoint your CRM workflow calls when a new lead opts in.

POST https://beam.aisync.link/t/:workspace/optin?secret=YOUR_WEBHOOK_SECRET
This is the automation entry point: one POST per new lead, and Beam handles everything else. It is designed for CRM webhook actions (see the CRM guide) but anything that can POST JSON can call it.

  
| Field | Type | Description | 
  
| phone | string, required | The lead's phone number. | 
  
| first_name | string, optional | Used to personalize the first-touch template. | 
  
| contact_id | string, optional | Your CRM contact id. With it, Beam tags the contact and writes reply notes back to your CRM. | 

curlResponseCopy
```
curl -X POST "https://beam.aisync.link/t/YOUR_WORKSPACE/optin?secret=YOUR_WEBHOOK_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+15551234567",
    "first_name": "Sarah",
    "contact_id": "abc123"
  }'
```

```
{
  "queued": true,
  "to": "+15551234567"
}
```

## Behavior

  - Once per lead. A repeat call for the same phone number returns queued: false and sends nothing.
  - Personalized. The workspace's first-touch template runs with the lead's first name.
  - Channel-smart. Blue bubble if the phone supports it, text if not, tagged either way.
  - Paced. First touches respect warm-up limits and business hours.

Opt-in leads onlyThis endpoint is for people who just asked to hear from you. Pointing it at a cold list is the fastest way to lose a number, and consent laws make it your legal problem. See Compliance.
