# Lead sources and marketing webhooks

How to connect a lead vendor, what to send, how to read the debug log, and how to import a file.

## Add a source

To add a source, route it to agents, or edit or remove it, see [Marketing sources](/knowledge/features/marketing-sources). This article covers what comes next: the posting URL, what to send, field mapping and the debug log.

## The posting URL

Click **Integration** on the source. Copy the posting URL and give it to your vendor. It looks like this:

```
https://hiremav.com/api/v3/marketing_sources/{account_id}/{source_id}
```

The same screen lists every lead parameter and an example `curl` request.

## What to send

Only `phone` is required. A missing phone answers `422` with "Missing required fields: phone". Everything else is optional: `first_name`, `last_name`, `email`, `did`, the current carrier and coverage, address, date of birth, up to three vehicles, and the TCPA consent fields (`sms_consent`, `tcpa_opt_in_token`, `tcpa_opt_in_url`, `ip_address`, `user_agent`). Home insurance fields, like `roof_type` and `year_built`, are accepted too. Any field Mav does not recognize is kept on the contact under **Properties**.

A good post answers `202` with the new contact's id. If the number already belongs to a contact in your account, Mav reuses that contact.

## Custom field mapping

For a custom source, click **Map vendor fields** on its card. The page shows every field seen in the last ten requests, with its latest value, and lets you store each one as a Mav field or keep it as sent. Send a test lead first; the page needs at least one request to work from.

## The debug log

**Marketing sources › Debug** lists every incoming payload for 90 days, with the time in your account timezone, the source, the status and a message. **View** opens the request and counts the fields Mav did not recognize, with a link to map them.

## Importing a file

Under **Settings › Imports**, click **New import** and choose **Contacts**. Pick the agent, confirm you have written consent to text these people, download the template, and upload your CSV. The first row must be column headers and one column must map to the phone. Columns cover personal details, auto and home insurance, up to three vehicles, two drivers, property, consent and tracking.

Imports run up to 500 contacts per account per day. Rows past that are **Deferred** to the next business morning. The results page counts imported, failed, missing-phone and duplicate rows and lists the first 50 errors. **Retry** reruns a failed import. A file name you already imported gets a warning before it runs again.

## Blocking numbers

To block a number or turn on a do-not-call scrub service, see [Blocked numbers and scrub services](/knowledge/features/blocked-numbers-and-scrub-services).