Pipelines5 tools
Execute, save, list, and run reusable processing pipelines
ExecutePipeline
tool · pipelinesExecute a multi-stage asset pipeline. Compose select, filter, transform, action, output, and summarize stages into a single operation. Use dry_run: true to preview changes before committing. Stages by category: SELECT: search, collection, ids, diff (set comparison). FILTER: where, sort, limit, deduplicate, sample. TRANSFORM: set_tag, remove_tag, set_field, regex_replace, compute, set_visibility, set_owner, enrich (stub), approve (stub). ACTION: add_to_collection, move, delete, archive. OUTPUT: export (ADR-057 privacy-aware), notify (stub), tee (passthrough fan-out). SUMMARIZE: count, group_by, stats, histogram. Output stages require confirm: true and are skipped during dry-run. Summarize stages execute during dry-run to provide aggregation previews.
| Parameter | Type | Required | Description |
|---|
| stages | object[] | required | Ordered list of pipeline stages. Must start with a select stage (search, collection, ids, or diff). |
| dry_run | boolean | optional | Preview what would happen without executing mutations. Transform/action stages show simulated side effects. Output stages are skipped. Summarize stages execute to provide aggregation previews. Default: false. |
| timeout_ms | number | optional | Maximum execution time in milliseconds (1000-60000). Default: 30000. |
SavePipeline
tool · pipelinesCreate or update a named saved pipeline. Provide pipeline_definition_h to update an existing pipeline (SCD Type 2 versioning preserves full edit history). Omit it to create a new pipeline. Pipelines are identified by slug (derived from name) and stored with full stage definitions.
| Parameter | Type | Required | Description |
|---|
| name | string | required | Pipeline name (used to generate URL-safe slug). Must be unique per tenant. |
| stages | object[] | required | Ordered pipeline stage definitions (same format as ExecutePipeline stages) |
| description | string | optional | Human-readable description of what this pipeline does |
| default_dry_run | boolean | optional | Default dry_run setting when run without override (default: false) |
| default_timeout_ms | number | optional | Default timeout in ms, 1000-60000 (default: 30000) |
| tags | string[] | optional | Labels for organizing pipelines (e.g., ["weekly", "client-delivery"]) |
| pipeline_definition_h | string | optional | 40-char hex hash of existing pipeline to update. Omit to create new. |
ListPipelines
tool · pipelinesList saved pipelines for the current tenant. Returns pipeline metadata including name, stage count, tags, and default execution settings. Use pipeline_definition_h from results with RunSavedPipeline to execute.
| Parameter | Type | Required | Description |
|---|
| tags | string[] | optional | Filter by tags (e.g., ["weekly"]) |
RunSavedPipeline
tool · pipelinesExecute a saved pipeline by ID or name. Supports overriding default_dry_run and default_timeout_ms at run time. Returns the same execution trace as ExecutePipeline. Provide either pipeline_definition_h (40-char hex) or pipeline_name (resolved automatically).
| Parameter | Type | Required | Description |
|---|
| pipeline_definition_h | string | optional | 40-char hex hash of the pipeline to run |
| pipeline_name | string | optional | Pipeline name (alternative to pipeline_definition_h). Resolved to hash automatically. |
| dry_run | boolean | optional | Override the saved default_dry_run. Defaults to pipeline's saved setting. |
| timeout_ms | number | optional | Override the saved default_timeout_ms (1000-60000) |
| vars | object | optional | Runtime variable injection (merged into pipeline context vars) |
ListPipelineTemplates
tool · pipelinesList available pipeline templates for the current tenant. Returns system templates (available to all tenants) plus any tenant-specific templates. Use the pipeline_definition_h from results with POST /api/v1/pipelines/templates to clone a template into a new saved pipeline.
Pipeline Stages6 tools
Execute individual pipeline stages (select, filter, transform, etc.)
SelectStage
tool · pipeline stagesExecute a single SELECT-category pipeline stage. SELECT stages are entry points that produce an initial asset set. Supported stage_type values: search (text query), collection (load from collection path), ids (explicit asset hashes), diff (set difference between two sub-selects).
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The SELECT stage type to execute enum: search · collection · ids · diff |
| config | object | required | Stage-specific configuration. search: { query: "tag:approved" }. collection: { path: "projects.nike", include_nested: true }. ids: { asset_ids: ["abc..."] }. diff: { set_a: {...}, set_b: {...}, mode: "only_in_a" }. |
| dry_run | boolean | optional | If true, simulates execution without side effects |
FilterStage
tool · pipeline stagesExecute a single FILTER-category pipeline stage on a set of assets. Supported stage_type values: where (field filter), sort (order by field), limit (cap result count), deduplicate (remove duplicates), sample (random subset).
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The FILTER stage type to execute enum: where · sort · limit · deduplicate · sample |
| config | object | optional | Stage-specific configuration. sort: { by: "created_at", order: "desc" }. limit: { count: 20 }. where: { field: "tool", operator: "eq", value: "midjourney" }. |
| assets | string[] | required | Array of asset hashes to filter. Required for non-SELECT stages. |
| dry_run | boolean | optional | If true, simulates execution without side effects |
TransformStage
tool · pipeline stagesExecute a single TRANSFORM-category pipeline stage on a set of assets. Modifies asset metadata or triggers AI enrichment. Supported stage_type values: set_tag, remove_tag, set_field, regex_replace, compute, set_visibility, set_owner, enrich, approve.
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The TRANSFORM stage type to execute enum: set_tag · remove_tag · set_field · regex_replace · compute · set_visibility · set_owner · enrich · approve |
| config | object | optional | Stage-specific configuration. set_tag: { tags: ["approved"] }. enrich: { operations: ["auto_tag"] }. set_field: { field: "status", value: "reviewed" }. |
| assets | string[] | required | Array of asset hashes to transform |
| dry_run | boolean | optional | If true, simulates execution without side effects |
ActionStage
tool · pipeline stagesExecute a single ACTION-category pipeline stage on a set of assets. Performs structural operations like moving, deleting, or archiving assets. Supported stage_type values: add_to_collection, move, delete, archive.
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The ACTION stage type to execute enum: add_to_collection · move · delete · archive |
| config | object | optional | Stage-specific configuration. add_to_collection: { path: "projects.nike" }. move: { from: "inbox", to: "approved" }. delete: { confirm: true }. archive: { confirm: true }. |
| assets | string[] | required | Array of asset hashes to act on |
| dry_run | boolean | optional | If true, simulates execution without side effects |
OutputStage
tool · pipeline stagesExecute a single OUTPUT-category pipeline stage on a set of assets. Produces outputs like exports, notifications, or tee copies. Supported stage_type values: export, notify, tee.
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The OUTPUT stage type to execute enum: export · notify · tee |
| config | object | optional | Stage-specific configuration. export: { preset: "client", confirm: true }. notify: { event_type: "pipeline.completed" }. tee: { action: { type: "add_to_collection", path: "backup" } }. |
| assets | string[] | required | Array of asset hashes for output |
| dry_run | boolean | optional | If true, simulates execution without side effects |
SummarizeStage
tool · pipeline stagesExecute a single SUMMARIZE-category pipeline stage on a set of assets. Produces aggregate data and statistics. Supported stage_type values: count, group_by, stats, histogram.
| Parameter | Type | Required | Description |
|---|
| stage_type | string | required | The SUMMARIZE stage type to execute enum: count · group_by · stats · histogram |
| config | object | optional | Stage-specific configuration. count: { group_by: "tool" }. group_by: { field: "mime_type" }. stats: { field: "file_size" }. histogram: { field: "created_at" }. |
| assets | string[] | required | Array of asset hashes to summarize |
| dry_run | boolean | optional | If true, simulates execution without side effects |
Uncategorised28 tools
Uncategorised
GetAssetDetails
tool · uncategorisedRetrieve comprehensive details for a specific asset by its SHA-1 hash, including how it was made. Answers 'which prompt, model and workflow produced this?' directly — no download needed: `prompts.positive`/`prompts.negative` hold the prompt, `models[]` lists every model the workflow loaded (name, type such as checkpoint/unet/lora/vae, loader node_id), `workflow.workflow_json` is the full ComfyUI graph (with `workflow.tool_name`, `node_count`, `custom_nodes`), and `generation_parameters` holds sampler settings (model_name, seed, steps, cfg_scale, sampler, scheduler) when they were read from a standard KSampler node, else null (the graph still has them). `provenance.lineage_source` says where that lineage came from: 'extracted' (read by Numonic from the stored file; `prompts.source`/`workflow.source` are then 'extracted'), 'client_asserted' (only the uploader's claim), or 'unknown' (nothing asserted or found). Also returns title, description, tags, collections, provenance (creation prompt, parent assets), embedding info and copyright. For Model Library records of those models (base model, trigger words, usage) call GetAssetModels. Optionally generates a signed download URL for the original file (valid 5 minutes).
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| asset_h | string | required | The Asset Hash (SHA-1) of the asset to retrieve |
| include_download_url | boolean | optional | If true, includes a short-lived signed URL for downloading the original asset binary. Defaults to false. |
| include_raw_metadata | boolean | optional | If true, also returns the raw extractor output (extracted_metadata) and the node-by-node workflow_graph. These can be tens of kilobytes; the default response already carries prompts, models and workflow.workflow_json. Defaults to false. |
BulkUpdateAssetTags
tool · uncategorisedAdd or remove a set of tags across up to 100 assets in one call. Per-asset behaviour: 'add' merges into the existing tag set (deduped); 'remove' deletes the listed tags from each asset. Assets whose tag set does not change are skipped silently and reported as unchanged in the response. Tenant-scoped; uses the same RLS path as PATCH /api/v1/assets/bulk-tag.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| asset_hs | string[] | required | Array of asset hashes (SHA-1, 40-char hex) to apply the operation to. Min 1, max 100. |
| operation | string | required | 'add' merges the tags into each asset's existing tag set (deduped); 'remove' deletes them. For replace-all semantics on a single asset, use UpdateAsset. enum: add · remove |
| tags | string[] | required | Tag strings to add or remove. Min 1 char, max 100 chars per tag. Min 1 tag, max 50 tags per call. |
UpdateAsset
tool · uncategorisedPartial update of a single asset's scalar metadata: description, title, and/or tags. Tag update on this tool REPLACES the entire existing tag set; for incremental add/remove operations across multiple assets use BulkUpdateAssetTags. At least one of description, title, or tags must be provided. Tenant-scoped; uses the same RLS path as PATCH /api/v1/assets/[assetH].
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| asset_h | string | required | Asset hash (SHA-1, 40-char hex) of the asset to update. |
| description | string | optional | Optional new asset description (max 5000 chars). Replaces any existing description verbatim. |
| title | string | optional | Optional new asset title (max 500 chars). |
| tags | string[] | optional | Optional new tag set. REPLACES the entire existing tag set. For incremental add/remove use BulkUpdateAssetTags. Min 0 tags, max 500. Each tag 1–100 chars. |
ExportCollectionAsPdf
tool · uncategorisedExport a collection as a PDF document. Returns the PDF as a base64-encoded string along with page count and processing time metadata. The web API handles layout, pagination, and optional watermark removal.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| collection_h | string | required | Collection hash (SHA-1, 40 hex chars) to export |
| remove_watermark | boolean | optional | Whether to remove the Numonic watermark from the exported PDF. Default: false. |
AddTextCardToCollection
tool · uncategorisedAdd a rich-text card (slide) to a collection. Text cards are rendered as full slides in PDF exports and can contain a heading, body text, bullet points, and an accent callout. Supports dark, gradient, and light backgrounds with optional hex accent color.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| collection_h | string | required | Collection hash (SHA-1, 40 hex chars) |
| heading | string | optional | Card heading text |
| heading_size | string | optional | Heading size: xl, lg, or md enum: xl · lg · md |
| body | string | optional | Body text for the card |
| bullets | string[] | optional | Array of bullet point strings |
| accent_text | string | optional | Highlighted callout text |
| background | string | optional | Background style. Default: dark enum: dark · gradient · light |
| accent_color | string | optional | Hex color code for accent elements (e.g., #3B82F6) |
| layout | string | optional | Layout style. Default: centered enum: centered · left-aligned |
| position | integer | optional | Position in collection ordering (0-based) |
SearchModels
tool · uncategorisedSearch the Model Library for models (LoRAs, checkpoints, UNETs, etc.) by name, type, or base architecture. Returns model entities with metadata, not assets. Use GetAssetModels to find assets by model.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | optional | UUID of the tenant |
| query | string | optional | Text search across model name, display name, and description. Supports partial matching. |
| model_type | string | optional | Filter by model type: lora, checkpoint, unet, clip, upscaler, controlnet, vae, embedding, ip_adapter, llm, etc. |
| base_model | string | optional | Filter by base architecture: sdxl, flux, sd15, sd3, sd35, pony, illustrious, noobai, hunyuan, etc. |
| limit | integer | optional | Maximum results to return (default: 50) |
| offset | integer | optional | Offset for pagination (default: 0) |
GetModelDetails
tool · uncategorisedGet full details for a specific model including metadata, version history, asset usage count, and preview count.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | optional | UUID of the tenant |
| model_hash | string | required | SHA-1 hash key of the model (from models_h.model) |
GetAssetModels
tool · uncategorisedGet the Model Library records for every model used to generate a specific asset (checkpoints, UNETs, LoRAs with weights, VAEs, CLIP, upscalers), with base model, type and detection source. Scoped to your tenant: an asset your tenant does not hold returns no models. For the prompt and ComfyUI workflow graph, call GetAssetDetails.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | optional | UUID of the tenant |
| asset_hash | string | required | SHA-1 hash key of the asset |
LinkModelToAsset
tool · uncategorisedManually link a model to an asset (for non-ComfyUI sources where automatic detection is not available).
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | optional | UUID of the tenant |
| model_hash | string | required | SHA-1 hash key of the model |
| asset_hash | string | required | SHA-1 hash key of the asset |
| model_weight | number | optional | LoRA strength_model value (e.g., 0.75). Null for checkpoints. |
| detection_source | string | optional | How this link was discovered (default: manual_tag) |
GetModelVersions
tool · uncategorisedGet version history for a model, including training steps, quality scores, and recommended flag.
| Parameter | Type | Required | Description |
|---|
| model_hash | string | required | SHA-1 hash key of the model |
| include_deleted | boolean | optional | Include soft-deleted versions (default: false) |
AddModelVersion
tool · uncategorisedAdd a version to a model with training metadata, quality score, and recommended flag.
| Parameter | Type | Required | Description |
|---|
| model_hash | string | required | SHA-1 hash key of the model |
| version_tag | string | required | Version label (e.g., v1.0, v2.0, epoch10) |
| version_notes | string | optional | Changelog or description for this version |
| training_steps | integer | optional | Total training steps |
| training_epochs | integer | optional | Total training epochs |
| training_config | object | optional | Training hyperparameters: {"lr": 0.0001, "optimizer": "AdamW"} |
| quality_score | number | optional | Quality rating (0-10) |
| is_recommended | boolean | optional | Mark as the recommended version for this model |
| trained_at | string ·date-time | optional | When this version was trained |
CreateExperiment
tool · uncategorisedCreate an experiment collection for structured image comparison workflows (model benchmarking, prompt A/B testing, style evaluation). Returns the experiment collection hash.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string | required | Tenant UUID |
| display_name | string | required | Human-readable experiment name |
| description | string | optional | Experiment description |
| hypothesis | string | optional | What this experiment tests |
| independent_variable | string | optional | What varies across runs (e.g., "prompt condition", "model", "LoRA") |
| control_variable | string | optional | What is held constant (e.g., "seed set", "resolution") |
| model_name | string | optional | Primary generation model (e.g., "FLUX.2 Dev") |
| workflow_name | string | optional | Generation workflow (e.g., "txt2img") |
| resolution | string | optional | Image resolution (e.g., "1024x1024") |
| domain_context | object | optional | Domain-specific metadata as JSON (e.g., {"grammar_version": "v3"}) |
RegisterRun
tool · uncategorisedAdd an asset to an experiment as a run with full context (condition, seed, prompt, model, domain params).
| Parameter | Type | Required | Description |
|---|
| collection_h | string | required | Experiment collection hash (40-char hex) |
| asset_h | string | required | Asset hash to register as a run (40-char hex) |
| condition_id | string | optional | Independent variable value for this run (e.g., "cond2b", "model_A") |
| variant_label | string | optional | Human-readable variant label (e.g., "Compiled prompt") |
| seed | integer | optional | Generation seed |
| prompt_text | string | optional | Exact prompt used for generation |
| model_name | string | optional | Model for this specific run (overrides experiment-level) |
| run_params | object | optional | Domain-specific run parameters as JSON |
| outcome_tags | string[] | optional | Outcome classification tags (e.g., ["text_literalization", "best_in_set"]) |
| position | integer | optional | Position/order within the experiment |
ScoreRun
tool · uncategorisedScore an experiment run on user-defined dimensions. Creates an evaluation annotation. Dimensions are experiment-defined (e.g., quality, adherence, coherence).
| Parameter | Type | Required | Description |
|---|
| collection_item_h | string | required | Collection item hash for the run to score (40-char hex) |
| scores | object | required | Scoring dimensions as key-value pairs (e.g., {"quality": 4, "coherence": 5}). Values are 1-5. |
| flags | object | optional | Boolean flags (e.g., {"prompt_leakage": true, "text_literalization": false}) |
| evaluator_type | string | optional | Who/what performed the evaluation (default: "human") enum: human · vlm_assisted · embedding_similarity |
| comments | string | optional | Free-form evaluation comments |
CompareRuns
tool · uncategorisedCreate a pairwise A/B comparison between two experiment runs, recording which item wins on each scoring dimension.
| Parameter | Type | Required | Description |
|---|
| collection_h | string | required | Experiment collection hash (40-char hex) |
| item_a | string | required | First run collection item hash (40-char hex) |
| item_b | string | required | Second run collection item hash (40-char hex) |
| winners | object | required | Dimension-to-winner mapping (e.g., {"quality": "<item_a_hash>", "coherence": "<item_b_hash>"}) |
| evaluator_type | string | optional | Who/what performed the comparison (default: "human") enum: human · vlm_assisted · embedding_similarity |
| notes | string | optional | Comparison notes |
GetExperimentSummary
tool · uncategorisedGet aggregated experiment results: run count, condition breakdown, outcome tag distribution, and comparison count.
| Parameter | Type | Required | Description |
|---|
| collection_h | string | required | Experiment collection hash (40-char hex) |
CreatePrompt
tool · uncategorisedCreate a new prompt in the Prompt Library. Returns the prompt hash and version info.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | Tenant UUID |
| prompt_text | string | required | The prompt text content (required) |
| name | string | optional | Human-readable prompt name |
| description | string | optional | Prompt description |
| target_model | string | optional | Target model (e.g., midjourney, dall-e, flux) |
| category | string | optional | Prompt category (e.g., landscape, portrait) |
| tags | string[] | optional | Prompt tags for organization |
GetPrompt
tool · uncategorisedGet a prompt by hash ID with full version history and evaluations.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | Tenant UUID |
| prompt_h | string | required | Prompt hub hash (40-char hex) |
SearchPrompts
tool · uncategorisedSearch prompts with optional category, target_model filters, and pagination.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | Tenant UUID |
| category | string | optional | Filter by category |
| target_model | string | optional | Filter by target model |
| limit | integer | optional | Page size (default 20, max 100) |
| offset | integer | optional | Pagination offset (default 0) |
RenderPrompt
tool · uncategorisedRender a prompt template by substituting {{variable}} placeholders with provided values.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | Tenant UUID |
| prompt_h | string | required | Prompt hub hash (40-char hex) |
| variables | object | optional | Template variables as key-value pairs (e.g., {"subject": "cityscape"}) |
RegisterProspect
tool · uncategorisedRegister or update a cold-outreach prospect: writes prospects_h hub + tenant scoping link + prospect_profile_s, and optionally prospect_research_s (written when any research field is present, not only pain_hypothesis — #2000) and prospect_deal_s (when trial_start_date or agreed_price is present — #2000). At least one of email / linkedin_url / profile_url / handle / website required (#1997); keying precedence when more than one is present is email > linkedin_url > profile_url > handle > website. Append-only — re-calling adds new satellite rows.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect | object | required | Prospect data. At least one of email / linkedin_url / profile_url / handle / website is required (validated server-side). |
| record_source | string | required | Origin tag, e.g. "cold-outreach-studios:studios-2026-q2". |
SetProspectOwner
tool · uncategorisedAssign or reassign a prospect's owner (#1999). Append-only — writes a new prospect_owner_s row; never touches prospect_outreach_touch_s, so reassignment does not rewrite touch history. Set independently of prospect_outreach_touch_s.sent_by.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect_h | string | required | Prospect hub hash (SHA-1). |
| owner | string | required | |
| record_source | string | required | |
LogOutreachTouch
tool · uncategorisedAppend a touch to the outbound log and advance the prospect outreach sequence state. channel accepts email, linkedin, discord, github, contact_form, or other (#1998). Both writes are append-only.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect_h | string | required | Prospect hub hash (SHA-1). |
| touch | object | required | |
| record_source | string | required | |
GetProspectState
tool · uncategorisedReturn full prospect state: latest profile + research + state + suppression, plus all touches and replies, plus contact_link if hand-off has occurred.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect_h | string | required | Prospect hub hash (SHA-1). |
SearchProspects
tool · uncategorisedFilter prospects by campaign, current sequence status, minimum ICP score, vertical, account substring, or owner (#1999, exact match). Suppressed prospects (suppressed_until in the future) are excluded by default. Default limit 50, max 200. Each result row includes the current owner (null if unassigned).
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| filters | object | optional | |
SuppressProspect
tool · uncategorisedSuppress a prospect with a reason and end-date. Marks all active sequences for the prospect as suppressed. cold-outreach-studios convention: 12 months for unsubscribe / not_interested / wrong_person; reengage_date from the reply for not_now.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect_h | string | required | |
| reason | string | required | enum: unsubscribe · wrong_person · not_now · not_interested |
| suppressed_until | string ·date | required | ISO date YYYY-MM-DD when suppression lifts. |
| record_source | string | required | |
LogReply
tool · uncategorisedRecord an inbound reply with cold-outreach-studios reply-triage classification. Advances sequence state: positive → replied, not_now/wrong_person/unsubscribe/not_interested/bounced → suppressed, ooo leaves state untouched. bounced (#1998) is a delivery failure, distinct from every refusal classification. reply.refusal_class (#2000) optionally codes a refusal T (timing) or P (problem), only valid alongside a refusal-shaped classification. On positive reply, mints prospect_to_contact_l so lead-response v0.2 picks up the now-warm contact.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| prospect_h | string | required | |
| reply | object | required | |
| record_source | string | required | |
SearchContacts
tool · uncategorisedList CRM contacts in a pipeline (community | enterprise | investor) with optional stage and free-text search. Wraps get_pipeline_contacts; returns the latest profile, pipeline stage, activity (last_contacted, next_follow_up), plus pipeline-specific satellite fields (investor: firm_name, investor_type, investment_amount, round, seis_eis_status). Default limit 50, max 200. tenant_id is auto-injected from API key auth.
| Parameter | Type | Required | Description |
|---|
| tenant_id | string ·uuid | required | UUID of the tenant |
| pipeline | string | required | Which CRM pipeline to list. 'investor' for fundraise contacts. enum: community · enterprise · investor |
| stage | string | optional | Optional pipeline-stage filter (e.g. "lead", "engaged", "diligence"). |
| search | string | optional | Optional case-insensitive substring match against contact name and linkedin_url. |
| limit | integer | optional | |
| offset | integer | optional | |