Create custom connector
Add an http or mcp connector. An http connector shows in the thread sidebar; agent access stays off unless set. Requires the admin scope.
curl -X POST "https://productlane.com/api/v2/settings/custom-connectors" \
-H "Authorization: Bearer $PRODUCTLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"url": "string"
}'Authorization
AuthorizationstringheaderrequiredBearer authentication header of the form
Bearer <token>, where<token>is your auth token.
Body
titlestringrequiredurlstringrequiredhttps URL Productlane calls. http works only for localhost.
logo_urlstring | nullhttps URL of the logo shown next to the connector, such as the logo of the system it wraps. Defaults to the favicon of
url;nullclears it.typeenum<string>http: Productlane POSTs the contact to your URL and renders the returned sidebar components and actions.mcp: an MCP server whose tools the agent can call.One of:httpmcpDefault:httpdescriptionstring | nullTells the agent when to use this connector.
orderintegerSidebar position, lowest first. Defaults to the end.
headersobject[]Replaces the full header list. A saved header left out is deleted.
Default:[]available_to_agentbooleanhttponly: let the customer-facing agent read this connector and run its actions. Formcp, setagent_toolsinstead.agent_toolsstring[]mcponly: tools the customer-facing agent may call. Tool names come fromGET /settings/custom-connectors/{id}/tools. Every other tool stays internal (copilot, AI drafts).internal_blocked_toolsstring[]mcponly: tools hidden from internal callers as well.reachable_without_identitybooleanmcponly: the widget agent may call it before the visitor verifies their email. Only for public knowledge like docs or status.
Response
Successful response
idstringrequiredtitlestringrequireddescriptionstring | nullrequiredurlstringrequiredlogo_urlstring | nullrequiredLogo shown in the sidebar.
nullshows the favicon ofurl.typeenum<string>requiredOne of:httpmcporderintegerrequiredheadersobject[]requiredHeader names only. Stored values are encrypted and never returned.
available_to_agentbooleanrequiredWhether the customer-facing agent (widget, email, Slack replies) may read this connector. For
mcpconnectors it is true whenagent_toolsis not empty.agent_toolsstring[]requiredmcponly: tools the customer-facing agent may call. Every other tool stays internal (copilot, AI drafts).internal_blocked_toolsstring[]requiredmcponly: tools hidden from internal callers as well.reachable_without_identitybooleanrequiredmcponly: the widget agent may call it before the visitor verifies their email. For public knowledge like docs or status.tool_policiesanyField rules per tool name, in the dashboard's policy format. Set with
PUT /settings/custom-connectors/{id}/tool-policy.created_atstringrequiredupdated_atstringrequired
{
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"logo_url": "string",
"type": "http",
"order": 0,
"headers": [
{
"id": "string",
"key": "string"
}
],
"available_to_agent": true,
"agent_tools": [
"string"
],
"internal_blocked_tools": [
"string"
],
"reachable_without_identity": true,
"tool_policies": null,
"created_at": "string",
"updated_at": "string"
}