Leads tools
MCP tools for Leads: leads_create.
leads_create: Send a sales enquiry to Ownrecord
leads_create
Send a sales enquiry to Ownrecord. Operation leads.create · Brand level · permission customers:write · risk tier write · since M12
Records a sales enquiry for Ownrecord itself (the /contact form of ownrecord.io) and emails it to Ownrecord's
sales team. It works only on the platform brand (ownrecord); any other brand slug answers resource_not_found.
The enquiry keeps the name, email, company, a monthly volume range, the optional message, the page it was sent
from and what the visitor agreed to: consent.contact (required, Ownrecord may use the details to answer) and
consent.marketing (optional opt-in to product updates), with the version of the consent text. No IP address is
stored.
Requests are limited per client IP (5 an hour) and per address (3 a day), whether or not they succeed
(rate_limited). The website form also has a honeypot field and drops what bots send before calling this.
Public: the website calls it, no API key needed.
Annotations: readOnlyHint: false · destructiveHint: false · idempotentHint: false · openWorldHint: true
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | The person to answer. (1–200 characters) |
email | string | yes | Where sales answers. (at most 254 characters) |
company | string | yes | The company the request is for. (1–200 characters) |
volumeRange | one of not_live_yet, under_30k, 30k_to_175k, 175k_to_1m, over_1m | yes | Monthly live volume, roughly. |
message | string | no | What the request is about (optional). (at most 5000 characters) |
sourcePage | string | yes | The site page the form was sent from, e.g. /contact. (at most 200 characters) |
consent | object | yes | contact must be true: the visitor agrees that Ownrecord uses the details to answer. marketing opts in to product updates (default false). |
brandSlug | string | yes | The platform brand's slug (ownrecord): leads belong to Ownrecord's own brand. (1–64 characters) |
entity_id | ID (ent_…) | no | Optional: the brand's legal entity (ent_…); brand_id alone is enough. |
brand_id | ID (brd_…) | no | The brand to act on (brd_…), inside your API key's reach. Needed with an organization or entity key; a brand key acts on its own brand. |
idempotency_key | string | no | A unique string for this change. Retrying with the same key and arguments never acts twice. When left out, the server generates one and returns it in the result's idempotency_key. (1–255 characters) |
- Brand: pass
brand_idwith an organization or entity key; a brand key acts on its own brand. - Idempotency: the result returns the
idempotency_keyused, yours or one the server generated. Retry with it: a call with the same key and arguments never acts twice (keys are kept for 24 hours). - Dry run: not supported.
dry_run: truefails withdry_run_not_supported.
Errors
validation_failed: A field is missing or malformed: an empty name or company, an email that isn't an address, an unknownvolumeRange, asourcePagethat isn't a site path, orconsent.contactnot true.resource_not_found:brandSlugisn't the platform brand (leads exist only on Ownrecord's own brand).rate_limited: Too many enquiries from this client IP (5 an hour) or for this address (3 a day); waitretry_after_ms.
Example
Ask sales about Enterprise
Arguments:
{
"brandSlug": "ownrecord",
"name": "Ana Kovač",
"email": "ana@example.com",
"company": "Acme Digital d.o.o.",
"volumeRange": "175k_to_1m",
"message": "We run two brands from two EU entities and want to talk about Enterprise.",
"sourcePage": "/contact",
"consent": {
"contact": true,
"marketing": false
},
"brand_id": "brd_01jbx4m3v8e9t0s6k2c5n7q1wz",
"idempotency_key": "8d0c5f8e-4b7a-4e43-9b0f-2f6a0c1d9e21"
}
Result output:
{
"object": "lead",
"id": "lead_01m4tx5nj8emwbyf7y9vcf48c0",
"createdAt": "2026-10-26T09:30:00.000Z",
"message": "Thanks. We've received your request and will answer at ana@example.com."
}