Research

1 action. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.

research.start

POST · mutating

Bootstrap a research initiative: creates a research-flavoured project (the dataset container) with optional columns and a default table view. Use this INSTEAD of missions.create when the goal is to gather or track structured data (prices, listings, competitors, leads) rather than run a social-media promotion. Returns the project id to add rows against.

When the agent calls it: Use for data-gathering goals ("research property prices in Baja", "track competitor pricing"). It returns a project id — then add findings with records.upsert (often from a scheduled workflow) and read them with records.query. Declare the columns you expect up front in fields, e.g. [{name:"priceUsd",type:"number"},{name:"sqft",type:"number"},{name:"beachfront",type:"checkbox"}], or omit them and let records.upsert infer columns from the first row.

  • AI tool: research_start
  • API: POST /api/invoke/research.start

Input

Field Type Required Description
name string yes
goal string
subjectId string
fields object[]
createDefaultView boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "goal": {
      "type": "string"
    },
    "subjectId": {
      "type": "string",
      "minLength": 1
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "number",
              "checkbox",
              "date",
              "select",
              "multi_select",
              "url"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "createDefaultView": {
      "type": "boolean"
    }
  },
  "required": [
    "name"
  ]
}