Connect & map fields
Connect HubSpot, Pipedrive, Zoho, Salesforce or GoHighLevel, map the fields, and let an automation send the leads that match.
Connect the MCP server, then just ask.
| push_lead_to_crm | Creates a contact in the website's connected CRM: HubSpot, Pipedrive, Salesforce, Zoho or GoHighLevel. | Changes data |
| list_crm_owners | Lists the users in a connected CRM that a contact can be assigned to. | Read-only |
| list_crm_variables | The lead and company fields (name, email, job title, company size, pages visited, score…) that can be mapped to fields in your CRM. | Read-only |
| get_crm_mappings | The field mappings used when leads are pushed to a CRM, for contacts or companies (objectType, default contact): each row's crmField is filled from a lead field (valueType variable, variable) or a fixed text (valueType static, staticValue); enabled false skips it. | Read-only |
| set_crm_mappings | Sets the field mappings for contacts or companies pushed to a CRM. | Deletes data |
Use case
Push this lead to HubSpot and assign it to Jane.
Called list_crm_ownersShow input
{
"crm": "hubspot",
"websiteId": "64b7f0a1c2d3e4f5a6b7c8d9"
}Each owner comes back as id, name and email. Your assistant finds Jane's id in that list, then pushes the lead and confirms with you first, because it writes to your CRM:
Called push_lead_to_crmShow input
{
"websiteId": "64b7f0a1c2d3e4f5a6b7c8d9",
"crm": "hubspot",
"leadId": "6530c1d2e3f4a5b6c7d8e9f2",
"ownerId": "OWNER_ID",
"contactData": { "email": "jane.doe@acme.example" }
}Use case
Which lead fields can I send to my CRM?
Called list_crm_variablesShow input
{}Each field comes with its key (what a mapping row uses as variable), a label, an example and its category: Person, Company, Visit, UTM (campaign tags) or Lead.
Use case
Also send the pages each lead visited to the "Website pages" field in HubSpot.
Called get_crm_mappingsShow input
{ "websiteId": "64b7f0a1c2d3e4f5a6b7c8d9", "crm": "hubspot", "objectType": "contact" }Your assistant reads the current contact mapping and the fields it can use (list_crm_variables), then saves the full list with the new row added:
Called set_crm_mappingsShow input
{
"websiteId": "64b7f0a1c2d3e4f5a6b7c8d9",
"crm": "hubspot",
"objectType": "contact",
"mappings": [
{ "crmField": "email", "valueType": "variable", "variable": "lead.person.businessEmail" },
{ "crmField": "firstname", "valueType": "variable", "variable": "lead.person.firstName" },
{ "crmField": "website_pages", "valueType": "variable", "variable": "lead.visit.pageList" }
]
}The list you send replaces the saved one, so rows you leave out are no longer filled. Each row names the CRM field (crmField) and fills it from a lead field (valueType: "variable") or with the same text every time (valueType: "static", staticValue). The answer of get_crm_mappings says source: "default" until you save your own mapping.