json Copy
{
"schema_version" : "product_capabilities.v1" ,
"api_version" : "2026-09-27" ,
"base_url" : "https://app.autotouch.ai" ,
"authentication" : {
"header" : "Authorization: Bearer <developer_api_key>" ,
"scopes" : [
"columns:run" ,
"columns:write" ,
"integrations:read" ,
"users:read" ,
"jobs:read" ,
"leads:read" ,
"leads:write" ,
"linkedin:read" ,
"prompts:read" ,
"prompts:write" ,
"search:run" ,
"secrets:read" ,
"secrets:write" ,
"sequences:read" ,
"sequences:run" ,
"sequences:write" ,
"tables:read" ,
"tables:write" ,
"tasks:read" ,
"tasks:write" ,
"webhooks:read" ,
"webhooks:write"
]
},
"endpoints" : {
"list_columns" : {
"method" : "GET" ,
"path" : "/api/tables/{table_id}/columns" ,
"required_scope" : "tables:read"
},
"create_column" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/columns" ,
"required_scope" : "columns:write"
},
"create_projection_columns" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/columns/projections" ,
"required_scope" : "columns:write"
},
"delete_column" : {
"method" : "DELETE" ,
"path" : "/api/tables/{table_id}/columns/{column_id}" ,
"required_scope" : "columns:write"
},
"run_column" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/columns/{column_id}/run" ,
"required_scope" : "columns:run" ,
"run_scopes" : ["all" , "subset" , "row" , "firstN" , "filtered" ],
"progress_source" : "operation_runs" ,
"async_status_path" : "/api/operation-runs/{operation_run_id}" ,
"async_task_id_field" : "operationRunId" ,
"native_job_id_field" : "jobId" ,
"native_job_role" : "executor_debugging_and_compatibility"
},
"estimate_column_run" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/columns/{column_id}/estimate" ,
"required_scope" : "columns:run" ,
"run_scopes" : ["all" , "subset" , "row" , "firstN" , "filtered" ]
},
"list_bulk_jobs" : {
"method" : "GET" ,
"path" : "/api/bulk-jobs" ,
"required_scope" : "jobs:read"
},
"get_bulk_job" : {
"method" : "GET" ,
"path" : "/api/bulk-jobs/{job_id}" ,
"required_scope" : "jobs:read" ,
"research_table_role" : "native_executor_debugging_and_compatibility"
},
"get_operation_run" : {
"method" : "GET" ,
"path" : "/api/operation-runs/{operation_run_id}" ,
"required_scope" : "jobs:read"
},
"list_operation_runs" : {
"method" : "GET" ,
"path" : "/api/operation-runs" ,
"required_scope" : "jobs:read" ,
"query" : {
"resource_type" : "optional; use research_table for table recovery" ,
"resource_id" : "optional; use the table id for table recovery" ,
"status" : "optional comma-separated operation-run statuses" ,
"limit" : "optional integer, 1-100, default 20"
}
},
"query_leads" : {
"method" : "POST" ,
"path" : "/api/leads/query" ,
"required_scope" : "leads:read" ,
"response" : {
"items_field" : "leads" ,
"cursor_field" : "next_cursor" ,
"recommended_research_follow_up" : "/api/leads/query/research"
}
},
"query_leads_count" : {
"method" : "POST" ,
"path" : "/api/leads/query/count" ,
"required_scope" : "leads:read"
},
"query_leads_stats" : {
"method" : "POST" ,
"path" : "/api/leads/query/stats" ,
"required_scope" : "leads:read"
},
"query_lead_research" : {
"method" : "POST" ,
"path" : "/api/leads/query/research" ,
"required_scope" : "leads:read"
},
"get_lead_filter_metadata" : {
"method" : "GET" ,
"path" : "/api/leads/filters/metadata" ,
"required_scope" : "leads:read"
},
"get_available_lead_research_tables" : {
"method" : "GET" ,
"path" : "/api/leads/research-tables/available" ,
"required_scope" : "leads:read"
},
"search_companies" : {
"method" : "POST" ,
"path" : "/api/search/companies" ,
"required_scope" : "search:run"
},
"list_build_create" : {
"method" : "POST" ,
"path" : "/api/list-builds" ,
"required_scope" : "search:run"
},
"list_build_results" : {
"method" : "GET" ,
"path" : "/api/list-builds/{job_id}/results" ,
"required_scope" : "search:run"
},
"list_build_sync_to_table" : {
"method" : "POST" ,
"path" : "/api/list-builds/{job_id}/sync-to-table" ,
"required_scope" : "tables:write"
},
"list_build_sync_status" : {
"method" : "GET" ,
"path" : "/api/list-builds/sync-jobs/{sync_job_id}" ,
"required_scope" : "tables:read"
},
"list_build_inputs" : {
"method" : "GET" ,
"path" : "/api/list-builds/inputs" ,
"required_scope" : "search:run"
},
"list_build_input_search" : {
"method" : "GET" ,
"path" : "/api/list-builds/inputs/search" ,
"required_scope" : "search:run"
},
"search_people" : {
"method" : "POST" ,
"path" : "/api/search/people" ,
"required_scope" : "search:run"
},
"search_similar_companies" : {
"method" : "POST" ,
"path" : "/api/search/similar-companies" ,
"required_scope" : "search:run"
},
"search_news" : {
"method" : "POST" ,
"path" : "/api/search/news" ,
"required_scope" : "search:run"
},
"search_local_businesses" : {
"method" : "POST" ,
"path" : "/api/search/local-businesses" ,
"required_scope" : "search:run"
},
"search_reviews" : {
"method" : "POST" ,
"path" : "/api/search/reviews" ,
"required_scope" : "search:run"
},
"search_filings" : {
"method" : "POST" ,
"path" : "/api/search/filings" ,
"required_scope" : "search:run"
},
"import_csv_optimized" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/import-optimized" ,
"required_scope" : "tables:write" ,
"async_task_id_field" : "task_id"
},
"validate_csv" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/csv-validate" ,
"required_scope" : "tables:write"
},
"get_import_status" : {
"method" : "GET" ,
"path" : "/api/tables/{table_id}/import-status/{task_id}" ,
"required_scope" : "tables:read"
},
"verify_import" : {
"method" : "GET" ,
"path" : "/api/tables/{table_id}/import-verify/{task_id}" ,
"required_scope" : "tables:read"
},
"rollback_import" : {
"method" : "POST" ,
"path" : "/api/tables/{table_id}/import-rollback/{task_id}" ,
"required_scope" : "tables:write"
},
"create_sequence" : {
"method" : "POST" ,
"path" : "/api/sequences" ,
"required_scope" : "sequences:write" ,
"query" : { "actorUserId" : "optional" }
},
"set_sequence_status" : {
"method" : "PATCH" ,
"path" : "/api/sequences/{sequence_id}/status" ,
"required_scope" : "sequences:run" ,
"query" : { "actorUserId" : "optional" }
},
"enroll_sequence_leads" : {
"method" : "POST" ,
"path" : "/api/sequences/{sequence_id}/enroll" ,
"required_scope" : "sequences:run" ,
"query" : { "actorUserId" : "optional" },
"async_status_path" : "/api/bulk-jobs/{job_id}" ,
"assignee_default_sender_path" : "set assignedToUserId and omit senderAccountIds/assignmentPlan" ,
"advanced_sender_routing" : ["senderAccountIds" , "assignmentPlan" , "routingMode" ],
"conflict_guard_field" : "skipActiveSequenceConflicts"
},
"list_sender_accounts" : {
"method" : "GET" ,
"path" : "/api/sender-accounts" ,
"required_scope" : "integrations:read" ,
"query" : { "channel" : "optional email|linkedin" , "includeAll" : "optional admin-only" }
},
"get_sender_account" : {
"method" : "GET" ,
"path" : "/api/sender-accounts/{sender_account_id}" ,
"required_scope" : "integrations:read"
},
"set_default_sender_account" : {
"method" : "POST" ,
"path" : "/api/sender-accounts/{sender_account_id}/default" ,
"required_scope" : "user_session_owner_or_admin"
},
"grant_sender_account_delegation" : {
"method" : "POST" ,
"path" : "/api/sender-accounts/{sender_account_id}/delegations" ,
"required_scope" : "user_session_owner_or_admin"
},
"revoke_sender_account_delegation" : {
"method" : "DELETE" ,
"path" : "/api/sender-accounts/{sender_account_id}/delegations/{delegate_user_id}" ,
"required_scope" : "user_session_owner_or_admin"
},
"create_tasks" : {
"method" : "POST" ,
"path" : "/api/task-queue/create" ,
"required_scope" : "tasks:write" ,
"query" : { "actorUserId" : "optional" }
},
"generate_task_draft" : {
"method" : "POST" ,
"path" : "/api/task-queue/{task_id}/draft" ,
"required_scope" : "tasks:write" ,
"query" : { "actorUserId" : "optional" }
},
"list_workspace_secrets" : {
"method" : "GET" ,
"path" : "/api/workspace-secrets" ,
"required_scope" : "secrets:read"
},
"list_workspace_secret_names" : {
"method" : "GET" ,
"path" : "/api/workspace-secrets/names" ,
"required_scope" : "secrets:read"
},
"upsert_workspace_secret" : {
"method" : "POST" ,
"path" : "/api/workspace-secrets" ,
"required_scope" : "secrets:write"
},
"delete_workspace_secret" : {
"method" : "DELETE" ,
"path" : "/api/workspace-secrets/{name}" ,
"required_scope" : "secrets:write"
},
"list_prompt_templates" : {
"method" : "GET" ,
"path" : "/api/enrichments/prompt-templates" ,
"required_scope" : "prompts:read"
},
"create_prompt_template" : {
"method" : "POST" ,
"path" : "/api/enrichments/prompt-templates" ,
"required_scope" : "prompts:write"
},
"update_prompt_template" : {
"method" : "PATCH" ,
"path" : "/api/enrichments/prompt-templates/{template_id}" ,
"required_scope" : "prompts:write"
},
"delete_prompt_template" : {
"method" : "DELETE" ,
"path" : "/api/enrichments/prompt-templates/{template_id}" ,
"required_scope" : "prompts:write"
}
},
"column_types" : [
{
"type" : "llm_enrichment" ,
"kind" : "enrichment" ,
"runnable" : true ,
"mode_field" : "config.mode" ,
"supported_modes" : ["basic" , "agent" ],
"modes" : {
"basic" : {
"label" : "Basic" ,
"description" : "Single-pass prompt enrichment for standard extraction/transforms."
},
"agent" : {
"label" : "Agent" ,
"description" : "Tool-assisted research workflow for hard-to-find or sparse data."
}
},
"model_selection" : {
"managed_by" : "llm_router_capability_lane" ,
"lane_field" : "config.llmLane" ,
"user_selectable" : false
}
},
{
"type" : "formatter_formula" ,
"kind" : "formatter" ,
"runnable" : true ,
"billing" : { "billable" : false , "credits" : 0 }
},
{
"type" : "json_split" ,
"kind" : "manual" ,
"runnable" : false ,
"create_via" : "/api/tables/{table_id}/columns/projections" ,
"billing" : { "billable" : false , "credits" : 0 }
},
{
"type" : "lead_finder" ,
"recommended_for" : [
"explicit lead list building" ,
"company/domain driven discovery"
],
"fallback_for_hard_cases" : {
"type" : "llm_enrichment" ,
"mode" : "agent"
}
},
{
"type" : "email_finder" ,
"provider" : {
"public_key" : "email_finder" ,
"engine" : "smart_email_finder" ,
"selection" : "server_managed"
}
},
{
"type" : "phone_finder" ,
"provider" : {
"public_key" : "phone_finder" ,
"engine" : "smart_phone_finder" ,
"selection" : "server_managed"
}
},
{
"type" : "http_request" ,
"kind" : "enrichment" ,
"runnable" : true ,
"description" : "Call an external HTTP endpoint per row and store the parsed response body." ,
"billing" : { "billable" : false , "credits" : 0 },
"template_syntax" : {
"row_values" : "{{column_key}}" ,
"secrets" : "{{secrets.name}}"
}
}
],
"filtering" : {
"supported" : true ,
"run_scopes" : ["filtered" , "subset" , "row" , "firstN" , "all" ],
"modes" : ["and" , "or" ],
"defaults" : { "unprocessed_only" : true },
"execution_order" : ["filters" , "unprocessed_only" , "first_n" ],
"estimate_run_behavior" : {
"estimate_executes_rows" : false ,
"estimate_billable" : false ,
"run_executes_rows" : true
}
},
"automation" : {
"auto_run" : {
"supported" : true ,
"mode_field" : "autoRun" ,
"supported_modes" : ["never" , "onInsert" , "onSourceUpdate" ],
"row_condition" : {
"supported" : true ,
"field" : "config.runCondition" ,
"schema_version" : "automation_predicate_v1" ,
"node_types" : ["condition" , "all" , "any" , "not" ],
"absence_means" : "all_rows"
}
},
"providers" : {
"formatter" : {
"display_name" : "Formatter" ,
"recipe_type" : "formatter" ,
"dispatch_strategy" : "bulk_queue" ,
"setup_contract" : {
"formula_field" : "config.formula" ,
"source_columns_field" : "config.sourceColumns" ,
"auto_run_policy" : "onSourceUpdate"
},
"save_time_backfill" : {
"supported" : true ,
"entrypoint" : "formatter_scheduler" ,
"triggers" : ["create" , "update" ],
"policies" : ["onsourceupdate" ]
}
},
"llm" : {
"display_name" : "LLM Enrichment" ,
"recipe_type" : "llm_enrichment" ,
"dispatch_strategy" : "bulk_queue" ,
"setup_contract" : {
"provider_selection" : "llm_router" ,
"provider_values" : ["llm" ],
"lane_field" : "config.llmLane" ,
"default_lanes" : {
"basic" : "very_fast" ,
"agent_lite" : "very_fast" ,
"agent_heavy" : "very_fast"
},
"mode_field" : "config.mode" ,
"supported_modes" : ["basic" , "agent" ],
"prompt_authoring" : {
"generated" : {
"instructions_field" : "config.instructions" ,
"prompt_source" : "generated" ,
"materialized_prompt_fields" : ["config.advancedPrompt" ]
},
"manual" : {
"prompt_field" : "config.advancedPrompt" ,
"prompt_source" : "manual"
}
}
},
"save_time_backfill" : {
"supported" : true ,
"entrypoint" : "provider_save_hook" ,
"triggers" : ["create" , "update" ],
"policies" : ["oninsert" , "onsourceupdate" ]
}
},
"sync_to_table" : {
"display_name" : "Sync to Table" ,
"recipe_type" : "sync_to_table" ,
"dispatch_strategy" : "sync_to_table_prefilter" ,
"action_provider" : true ,
"setup_contract" : {
"primary_provider_value" : "sync_to_table" ,
"sync_mode_field" : "config.syncMode" ,
"sync_behavior_field" : "config.syncBehavior" ,
"supported_sync_modes" : ["row" , "list" ],
"supported_behaviors" : ["link" , "copy" ],
"default_behavior" : "link" ,
"router_mode" : {
"routes_field" : "config.routes" ,
"first_match_wins" : true ,
"condition_scope" : "parent_row"
},
"list_mode" : {
"list_source_column_field" : "config.listSourceColumnId" ,
"list_path_field" : "config.listPath" ,
"default_list_path" : "items" ,
"canonical_items_root" : "items" ,
"mapping_scopes" : ["row" , "item" ],
"item_mapping_field" : "config.columnMappings[].itemKey" ,
"row_mapping_field" : "config.columnMappings[].sourceKey" ,
"nested_row_path_field" : "config.columnMappings[].path" ,
"blank_item_policy" : "skip"
},
"destination_schema" : {
"auto_create_missing_columns" : true ,
"auto_create_scope" : "explicit mapped destKey values"
}
},
"save_time_backfill" : {
"supported" : false ,
"entrypoint" : null ,
"triggers" : [],
"policies" : []
}
},
"add_to_sequence" : {
"display_name" : "Add to Sequence" ,
"recipe_type" : "add_to_sequence" ,
"dispatch_strategy" : "bulk_queue" ,
"action_provider" : true ,
"setup_contract" : {
"primary_provider_value" : "add_to_sequence" ,
"sequence_id_field" : "config.sequenceId" ,
"source_lead_column_field" : "config.sourceLeadColumn" ,
"assignee_field" : "config.assignedToUserId" ,
"easy_path" : "set assignedToUserId and omit senderAccountIds/assignmentPlan so the assignee's default connected senders are used" ,
"skip_conflicts_field" : "config.skipActiveSequenceConflicts" ,
"advanced_sender_fields" : ["config.senderAccountIds" , "config.assignmentPlan" , "config.routingMode" ],
"routing_modes" : ["single" , "round_robin" , "weighted_round_robin" ]
},
"save_time_backfill" : {
"supported" : false ,
"entrypoint" : null ,
"triggers" : [],
"policies" : []
}
},
"add_to_crm" : {
"display_name" : "Add to Leads" ,
"recipe_type" : "add_to_crm" ,
"dispatch_strategy" : "bulk_queue" ,
"action_provider" : true ,
"setup_contract" : {
"primary_provider_value" : "add_to_crm" ,
"field_mappings_field" : "config.fieldMappings" ,
"source_columns_field" : "config.sourceColumns" ,
"eligibility" : "company domain plus at least one valid LinkedIn URL, email, or phone must resolve from mapped source columns" ,
"structured_source_mapping" : {
"rule" : "primitive columns map directly; structured columns require explicit path" ,
"field" : "config.fieldMappings.*.path" ,
"examples" : [
"emailAddresses[].path = response" ,
"phoneNumbers[].path = mobile_number"
]
},
"multi_source_mapping" : {
"field" : "config.fieldMappings.leadSources" ,
"source_kinds" : ["row" , "array" ],
"common_parent_fields" : "config.fieldMappings.common" ,
"array_item_token" : "__array_item" ,
"array_source_fields" : ["sourceColumn" , "sourceArrayPath" ],
"template_rule" : "template fields map canonical lead fields from row columns or __array_item paths"
}
},
"save_time_backfill" : {
"supported" : false ,
"entrypoint" : null ,
"triggers" : [],
"policies" : []
}
},
"http_request" : {
"display_name" : "HTTP Request" ,
"recipe_type" : "http_request" ,
"dispatch_strategy" : "bulk_queue" ,
"setup_contract" : {
"primary_provider_value" : "http_request" ,
"url_field" : "config.url" ,
"method_field" : "config.method" ,
"headers_field" : "config.headers" ,
"body_field" : "config.body" ,
"timeout_field" : "config.timeoutSeconds" ,
"supported_methods" : ["GET" , "POST" , "PUT" , "PATCH" , "DELETE" , "HEAD" , "OPTIONS" ],
"template_syntax" : {
"row_values" : "{{column_key}}" ,
"secrets" : "{{secrets.name}}"
}
},
"save_time_backfill" : {
"supported" : false ,
"entrypoint" : null ,
"triggers" : [],
"policies" : []
},
"billing" : {
"billable" : false ,
"credits" : 0 ,
"notes" : "HTTP request columns do not consume research credits."
}
}
},
"workflow_blueprints" : {
"lead_finder_to_sequence" : {
"goal" : "Discover buyer leads from company rows and enroll them into an active sequence." ,
"steps" : ["lead_finder" , "add_to_sequence" ]
},
"llm_items_to_contacts_then_sequence" : {
"goal" : "Research contacts with LLM output in items[], fan them out, enrich channels, export to leads, then enroll." ,
"steps" : ["llm" , "sync_to_table" , "email_finder" , "add_to_crm" , "add_to_sequence" ]
}
}
},
"search" : {
"scope" : "search:run" ,
"provider_hidden" : true ,
"chooser" : {
"use_company_search_when" : "you still need to identify which companies fit the list" ,
"use_people_search_when" : "you already know the target companies or persona" ,
"use_linkedin_integration_when" : "LinkedIn itself is the source of truth, such as Sales Navigator URLs or post engagement"
},
"families" : {
"companies" : {
"path" : "/api/search/companies" ,
"pricing_rule" : "1 credit per 10 results"
},
"people" : {
"path" : "/api/search/people" ,
"pricing_rule" : "1 credit per 10 results"
},
"similar_companies" : {
"path" : "/api/search/similar-companies" ,
"pricing_rule" : "1 credit per 10 results"
},
"news" : {
"path" : "/api/search/news" ,
"pricing_rule" : "1 credit per 25 results"
},
"local_businesses" : {
"path" : "/api/search/local-businesses" ,
"pricing_rule" : "1 credit per 25 results"
},
"reviews" : {
"path" : "/api/search/reviews" ,
"pricing_rule" : "1 credit per 25 results"
},
"filings" : {
"path" : "/api/search/filings" ,
"pricing_rule" : "1 credit per successful search"
}
}
},
"list_builds" : {
"surface_type" : "linkedin_sourced_durable_list_build" ,
"requires_connected_account" : false ,
"public_modes" : ["companies" , "leads" ],
"pricing" : {
"companies" : "1 credit per successful company page, up to 100 companies" ,
"leads" : "1 credit per successful lead page, up to 50 leads"
},
"table_sync" : "Use POST /api/list-builds/{job_id}/sync-to-table to land completed list-build results in a Smart Table with dedupe/upsert provenance." ,
"known_input_ids" : {
"geo_ids" : {
"United States" : "103644278" ,
"Canada" : "101174742" ,
"United Kingdom" : "101165590" ,
"Germany" : "101282230" ,
"France" : "105015875" ,
"India" : "102713980"
},
"geo_ids_note" : "Examples only; list builds accept arbitrary valid LinkedIn GeoURN IDs." ,
"company_size_buckets" : ["1-10" , "11-50" , "51-200" , "201-500" , "501-1000" , "1001-5000" , "5001-10,000" , "10,001+" ],
"industry_catalog" : "GET /api/list-builds/inputs returns the active LinkedIn Industry Codes V2 catalog plus inactive/deprecated IDs." ,
"input_search" : "GET /api/list-builds/inputs/search resolves geo, industry, service, and title_skill values from Autotouch's stored input catalog." ,
"profile_language_examples" : ["en" ]
}
},
"imports" : {
"csv" : {
"transport_default" : "optimized_async" ,
"validate_only_supported" : true ,
"task_manifest_supported" : true ,
"verify_by_task_id_supported" : true ,
"rollback_by_task_id_supported" : true ,
"safety_assertions" : [
"expected_rows" ,
"required_columns" ,
"duplicate_key" ,
"require_non_empty"
],
"endpoints" : {
"import" : "/api/tables/{table_id}/import-optimized" ,
"validate" : "/api/tables/{table_id}/csv-validate" ,
"status" : "/api/tables/{table_id}/import-status/{task_id}" ,
"verify" : "/api/tables/{table_id}/import-verify/{task_id}" ,
"rollback" : "/api/tables/{table_id}/import-rollback/{task_id}"
}
}
},
"webhooks" : {
"table_ingest" : {
"enabled" : true ,
"path" : "/api/webhooks/tables/{table_id}/ingest" ,
"auth" : {
"header" : "x-autotouch-token" ,
"token_source_endpoint" : "/api/tables/{table_id}/webhook" ,
"token_exposed_in_capabilities" : false
}
}
},
"execution_policies" : {
"llm" : {
"model_selection" : "llm_router_capability_lane" ,
"runtime_details_exposed" : false ,
"user_selectable_model" : false ,
"lane_field" : "config.llmLane" ,
"supported_modes" : ["basic" , "agent" ],
"output_contract" : {
"agent" : { "default_data_type" : "json" , "supported_data_types" : ["json" ] },
"basic" : { "supported_data_types" : ["text" , "json" ], "json_requires_data_type" : "json" }
}
},
"contact_discovery" : {
"strategy_selection" : "server_managed" ,
"user_selectable_order" : false
},
"lead_research" : {
"primary_path" : "lead_finder" ,
"hard_case_path" : {
"type" : "llm_enrichment" ,
"mode" : "agent"
}
},
"workflows" : {
"sequences" : {
"supported_step_kinds" : ["EMAIL" , "CALL" , "CUSTOM" , "LINKEDIN_VISIT_PROFILE" , "LINKEDIN_CONNECT" , "LINKEDIN_MESSAGE" , "LINKEDIN_CHAT_MESSAGE" , "LINKEDIN_VOICE_MESSAGE" , "LINKEDIN_WAIT_CONNECTION" , "LINKEDIN_WAIT_REPLY" ],
"email_send_modes" : ["AUTOMATED" , "MANUAL" ],
"status_values" : ["DRAFT" , "ACTIVE" , "PAUSED" , "ARCHIVED" ],
"external_contract" : {
"source_table_required" : true ,
"first_email_reply_allowed" : false ,
"bulk_manual_email_allowed" : true ,
"ai_draft_manual_by_default" : true ,
"wait_steps_ai_draft_allowed" : false ,
"easy_sender_path" : "assignedToUserId uses that user's default connected sender accounts" ,
"advanced_sender_routing" : ["senderAccountIds" , "assignmentPlan" , "routingMode" ],
"skip_active_sequence_conflicts" : "use enrollmentRules.skipActiveSequenceConflicts or request/config skipActiveSequenceConflicts"
}
},
"tasks" : {
"status_values" : ["pending" , "scheduled" , "completed" , "failed" , "skipped" ],
"ai_draft" : {
"generation_endpoint" : "/api/task-queue/{task_id}/draft" ,
"generation_mode" : "just_in_time" ,
"context_contract" : {
"requester_primary_fields" : ["user_value_proposition" , "buyer_persona" ],
"requester_secondary_fields" : ["user_persona" , "user_ideal_titles" ],
"research_context_sources" : ["explicit_field_ids" , "starred_fallback" ],
"preflight_endpoint" : "/api/llm/company-context"
}
}
},
"actor_model" : {
"query_field" : "actorUserId" ,
"developer_key_resolution_order" : ["actorUserId" , "api_key_owner_user_id" ]
}
}
}
}