@sellable/mcp 0.1.324 → 0.1.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/column-schema-manifest.js +1 -1
- package/dist/server.js +14 -0
- package/dist/tools/company-info.d.ts +78 -0
- package/dist/tools/company-info.js +152 -0
- package/dist/tools/registry.js +4 -0
- package/dist/tools/sender-routing.d.ts +64 -0
- package/dist/tools/sender-routing.js +57 -0
- package/package.json +1 -1
- package/skills/building-gtm-tables/references/column-type-catalog.md +21 -20
- package/skills/create-evergreen-campaigns/SKILL.md +7 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const manifestJson = "{\n \"generatedAt\": \"deterministic\",\n \"counts\": {\n \"visible\": 19,\n \"hiddenActive\": 10,\n \"deprecatedLoadOnly\": 6\n },\n \"createableTypes\": [\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"react_and_comment\",\n \"score_icp_mcp\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"activeTypes\": [\n \"action\",\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"datetime\",\n \"example_checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"json\",\n \"linkedin_url\",\n \"next_action_at\",\n \"react_and_comment\",\n \"reply_sentiment\",\n \"score_icp_mcp\",\n \"select\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"sent_at\",\n \"sequence_status\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"rows\": [\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.generic\",\n \"section\": \"Automation\",\n \"label\": \"HTTP Request\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"HTTP Request\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"endpoint\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"ai_column\",\n \"section\": \"Automation\",\n \"label\": \"Use AI\",\n \"columnType\": \"ai_column\",\n \"displayName\": \"AI Column\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Use AI\",\n \"defaultConfig\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"\",\n \"outputFields\": [\n {\n \"name\": \"response\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": true,\n \"maxSearchQueries\": 3\n },\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"Summarize {{Company}} in one sentence.\",\n \"outputFields\": [\n {\n \"name\": \"summary\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": false,\n \"maxSearchQueries\": 0\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.ai_column\"\n ],\n \"runtimeOwner\": \"AI column cell executor\",\n \"requiresInputs\": [\n \"aiConfig.userPrompt\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"custom\",\n \"createKey\": \"ai_column_config\",\n \"editKey\": \"ai_column_config\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"inbound_webhook\",\n \"section\": \"Automation\",\n \"label\": \"Inbound Webhook\",\n \"columnType\": \"inbound_webhook\",\n \"displayName\": \"Inbound Webhook\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Inbound Webhook\",\n \"defaultConfig\": {\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"configFixture\": {\n \"webhookToken\": \"fixture-token\",\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"validationOwners\": [\n \"inboundWebhookConfigSchema\"\n ],\n \"runtimeOwner\": \"webhook source/update route\",\n \"requiresInputs\": [\n \"webhook payload\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"formula\",\n \"section\": \"Automation\",\n \"label\": \"Formula\",\n \"columnType\": \"formula\",\n \"displayName\": \"Formula\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Formula\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"expression\": \"{{First Name}} + ' ' + {{Last Name}}\"\n },\n \"validationOwners\": [\n \"formulaConfigSchema\"\n ],\n \"runtimeOwner\": \"formula cell executor\",\n \"requiresInputs\": [\n \"expression\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"wait\",\n \"section\": \"Automation\",\n \"label\": \"Wait\",\n \"columnType\": \"wait\",\n \"displayName\": \"Wait\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Wait\",\n \"defaultConfig\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"configFixture\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.wait\"\n ],\n \"runtimeOwner\": \"sweeper wait executor\",\n \"requiresInputs\": [\n \"waitConfig.duration\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.enrich_prospect\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Enrich Prospect\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Enrich Prospect\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n },\n \"rateLimit\": {\n \"mode\": \"concurrency\",\n \"maxConcurrent\": 8,\n \"concurrencyGroup\": \"linkedin-harvest\"\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"LinkedIn URL text column\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"score_icp_mcp\",\n \"section\": \"Sellable Presets\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp_mcp\",\n \"displayName\": \"MCP ICP Score\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": [\n {\n \"checkName\": \"role_fit\",\n \"criterion\": \"Prospect matches the ICP\",\n \"description\": \"Role and company context match target buyer\",\n \"reason\": \"Fit predicts relevance\",\n \"isRequiredCheck\": \"true\",\n \"allowPartialCredit\": \"true\"\n }\n ],\n \"inputMapping\": {\n \"enrichedProspectId\": \"{{Enrich Prospect.id}}\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.score_icp_mcp\"\n ],\n \"runtimeOwner\": \"score ICP cell executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"generate_message\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"inputMapping\": {\n \"campaignOfferId\": {\n \"value\": \"{{Campaign Offer ID}}\"\n },\n \"enrichedProspectId\": {\n \"value\": \"{{Enrich Prospect.id}}\"\n },\n \"icpScore\": {\n \"value\": \"{{ICP Score.score}}\"\n }\n }\n },\n \"validationOwners\": [\n \"generateMessageConfigSchema\"\n ],\n \"runtimeOwner\": \"HTTP-backed message generation executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\",\n \"ICP Score output/context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"passthrough\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"is_open_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Open Profile\",\n \"columnType\": \"is_open_profile\",\n \"displayName\": \"Check Open Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Open Profile\",\n \"defaultConfig\": {\n \"httpConfig\": {\n \"method\": \"POST\",\n \"endpoint\": \"/api/v1/linkedin/check-open-profile\",\n \"bodyTemplate\": {\n \"linkedinUrl\": \"{{linkedinUrl}}\"\n }\n }\n },\n \"configFixture\": {},\n \"validationOwners\": [\n \"checkOpenProfileColumn schema\"\n ],\n \"runtimeOwner\": \"open profile cell executor\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_paid_inmail_credits\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Paid InMail Credits\",\n \"columnType\": \"check_paid_inmail_credits\",\n \"displayName\": \"Check Paid InMail Credits\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Paid InMail Credits\",\n \"defaultConfig\": {\n \"minPaidInmailCreditsForSend\": 25,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"minPaidInmailCreditsForSend\": 1,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_paid_inmail_credits\"\n ],\n \"runtimeOwner\": \"paid InMail credit cell executor\",\n \"requiresInputs\": [\n \"sender/campaign context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_connection\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Connection\",\n \"columnType\": \"check_connection\",\n \"displayName\": \"Check Connection\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Connection\",\n \"defaultConfig\": {\n \"executorType\": \"check_connection\"\n },\n \"configFixture\": {\n \"executorType\": \"check_connection\"\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_connection\"\n ],\n \"runtimeOwner\": \"custom local connection executor\",\n \"requiresInputs\": [\n \"lead_linkedin_id\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"view_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"View Profile\",\n \"columnType\": \"view_profile\",\n \"displayName\": \"View Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"View Profile\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"validationOwners\": [\n \"view_profile action schema\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_invite\",\n \"section\": \"LinkedIn\",\n \"label\": \"Invite\",\n \"columnType\": \"send_invite\",\n \"displayName\": \"Invite\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Invite\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n },\n \"allow_existing_connections_passthrough\": false\n },\n \"inputMapping\": {\n \"linkedinUrl\": {\n \"value\": \"{{LinkedIn URL}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_invite\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\",\n \"optional connection note\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_dm\",\n \"section\": \"LinkedIn\",\n \"label\": \"DM\",\n \"columnType\": \"send_dm\",\n \"displayName\": \"DM\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"DM\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false,\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 3\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false\n },\n \"inputMapping\": {\n \"message\": {\n \"value\": \"{{Generate Message.body}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_dm\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"message body\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_open\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Open Profile)\",\n \"columnType\": \"send_inmail_open\",\n \"displayName\": \"InMail (Open Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Open Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackToClosedInmail\": true,\n \"minPaidInmailCreditsForFallback\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_open\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_closed\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Closed Profile)\",\n \"columnType\": \"send_inmail_closed\",\n \"displayName\": \"InMail (Closed Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Closed Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackAcrossTiers\": false,\n \"minPaidInmailCreditsForSend\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_closed\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"react_and_comment\",\n \"section\": \"LinkedIn\",\n \"label\": \"React & Comment\",\n \"columnType\": \"react_and_comment\",\n \"displayName\": \"React & Comment\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"React & Comment\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.react_and_comment\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn post URL\",\n \"comment text\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"text\",\n \"section\": \"Data\",\n \"label\": \"Text\",\n \"columnType\": \"text\",\n \"displayName\": \"Text\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Text\",\n \"defaultConfig\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"configFixture\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"validationOwners\": [\n \"textConfigSchema\"\n ],\n \"runtimeOwner\": \"display/manual text owner\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"checkbox\",\n \"section\": \"Data\",\n \"label\": \"Checkbox\",\n \"columnType\": \"checkbox\",\n \"displayName\": \"Checkbox\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Checkbox\",\n \"defaultConfig\": {\n \"default\": false\n },\n \"configFixture\": {\n \"default\": false,\n \"editable\": true\n },\n \"validationOwners\": [\n \"checkboxConfigSchema\"\n ],\n \"runtimeOwner\": \"checkbox cell executor\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.action\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn Action\",\n \"columnType\": \"action\",\n \"displayName\": \"LinkedIn Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn Action\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.datetime\",\n \"section\": \"Hidden Active\",\n \"label\": \"Date/Time\",\n \"columnType\": \"datetime\",\n \"displayName\": \"Date/Time\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Date/Time\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.example_checkbox\",\n \"section\": \"Hidden Active\",\n \"label\": \"Example\",\n \"columnType\": \"example_checkbox\",\n \"displayName\": \"Example\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Example\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.json\",\n \"section\": \"Hidden Active\",\n \"label\": \"JSON\",\n \"columnType\": \"json\",\n \"displayName\": \"JSON\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"JSON\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.linkedin_url\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn URL\",\n \"columnType\": \"linkedin_url\",\n \"displayName\": \"LinkedIn URL\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn URL\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.next_action_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Next Action\",\n \"columnType\": \"next_action_at\",\n \"displayName\": \"Next Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Next Action\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.reply_sentiment\",\n \"section\": \"Hidden Active\",\n \"label\": \"Reply Sentiment\",\n \"columnType\": \"reply_sentiment\",\n \"displayName\": \"Reply Sentiment\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Reply Sentiment\",\n \"defaultConfig\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.select\",\n \"section\": \"Hidden Active\",\n \"label\": \"Select\",\n \"columnType\": \"select\",\n \"displayName\": \"Select\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Select\",\n \"defaultConfig\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [\n \"name\",\n \"config\"\n ],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"limited_edit_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"limited_edit_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sent_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sent At\",\n \"columnType\": \"sent_at\",\n \"displayName\": \"Sent At\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sent At\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sequence_status\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sequence Status\",\n \"columnType\": \"sequence_status\",\n \"displayName\": \"Sequence Status\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sequence Status\",\n \"defaultConfig\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_company\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Company\",\n \"columnType\": \"enrich_company\",\n \"displayName\": \"Enrich Company\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Company\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_person\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Prospect (legacy)\",\n \"columnType\": \"enrich_person\",\n \"displayName\": \"Enrich Prospect (legacy)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Prospect (legacy)\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.generate_message_sequence\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message_sequence\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"generation\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.input\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Text Input\",\n \"columnType\": \"input\",\n \"displayName\": \"Text Input\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Text Input\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_text\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_text\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp\",\n \"displayName\": \"ICP Score\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"qualificationThreshold\": 60\n },\n \"configFixture\": {\n \"qualificationThreshold\": 60\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp_rubric\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Rubric Score (legacy alias)\",\n \"columnType\": \"score_icp_rubric\",\n \"displayName\": \"ICP Rubric Score (legacy alias)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Rubric Score (legacy alias)\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": []\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n }\n ]\n}";
|
|
1
|
+
const manifestJson = "{\n \"generatedAt\": \"deterministic\",\n \"counts\": {\n \"visible\": 19,\n \"hiddenActive\": 11,\n \"deprecatedLoadOnly\": 6\n },\n \"createableTypes\": [\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"react_and_comment\",\n \"score_icp_mcp\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"activeTypes\": [\n \"action\",\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"datetime\",\n \"eligible_senders\",\n \"example_checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"json\",\n \"linkedin_url\",\n \"next_action_at\",\n \"react_and_comment\",\n \"reply_sentiment\",\n \"score_icp_mcp\",\n \"select\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"sent_at\",\n \"sequence_status\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"rows\": [\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.generic\",\n \"section\": \"Automation\",\n \"label\": \"HTTP Request\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"HTTP Request\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"endpoint\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"ai_column\",\n \"section\": \"Automation\",\n \"label\": \"Use AI\",\n \"columnType\": \"ai_column\",\n \"displayName\": \"AI Column\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Use AI\",\n \"defaultConfig\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"\",\n \"outputFields\": [\n {\n \"name\": \"response\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": true,\n \"maxSearchQueries\": 3\n },\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"Summarize {{Company}} in one sentence.\",\n \"outputFields\": [\n {\n \"name\": \"summary\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": false,\n \"maxSearchQueries\": 0\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.ai_column\"\n ],\n \"runtimeOwner\": \"AI column cell executor\",\n \"requiresInputs\": [\n \"aiConfig.userPrompt\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"custom\",\n \"createKey\": \"ai_column_config\",\n \"editKey\": \"ai_column_config\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"inbound_webhook\",\n \"section\": \"Automation\",\n \"label\": \"Inbound Webhook\",\n \"columnType\": \"inbound_webhook\",\n \"displayName\": \"Inbound Webhook\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Inbound Webhook\",\n \"defaultConfig\": {\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"configFixture\": {\n \"webhookToken\": \"fixture-token\",\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"validationOwners\": [\n \"inboundWebhookConfigSchema\"\n ],\n \"runtimeOwner\": \"webhook source/update route\",\n \"requiresInputs\": [\n \"webhook payload\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"formula\",\n \"section\": \"Automation\",\n \"label\": \"Formula\",\n \"columnType\": \"formula\",\n \"displayName\": \"Formula\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Formula\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"expression\": \"{{First Name}} + ' ' + {{Last Name}}\"\n },\n \"validationOwners\": [\n \"formulaConfigSchema\"\n ],\n \"runtimeOwner\": \"formula cell executor\",\n \"requiresInputs\": [\n \"expression\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"wait\",\n \"section\": \"Automation\",\n \"label\": \"Wait\",\n \"columnType\": \"wait\",\n \"displayName\": \"Wait\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Wait\",\n \"defaultConfig\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"configFixture\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.wait\"\n ],\n \"runtimeOwner\": \"sweeper wait executor\",\n \"requiresInputs\": [\n \"waitConfig.duration\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.enrich_prospect\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Enrich Prospect\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Enrich Prospect\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n },\n \"rateLimit\": {\n \"mode\": \"concurrency\",\n \"maxConcurrent\": 8,\n \"concurrencyGroup\": \"linkedin-harvest\"\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"LinkedIn URL text column\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"score_icp_mcp\",\n \"section\": \"Sellable Presets\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp_mcp\",\n \"displayName\": \"MCP ICP Score\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": [\n {\n \"checkName\": \"role_fit\",\n \"criterion\": \"Prospect matches the ICP\",\n \"description\": \"Role and company context match target buyer\",\n \"reason\": \"Fit predicts relevance\",\n \"isRequiredCheck\": \"true\",\n \"allowPartialCredit\": \"true\"\n }\n ],\n \"inputMapping\": {\n \"enrichedProspectId\": \"{{Enrich Prospect.id}}\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.score_icp_mcp\"\n ],\n \"runtimeOwner\": \"score ICP cell executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"generate_message\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"inputMapping\": {\n \"campaignOfferId\": {\n \"value\": \"{{Campaign Offer ID}}\"\n },\n \"enrichedProspectId\": {\n \"value\": \"{{Enrich Prospect.id}}\"\n },\n \"icpScore\": {\n \"value\": \"{{ICP Score.score}}\"\n }\n }\n },\n \"validationOwners\": [\n \"generateMessageConfigSchema\"\n ],\n \"runtimeOwner\": \"HTTP-backed message generation executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\",\n \"ICP Score output/context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"passthrough\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"is_open_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Open Profile\",\n \"columnType\": \"is_open_profile\",\n \"displayName\": \"Check Open Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Open Profile\",\n \"defaultConfig\": {\n \"httpConfig\": {\n \"method\": \"POST\",\n \"endpoint\": \"/api/v1/linkedin/check-open-profile\",\n \"bodyTemplate\": {\n \"linkedinUrl\": \"{{linkedinUrl}}\"\n }\n }\n },\n \"configFixture\": {},\n \"validationOwners\": [\n \"checkOpenProfileColumn schema\"\n ],\n \"runtimeOwner\": \"open profile cell executor\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_paid_inmail_credits\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Paid InMail Credits\",\n \"columnType\": \"check_paid_inmail_credits\",\n \"displayName\": \"Check Paid InMail Credits\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Paid InMail Credits\",\n \"defaultConfig\": {\n \"minPaidInmailCreditsForSend\": 25,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"minPaidInmailCreditsForSend\": 1,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_paid_inmail_credits\"\n ],\n \"runtimeOwner\": \"paid InMail credit cell executor\",\n \"requiresInputs\": [\n \"sender/campaign context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_connection\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Connection\",\n \"columnType\": \"check_connection\",\n \"displayName\": \"Check Connection\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Connection\",\n \"defaultConfig\": {\n \"executorType\": \"check_connection\"\n },\n \"configFixture\": {\n \"executorType\": \"check_connection\"\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_connection\"\n ],\n \"runtimeOwner\": \"custom local connection executor\",\n \"requiresInputs\": [\n \"lead_linkedin_id\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"view_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"View Profile\",\n \"columnType\": \"view_profile\",\n \"displayName\": \"View Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"View Profile\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"validationOwners\": [\n \"view_profile action schema\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_invite\",\n \"section\": \"LinkedIn\",\n \"label\": \"Invite\",\n \"columnType\": \"send_invite\",\n \"displayName\": \"Invite\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Invite\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n },\n \"allow_existing_connections_passthrough\": false\n },\n \"inputMapping\": {\n \"linkedinUrl\": {\n \"value\": \"{{LinkedIn URL}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_invite\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\",\n \"optional connection note\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_dm\",\n \"section\": \"LinkedIn\",\n \"label\": \"DM\",\n \"columnType\": \"send_dm\",\n \"displayName\": \"DM\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"DM\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false,\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 3\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false\n },\n \"inputMapping\": {\n \"message\": {\n \"value\": \"{{Generate Message.body}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_dm\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"message body\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_open\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Open Profile)\",\n \"columnType\": \"send_inmail_open\",\n \"displayName\": \"InMail (Open Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Open Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackToClosedInmail\": true,\n \"minPaidInmailCreditsForFallback\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_open\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_closed\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Closed Profile)\",\n \"columnType\": \"send_inmail_closed\",\n \"displayName\": \"InMail (Closed Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Closed Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackAcrossTiers\": false,\n \"minPaidInmailCreditsForSend\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_closed\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"react_and_comment\",\n \"section\": \"LinkedIn\",\n \"label\": \"React & Comment\",\n \"columnType\": \"react_and_comment\",\n \"displayName\": \"React & Comment\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"React & Comment\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.react_and_comment\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn post URL\",\n \"comment text\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"text\",\n \"section\": \"Data\",\n \"label\": \"Text\",\n \"columnType\": \"text\",\n \"displayName\": \"Text\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Text\",\n \"defaultConfig\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"configFixture\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"validationOwners\": [\n \"textConfigSchema\"\n ],\n \"runtimeOwner\": \"display/manual text owner\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"checkbox\",\n \"section\": \"Data\",\n \"label\": \"Checkbox\",\n \"columnType\": \"checkbox\",\n \"displayName\": \"Checkbox\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Checkbox\",\n \"defaultConfig\": {\n \"default\": false\n },\n \"configFixture\": {\n \"default\": false,\n \"editable\": true\n },\n \"validationOwners\": [\n \"checkboxConfigSchema\"\n ],\n \"runtimeOwner\": \"checkbox cell executor\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.action\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn Action\",\n \"columnType\": \"action\",\n \"displayName\": \"LinkedIn Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn Action\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.datetime\",\n \"section\": \"Hidden Active\",\n \"label\": \"Date/Time\",\n \"columnType\": \"datetime\",\n \"displayName\": \"Date/Time\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Date/Time\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.eligible_senders\",\n \"section\": \"Hidden Active\",\n \"label\": \"Eligible Senders\",\n \"columnType\": \"eligible_senders\",\n \"displayName\": \"Eligible Senders\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Eligible Senders\",\n \"defaultConfig\": {\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.example_checkbox\",\n \"section\": \"Hidden Active\",\n \"label\": \"Example\",\n \"columnType\": \"example_checkbox\",\n \"displayName\": \"Example\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Example\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.json\",\n \"section\": \"Hidden Active\",\n \"label\": \"JSON\",\n \"columnType\": \"json\",\n \"displayName\": \"JSON\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"JSON\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.linkedin_url\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn URL\",\n \"columnType\": \"linkedin_url\",\n \"displayName\": \"LinkedIn URL\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn URL\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.next_action_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Next Action\",\n \"columnType\": \"next_action_at\",\n \"displayName\": \"Next Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Next Action\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.reply_sentiment\",\n \"section\": \"Hidden Active\",\n \"label\": \"Reply Sentiment\",\n \"columnType\": \"reply_sentiment\",\n \"displayName\": \"Reply Sentiment\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Reply Sentiment\",\n \"defaultConfig\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.select\",\n \"section\": \"Hidden Active\",\n \"label\": \"Select\",\n \"columnType\": \"select\",\n \"displayName\": \"Select\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Select\",\n \"defaultConfig\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [\n \"name\",\n \"config\"\n ],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"limited_edit_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"limited_edit_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sent_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sent At\",\n \"columnType\": \"sent_at\",\n \"displayName\": \"Sent At\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sent At\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sequence_status\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sequence Status\",\n \"columnType\": \"sequence_status\",\n \"displayName\": \"Sequence Status\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sequence Status\",\n \"defaultConfig\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_company\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Company\",\n \"columnType\": \"enrich_company\",\n \"displayName\": \"Enrich Company\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Company\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_person\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Prospect (legacy)\",\n \"columnType\": \"enrich_person\",\n \"displayName\": \"Enrich Prospect (legacy)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Prospect (legacy)\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.generate_message_sequence\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message_sequence\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"generation\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.input\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Text Input\",\n \"columnType\": \"input\",\n \"displayName\": \"Text Input\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Text Input\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_text\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_text\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp\",\n \"displayName\": \"ICP Score\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"qualificationThreshold\": 60\n },\n \"configFixture\": {\n \"qualificationThreshold\": 60\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp_rubric\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Rubric Score (legacy alias)\",\n \"columnType\": \"score_icp_rubric\",\n \"displayName\": \"ICP Rubric Score (legacy alias)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Rubric Score (legacy alias)\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": []\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n }\n ]\n}";
|
|
2
2
|
export const columnSchemaManifest = JSON.parse(manifestJson);
|
|
3
3
|
export const createableColumnTypes = columnSchemaManifest.createableTypes;
|
|
4
4
|
export function getCreateableColumnTypeSet() {
|
package/dist/server.js
CHANGED
|
@@ -15,6 +15,7 @@ import { handleDeleteColumn } from "./tools/column-delete.js";
|
|
|
15
15
|
import { handleReorderColumns } from "./tools/column-reorder.js";
|
|
16
16
|
import { handleGetColumnSchema, handleListColumnTypes, } from "./tools/column-schema.js";
|
|
17
17
|
import { handleUpdateColumn } from "./tools/column-update.js";
|
|
18
|
+
import { getCompanyInfoTool, setCompanyInfoTool, } from "./tools/company-info.js";
|
|
18
19
|
import { calculateLinkedInHookPreviewTool, capturePostIdeaTool, getPostDraftTool, getPostIdeaTool, getPublishedPostTool, listPostDraftIterationsTool, listPostDraftsTool, listPostIdeasTool, listPublishedPostsTool, markPostPublishedTool, renderLinkedInPostPreviewTool, saveHookResearchTool, savePostDraftTool, updatePostDraftTool, updatePublishedPostMetricsTool, } from "./tools/content-posts.js";
|
|
19
20
|
import { getCampaignContext, hydrateCampaignContextFromCampaign, markCampaignContextDirty, } from "./tools/context.js";
|
|
20
21
|
import { addToCommentCampaign, addToConnectionCampaign, addToInmailCampaign, getEngagedPosts, getOrCreateDirectCampaignTable, pauseDirectCampaign, startDirectCampaign, } from "./tools/direct-campaigns.js";
|
|
@@ -36,6 +37,7 @@ import { waitForCampaignTableReady, waitForLeadListReady, } from "./tools/readin
|
|
|
36
37
|
import { allTools } from "./tools/registry.js";
|
|
37
38
|
import { getRows, getTableRows, getTableRowsMinimal } from "./tools/rows.js";
|
|
38
39
|
import { addRubricItem, checkRubric, deleteRubricItem, draftRubrics, saveRubrics, selectNecessaryRubrics, updateRubricItem, waitForRubricResults, } from "./tools/rubrics.js";
|
|
40
|
+
import { getSenderRoutingTool, setSenderRoutingTool, } from "./tools/sender-routing.js";
|
|
39
41
|
import { getSender, listSenders } from "./tools/senders.js";
|
|
40
42
|
import { attachRecommendedSequence, attachSequence, createWorkflowTable, } from "./tools/sequencer.js";
|
|
41
43
|
import { exportTableCsv, listTables } from "./tools/tables.js";
|
|
@@ -432,6 +434,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
432
434
|
case "get_engaged_posts":
|
|
433
435
|
result = await getEngagedPosts(args);
|
|
434
436
|
break;
|
|
437
|
+
case "get_sender_routing":
|
|
438
|
+
result = await getSenderRoutingTool();
|
|
439
|
+
break;
|
|
440
|
+
case "set_sender_routing":
|
|
441
|
+
result = await setSenderRoutingTool(args);
|
|
442
|
+
break;
|
|
443
|
+
case "get_company_info":
|
|
444
|
+
result = await getCompanyInfoTool();
|
|
445
|
+
break;
|
|
446
|
+
case "set_company_info":
|
|
447
|
+
result = await setCompanyInfoTool(args);
|
|
448
|
+
break;
|
|
435
449
|
case "list_senders":
|
|
436
450
|
result = await listSenders();
|
|
437
451
|
break;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
type CompanyInfoResponse = {
|
|
2
|
+
companyInfoMarkdown: string | null;
|
|
3
|
+
updatedAt: string | null;
|
|
4
|
+
characterCount: number;
|
|
5
|
+
maxLength: number;
|
|
6
|
+
};
|
|
7
|
+
type CompanyInfoInput = {
|
|
8
|
+
companyInfoMarkdown?: string | null;
|
|
9
|
+
expectedUpdatedAt?: string | null;
|
|
10
|
+
forceOverwrite?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare const companyInfoToolDefinitions: ({
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: string;
|
|
17
|
+
properties: {
|
|
18
|
+
companyInfoMarkdown?: undefined;
|
|
19
|
+
expectedUpdatedAt?: undefined;
|
|
20
|
+
forceOverwrite?: undefined;
|
|
21
|
+
};
|
|
22
|
+
required: never[];
|
|
23
|
+
additionalProperties: boolean;
|
|
24
|
+
};
|
|
25
|
+
} | {
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
inputSchema: {
|
|
29
|
+
type: string;
|
|
30
|
+
properties: {
|
|
31
|
+
companyInfoMarkdown: {
|
|
32
|
+
type: string[];
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
expectedUpdatedAt: {
|
|
36
|
+
type: string[];
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
forceOverwrite: {
|
|
40
|
+
type: string;
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
required: never[];
|
|
45
|
+
additionalProperties: boolean;
|
|
46
|
+
};
|
|
47
|
+
})[];
|
|
48
|
+
export declare function getCompanyInfoTool(): Promise<CompanyInfoResponse | {
|
|
49
|
+
ok: false;
|
|
50
|
+
error: string;
|
|
51
|
+
}>;
|
|
52
|
+
export declare function setCompanyInfoTool(input?: CompanyInfoInput): Promise<{
|
|
53
|
+
ok: false;
|
|
54
|
+
saved?: false;
|
|
55
|
+
error: string;
|
|
56
|
+
status?: number;
|
|
57
|
+
authError?: boolean;
|
|
58
|
+
guidance?: string;
|
|
59
|
+
} | {
|
|
60
|
+
ok: boolean;
|
|
61
|
+
saved: boolean;
|
|
62
|
+
error: string;
|
|
63
|
+
companyInfoMarkdown?: undefined;
|
|
64
|
+
updatedAt?: undefined;
|
|
65
|
+
characterCount?: undefined;
|
|
66
|
+
maxLength?: undefined;
|
|
67
|
+
cleared?: undefined;
|
|
68
|
+
} | {
|
|
69
|
+
saved: boolean;
|
|
70
|
+
companyInfoMarkdown: string | null;
|
|
71
|
+
updatedAt: string | null;
|
|
72
|
+
characterCount: number;
|
|
73
|
+
maxLength: number;
|
|
74
|
+
cleared: boolean;
|
|
75
|
+
ok?: undefined;
|
|
76
|
+
error?: undefined;
|
|
77
|
+
}>;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { getApi, SellableApiError } from "../api.js";
|
|
2
|
+
const MAX_COMPANY_INFO_MARKDOWN_LENGTH = 65536;
|
|
3
|
+
export const companyInfoToolDefinitions = [
|
|
4
|
+
{
|
|
5
|
+
name: "get_company_info",
|
|
6
|
+
description: "Return the active workspace's canonical Company Info markdown document plus updatedAt metadata. Read this before calling set_company_info so you can pass expectedUpdatedAt and avoid overwriting someone else's edits.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {},
|
|
10
|
+
required: [],
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "set_company_info",
|
|
16
|
+
description: 'Replace the active workspace Company Info markdown document in full through the narrow Company Info API. Use real newlines, never literal "\\n" sequences. Pass expectedUpdatedAt from get_company_info for normal writes; only pass forceOverwrite: true when the user deliberately approves overwriting the latest version. Omit companyInfoMarkdown or pass null/empty/whitespace to clear Company Info.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: "object",
|
|
19
|
+
properties: {
|
|
20
|
+
companyInfoMarkdown: {
|
|
21
|
+
type: ["string", "null"],
|
|
22
|
+
description: 'Complete Company Info markdown to store verbatim. Use real newlines, not literal "\\n" sequences. Empty, null, or omitted markdown clears Company Info.',
|
|
23
|
+
},
|
|
24
|
+
expectedUpdatedAt: {
|
|
25
|
+
type: ["string", "null"],
|
|
26
|
+
description: "The updatedAt returned by get_company_info. Use null only when get_company_info returned updatedAt: null for an unconfigured document.",
|
|
27
|
+
},
|
|
28
|
+
forceOverwrite: {
|
|
29
|
+
type: "boolean",
|
|
30
|
+
description: "Set true only when the user explicitly approves overwriting without an expectedUpdatedAt guard.",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
required: [],
|
|
34
|
+
additionalProperties: false,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
function isCompanyInfoResponse(value) {
|
|
39
|
+
if (!value || typeof value !== "object")
|
|
40
|
+
return false;
|
|
41
|
+
const data = value;
|
|
42
|
+
const markdown = data.companyInfoMarkdown;
|
|
43
|
+
const updatedAt = data.updatedAt;
|
|
44
|
+
return ((typeof markdown === "string" || markdown === null) &&
|
|
45
|
+
(typeof updatedAt === "string" || updatedAt === null) &&
|
|
46
|
+
typeof data.characterCount === "number" &&
|
|
47
|
+
typeof data.maxLength === "number");
|
|
48
|
+
}
|
|
49
|
+
function parseErrorBody(body) {
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(body);
|
|
52
|
+
for (const value of [parsed.message, parsed.error, parsed.details]) {
|
|
53
|
+
if (typeof value === "string" && value.trim()) {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Body is plain text or invalid JSON; return it as-is below.
|
|
60
|
+
}
|
|
61
|
+
return body;
|
|
62
|
+
}
|
|
63
|
+
function toolError(action, error) {
|
|
64
|
+
if (error instanceof SellableApiError) {
|
|
65
|
+
const reason = parseErrorBody(error.body);
|
|
66
|
+
return {
|
|
67
|
+
ok: false,
|
|
68
|
+
...(action === "save" ? { saved: false } : {}),
|
|
69
|
+
error: `Failed to ${action} Company Info: ${reason}`,
|
|
70
|
+
status: error.status,
|
|
71
|
+
authError: error.isAuthError,
|
|
72
|
+
...(error.guidance ? { guidance: error.guidance } : {}),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
76
|
+
return {
|
|
77
|
+
ok: false,
|
|
78
|
+
...(action === "save" ? { saved: false } : {}),
|
|
79
|
+
error: `Failed to ${action} Company Info: ${reason}`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function normalizeCompanyInfoResponse(value) {
|
|
83
|
+
if (!isCompanyInfoResponse(value)) {
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
error: "Company Info API returned a malformed response. Retry after refreshing the Sellable MCP package.",
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
export async function getCompanyInfoTool() {
|
|
92
|
+
try {
|
|
93
|
+
const api = getApi();
|
|
94
|
+
const response = await api.get("/api/v3/reply-management/company-info");
|
|
95
|
+
return normalizeCompanyInfoResponse(response);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return toolError("read", error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export async function setCompanyInfoTool(input = {}) {
|
|
102
|
+
const markdown = typeof input.companyInfoMarkdown === "string"
|
|
103
|
+
? input.companyInfoMarkdown
|
|
104
|
+
: null;
|
|
105
|
+
const normalizedMarkdown = markdown?.trim() ? markdown : null;
|
|
106
|
+
if (typeof markdown === "string" &&
|
|
107
|
+
markdown.length > MAX_COMPANY_INFO_MARKDOWN_LENGTH) {
|
|
108
|
+
return {
|
|
109
|
+
ok: false,
|
|
110
|
+
saved: false,
|
|
111
|
+
error: `companyInfoMarkdown exceeds the 64KB limit (got ${markdown.length} chars). Shorten the Company Info document and retry.`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (input.forceOverwrite !== true && input.expectedUpdatedAt === undefined) {
|
|
115
|
+
return {
|
|
116
|
+
ok: false,
|
|
117
|
+
saved: false,
|
|
118
|
+
error: "expectedUpdatedAt is required for set_company_info. Call get_company_info first, then retry with the returned updatedAt value, or pass forceOverwrite: true only after explicit user approval.",
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const payload = {
|
|
122
|
+
companyInfoMarkdown: normalizedMarkdown,
|
|
123
|
+
};
|
|
124
|
+
if (input.forceOverwrite === true) {
|
|
125
|
+
payload.forceOverwrite = true;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
payload.expectedUpdatedAt = input.expectedUpdatedAt ?? null;
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const api = getApi();
|
|
132
|
+
const response = await api.put("/api/v3/reply-management/company-info", payload);
|
|
133
|
+
const normalizedResponse = normalizeCompanyInfoResponse(response);
|
|
134
|
+
if ("ok" in normalizedResponse) {
|
|
135
|
+
return {
|
|
136
|
+
...normalizedResponse,
|
|
137
|
+
saved: false,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
saved: true,
|
|
142
|
+
companyInfoMarkdown: normalizedResponse.companyInfoMarkdown,
|
|
143
|
+
updatedAt: normalizedResponse.updatedAt,
|
|
144
|
+
characterCount: normalizedResponse.characterCount,
|
|
145
|
+
maxLength: normalizedResponse.maxLength,
|
|
146
|
+
cleared: normalizedResponse.companyInfoMarkdown === null,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
return toolError("save", error);
|
|
151
|
+
}
|
|
152
|
+
}
|
package/dist/tools/registry.js
CHANGED
|
@@ -11,6 +11,7 @@ import { columnDeleteToolDefinitions } from "./column-delete.js";
|
|
|
11
11
|
import { columnReorderToolDefinitions } from "./column-reorder.js";
|
|
12
12
|
import { columnSchemaToolDefinitions } from "./column-schema.js";
|
|
13
13
|
import { columnUpdateToolDefinitions } from "./column-update.js";
|
|
14
|
+
import { companyInfoToolDefinitions } from "./company-info.js";
|
|
14
15
|
import { contentPostToolDefinitions } from "./content-posts.js";
|
|
15
16
|
import { contextToolDefinitions } from "./context.js";
|
|
16
17
|
import { directCampaignToolDefinitions } from "./direct-campaigns.js";
|
|
@@ -31,6 +32,7 @@ import { promptToolDefinitions } from "./prompts.js";
|
|
|
31
32
|
import { readinessToolDefinitions } from "./readiness.js";
|
|
32
33
|
import { rowToolDefinitions } from "./rows.js";
|
|
33
34
|
import { rubricToolDefinitions } from "./rubrics.js";
|
|
35
|
+
import { senderRoutingToolDefinitions } from "./sender-routing.js";
|
|
34
36
|
import { senderToolDefinitions } from "./senders.js";
|
|
35
37
|
import { sequencerToolDefinitions } from "./sequencer.js";
|
|
36
38
|
import { tableToolDefinitions } from "./tables.js";
|
|
@@ -66,6 +68,8 @@ export const allTools = [
|
|
|
66
68
|
...linkedinToolDefinitions,
|
|
67
69
|
...onDemandToolDefinitions,
|
|
68
70
|
...directCampaignToolDefinitions,
|
|
71
|
+
...companyInfoToolDefinitions,
|
|
72
|
+
...senderRoutingToolDefinitions,
|
|
69
73
|
...senderToolDefinitions,
|
|
70
74
|
...engageStateToolDefinitions,
|
|
71
75
|
...engageMemoryToolDefinitions,
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
type SenderRoutingResponse = {
|
|
2
|
+
configured: boolean;
|
|
3
|
+
rulesMarkdown: string | null;
|
|
4
|
+
senders: Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
name: string | null;
|
|
7
|
+
}>;
|
|
8
|
+
senderCount: number;
|
|
9
|
+
updatedAt: string | null;
|
|
10
|
+
};
|
|
11
|
+
export declare const senderRoutingToolDefinitions: ({
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: string;
|
|
16
|
+
properties: {
|
|
17
|
+
rulesMarkdown?: undefined;
|
|
18
|
+
};
|
|
19
|
+
required: never[];
|
|
20
|
+
additionalProperties: boolean;
|
|
21
|
+
};
|
|
22
|
+
} | {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: string;
|
|
27
|
+
properties: {
|
|
28
|
+
rulesMarkdown: {
|
|
29
|
+
type: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
required: never[];
|
|
34
|
+
additionalProperties: boolean;
|
|
35
|
+
};
|
|
36
|
+
})[];
|
|
37
|
+
export declare function getSenderRoutingTool(): Promise<SenderRoutingResponse>;
|
|
38
|
+
export declare function setSenderRoutingTool(input?: {
|
|
39
|
+
rulesMarkdown?: string;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
ok: boolean;
|
|
42
|
+
error: string;
|
|
43
|
+
saved?: undefined;
|
|
44
|
+
configured?: undefined;
|
|
45
|
+
rulesMarkdown?: undefined;
|
|
46
|
+
characterCount?: undefined;
|
|
47
|
+
senders?: undefined;
|
|
48
|
+
senderCount?: undefined;
|
|
49
|
+
note?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
saved: boolean;
|
|
52
|
+
configured: boolean;
|
|
53
|
+
rulesMarkdown: string | null;
|
|
54
|
+
characterCount: number;
|
|
55
|
+
senders: {
|
|
56
|
+
id: string;
|
|
57
|
+
name: string | null;
|
|
58
|
+
}[];
|
|
59
|
+
senderCount: number;
|
|
60
|
+
note: string;
|
|
61
|
+
ok?: undefined;
|
|
62
|
+
error?: undefined;
|
|
63
|
+
}>;
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { getApi } from "../api.js";
|
|
2
|
+
const MAX_RULES_MARKDOWN_LENGTH = 65536;
|
|
3
|
+
export const senderRoutingToolDefinitions = [
|
|
4
|
+
{
|
|
5
|
+
name: "get_sender_routing",
|
|
6
|
+
description: "Return the workspace's territory routing rules markdown plus the connected sender roster. If configured is false, routing is inactive and all campaign senders are eligible everywhere.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {},
|
|
10
|
+
required: [],
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "set_sender_routing",
|
|
16
|
+
description: 'Store free-form sender territory routing markdown verbatim for the active workspace. Use real newlines, never literal "\\n" sequences. Geography, segments, verticals, and named-account exceptions are all valid. Omit rulesMarkdown or pass an empty string to clear the rules and disable routing. Senders not mentioned in rules remain globally eligible. The response echoes the stored markdown and full sender roster; verify every sender is covered by a rule or intentionally unrestricted, then confirm coverage with the user.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: "object",
|
|
19
|
+
properties: {
|
|
20
|
+
rulesMarkdown: {
|
|
21
|
+
type: "string",
|
|
22
|
+
description: 'Free-form markdown rules to store verbatim. Use real newlines, not literal "\\n" sequences. Empty or omitted markdown clears the rules.',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: [],
|
|
26
|
+
additionalProperties: false,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
export async function getSenderRoutingTool() {
|
|
31
|
+
const api = getApi();
|
|
32
|
+
return api.get("/api/v3/sender-routing");
|
|
33
|
+
}
|
|
34
|
+
export async function setSenderRoutingTool(input = {}) {
|
|
35
|
+
if (input.rulesMarkdown &&
|
|
36
|
+
input.rulesMarkdown.length > MAX_RULES_MARKDOWN_LENGTH) {
|
|
37
|
+
return {
|
|
38
|
+
ok: false,
|
|
39
|
+
error: `rulesMarkdown exceeds the 64KB limit (got ${input.rulesMarkdown.length} chars). Shorten the rules and retry.`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const api = getApi();
|
|
43
|
+
const response = await api.put("/api/v3/sender-routing", {
|
|
44
|
+
rulesMarkdown: input.rulesMarkdown?.trim() ? input.rulesMarkdown : null,
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
saved: true,
|
|
48
|
+
configured: response.configured,
|
|
49
|
+
rulesMarkdown: response.rulesMarkdown,
|
|
50
|
+
characterCount: response.rulesMarkdown?.length ?? 0,
|
|
51
|
+
senders: response.senders,
|
|
52
|
+
senderCount: response.senderCount,
|
|
53
|
+
note: response.senderCount === 0
|
|
54
|
+
? "Rules saved but no connected senders to route - coverage cannot be verified. Connect senders, then re-check routing coverage."
|
|
55
|
+
: "Verify every sender above is either covered by a rule or intentionally unrestricted, then confirm coverage with the user.",
|
|
56
|
+
};
|
|
57
|
+
}
|
package/package.json
CHANGED
|
@@ -177,16 +177,18 @@ read/edit/delete safety, but they are not valid `add_column` or
|
|
|
177
177
|
- type: `check_paid_inmail_credits`
|
|
178
178
|
- displayName: `Check Paid InMail Credits`
|
|
179
179
|
- category: LinkedIn Actions
|
|
180
|
-
- inputs: sender/campaign context
|
|
181
|
-
`is_open_profile` returns false.
|
|
180
|
+
- inputs: sender/campaign context, sender-scoped Sales Navigator credit state,
|
|
181
|
+
and a closed-profile branch, usually after `is_open_profile` returns false.
|
|
182
182
|
- config: optional `minPaidInmailCreditsForSend`; defaults to the paid InMail
|
|
183
183
|
send threshold used by the closed-profile InMail action.
|
|
184
|
-
- outputs: `has_paid_inmail_credits`, available credit count, freshness
|
|
185
|
-
metadata, and reason labels for blocked sends.
|
|
186
|
-
- when to use: Use
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
184
|
+
- outputs: `has_paid_inmail_credits`, available credit count, freshness or
|
|
185
|
+
stale-state metadata, and reason labels for blocked sends.
|
|
186
|
+
- when to use: Use after Check Open Profile says a prospect is closed-profile
|
|
187
|
+
and the sequence is explicitly allowed to spend paid InMail credits. Branch
|
|
188
|
+
yes to `send_inmail_closed`; branch no to `check_connection` or invite flow.
|
|
189
|
+
- when NOT to use: Do not use for free open-profile InMail, do not spend
|
|
190
|
+
credits from this check itself, and do not add it unless the campaign policy
|
|
191
|
+
opts into the paid-InMail fallback mode.
|
|
190
192
|
|
|
191
193
|
### Check Connection
|
|
192
194
|
|
|
@@ -211,20 +213,19 @@ read/edit/delete safety, but they are not valid `add_column` or
|
|
|
211
213
|
direct `send_dm` is acceptable because `send_dm` also performs the runtime
|
|
212
214
|
connection lookup.
|
|
213
215
|
|
|
214
|
-
###
|
|
216
|
+
### Eligible Senders
|
|
215
217
|
|
|
216
|
-
- type: `
|
|
217
|
-
- displayName: `
|
|
218
|
+
- type: `eligible_senders`
|
|
219
|
+
- displayName: `Eligible Senders`
|
|
218
220
|
- category: LinkedIn Actions
|
|
219
|
-
- inputs: sender
|
|
220
|
-
- outputs:
|
|
221
|
-
|
|
222
|
-
- when to use: Use
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
the paid-InMail fallback mode.
|
|
221
|
+
- inputs: campaign sender roster plus workspace sender territory rules.
|
|
222
|
+
- outputs: surviving sender ids, optional assigned sender, rules hash, and
|
|
223
|
+
classification reasoning.
|
|
224
|
+
- when to use: Use before LinkedIn send/action columns when a multi-sender
|
|
225
|
+
campaign must respect territory rules before scheduling or budget allocation.
|
|
226
|
+
- when NOT to use: Do not use for single-sender campaigns or as a replacement
|
|
227
|
+
for connection/open-profile/credit checks; it only narrows which campaign
|
|
228
|
+
senders are territory-eligible.
|
|
228
229
|
|
|
229
230
|
### LinkedIn Action
|
|
230
231
|
|
|
@@ -39,7 +39,13 @@ Default evergreen plan per workspace (override only if the prompt specifies diff
|
|
|
39
39
|
|
|
40
40
|
- The sequence is auto-selected by sender tier; do not hand-author sequence templates here. Never select a paid-InMail template.
|
|
41
41
|
3. **Verify each slot** after create/reuse: `get_campaign` shows the table exists and a sequence is attached (`list_tables({ hasSequence: true })` as a cross-check).
|
|
42
|
-
4. **
|
|
42
|
+
4. **Confirm the message template with the user — and check it reads chat-native.** Show the exact first-message template each created campaign's brief carries and ask the user to confirm or adjust it before moving on. Because DM copy may send paragraph-by-paragraph (each blank-line block becomes its own message), every paragraph must read like something a human literally typed as a separate chat message:
|
|
43
|
+
- **No letter punctuation.** `Hey {{first_name}}` — never `Hey {{first_name}},` (nobody types a trailing comma and hits send). No `Dear`, no sign-offs, no `Best,`.
|
|
44
|
+
- Each paragraph stands alone as a message — short, lowercase-casual is fine, sentence fragments are fine.
|
|
45
|
+
- No paragraph should depend on letter formatting (no "As I mentioned above" referencing layout).
|
|
46
|
+
If the template violates these, propose the chat-native version and ask; on approval, update the brief via `update_campaign_brief` and show the final version.
|
|
47
|
+
5. **Prove the template on one real row.** For ONE campaign that has at least one lead row (add one via `add_on_demand_leads` if every lane is empty and the user provides/approves a test lead), generate a message for exactly one row (`queue_campaign_cells` with `columnRole: "generateMessage"`, `rowSelector: { type: "reviewBatch", limit: 1 }` or the single row's ID), wait for it, then show the user the generated message next to the template — AND show how it would split if paragraph-per-message sending is enabled (list each paragraph as `msg 1:`, `msg 2:`, …) so the user confirms each one reads like a real typed message. Check alignment: tone, structure, no internal vocabulary, correct token substitution, no letter punctuation. Do NOT approve the row or generate for more rows — one sample only.
|
|
48
|
+
6. **Report the reconcile plan and result** — every slot tagged `reused` or `created`, plus the confirmed template and the sample message:
|
|
43
49
|
|
|
44
50
|
```
|
|
45
51
|
Evergreen Reconcile — {date}
|