[{"data":1,"prerenderedAt":24},["ShallowReactive",2],{"content:integrations\u002Fai":3},{"body":4,"toc":5},"\u003Ch1>Scheduled AI jobs with your own Claude, OpenAI or Grok key\u003C\u002Fh1>\n\u003Cp>Run a prompt on a schedule and send the answer on: a morning summary to Discord, a triage of new tickets to Slack, or JSON that the next step posts to your API. The \u003Ccode>ai_generate\u003C\u002Fcode> step calls Anthropic, OpenAI or xAI with your own API key, so you pick the model and usage is billed to your AI account. It can also call your APIs, and the tools of remote MCP servers, while it works.\u003C\u002Fp>\n\u003Ch2 id=\"example-a-daily-summary-to-discord\">\u003Ca class=\"anchor\" href=\"#example-a-daily-summary-to-discord\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Example: a daily summary to Discord\u003C\u002Fh2>\n\u003Cp>The reply is text, so the Discord step sends all of it with \u003Ccode>{{ $ }}\u003C\u002Fcode>. \u003Ccode>max_chars\u003C\u002Fcode> is Discord&#39;s 2000-character limit: the model is told, and a reply that runs over is sent back once to be shortened.\u003C\u002Fp>\n\u003Cdiv class=\"code-block site-code\">\u003Cspan class=\"code-lang\">json\u003C\u002Fspan>\u003Cpre>\u003Ccode>\u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">name\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Open PRs, summarized for #eng\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">cron\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">expression\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">0 9 * * 1-5\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">time_zone\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Europe\u002FBerlin\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">nodes\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">[\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">prs\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">request_template\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">template_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">&lt;id of github: List pull requests&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_GITHUB_CREDENTIAL_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">values\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">owner\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">acme\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">repo\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">web\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">state\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">open\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">sum\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">ai_generate\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">provider\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">anthropic\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">model\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">claude-opus-5-5\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_ANTHROPIC_KEY_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">effort\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">low\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">system\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">You write the morning update for an engineering team. Format it as Discord markdown: **bold**, *italic*, `code`, and - for lists. No tables.\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">prompt\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Summarize these open pull requests. Put anything waiting on review for more than two days first: {{ $ }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">text\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">max_chars\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#FF9E64\">2000\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">post\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">request_template\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">template_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">&lt;id of discord: Send message&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">values\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">webhook_url\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">https:\u002F\u002Fdiscord.com\u002Fapi\u002Fwebhooks\u002F123456789012345678\u002FabcDEF_ghi-JKL\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">content\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{{ $ }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\n  \u003Cspan style=\"color:#9ABDF5\">]\u003C\u002Fspan>\n\u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"icon-btn code-copy\" data-copy aria-label=\"Copy code\">\u003Csvg class=\"icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Ch2 id=\"example-json-for-the-next-request\">\u003Ca class=\"anchor\" href=\"#example-json-for-the-next-request\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Example: JSON for the next request\u003C\u002Fh2>\n\u003Cp>With \u003Ccode>json\u003C\u002Fcode> output, the reply is held to a JSON Schema through the provider&#39;s structured outputs, so it always parses, and the next step reads its fields. Here the model turns yesterday&#39;s failed Stripe payments into a GitHub issue.\u003C\u002Fp>\n\u003Cdiv class=\"code-block site-code\">\u003Cspan class=\"code-lang\">json\u003C\u002Fspan>\u003Cpre>\u003Ccode>\u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">name\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Failed payments to an issue\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">cron\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">expression\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">0 8 * * *\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">time_zone\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">America\u002FNew_York\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n  \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">nodes\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">[\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">subs\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">request_template\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">template_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">&lt;id of stripe: List subscriptions&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_STRIPE_CREDENTIAL_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">values\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">status\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">past_due\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">draft\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">ai_generate\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">provider\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">openai\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">model\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_OPENAI_MODEL\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_OPENAI_KEY_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">prompt\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Write a GitHub issue for the finance team about these past-due subscriptions: {{ $.data }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">json\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">schema\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">object\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">,\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">properties\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">title\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">string\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">},\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">body\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">string\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">},\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">labels\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">array\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">,\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">items\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">string\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">}}}}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">issue\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">request\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">method\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">POST\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">endpoint\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">https:\u002F\u002Fapi.github.com\u002Frepos\u002Facme\u002Ffinance\u002Fissues\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_GITHUB_CREDENTIAL_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n        \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">body\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{ \u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">title\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">: \u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{{ $.title }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">, \u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">body\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">: \u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{{ $.body }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">, \u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">labels\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">: {{ $.labels }} }\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\n  \u003Cspan style=\"color:#9ABDF5\">]\u003C\u002Fspan>\n\u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"icon-btn code-copy\" data-copy aria-label=\"Copy code\">\u003Csvg class=\"icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cp>The server makes the schema strict before sending it: every property is required and no others are allowed. For a field that may be empty, use a type like \u003Ccode>[&quot;string&quot;, &quot;null&quot;]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"example-an-agent-with-tools\">\u003Ca class=\"anchor\" href=\"#example-an-agent-with-tools\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Example: an agent with tools\u003C\u002Fh2>\n\u003Cp>\u003Ccode>tools\u003C\u002Fcode> are HTTP calls the model may make. Each one is a request, a request template or an email, with \u003Ccode>$\u003C\u002Fcode> bound to the arguments the model chose, so \u003Ccode>{{ $.email }}\u003C\u002Fcode> below is the email it asks about. The response goes back to the model, not to the next step. A tool that fails (a 404, a timeout) is reported to the model, which carries on.\u003C\u002Fp>\n\u003Cdiv class=\"code-block site-code\">\u003Cspan class=\"code-lang\">json\u003C\u002Fspan>\u003Cpre>\u003Ccode>\u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">triage\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">ai_generate\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">provider\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">xai\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">model\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_GROK_MODEL\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_XAI_KEY_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">prompt\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">For each new ticket, look up the customer and say whether they&#39;re on a paid plan. Tickets: {{ $.results }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">text\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">max_chars\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#FF9E64\">40000\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">tools\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">[{\u003C\u002Fspan>\n      \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">name\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">lookup_customer\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n      \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">description\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Find a customer by email. Returns their plan and signup date.\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n      \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">parameters\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">object\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">,\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">properties\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">email\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:{\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">type\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">string\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">,\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">description\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">:\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">The customer&#39;s email\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">\\&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">}}}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n      \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">step\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">t1\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#BB9AF7\">request\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#E0AF68\">method\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">GET\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#E0AF68\">endpoint\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">https:\u002F\u002Fapi.acme.com\u002Fcustomers?email={{ $.email }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#E0AF68\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_ACME_CREDENTIAL_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\n    \u003Cspan style=\"color:#9ABDF5\">}]\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"icon-btn code-copy\" data-copy aria-label=\"Copy code\">\u003Csvg class=\"icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Ch2 id=\"example-tools-from-an-mcp-server\">\u003Ca class=\"anchor\" href=\"#example-tools-from-an-mcp-server\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Example: tools from an MCP server\u003C\u002Fh2>\n\u003Cp>\u003Ccode>mcp_servers\u003C\u002Fcode> gives the model the tools of a remote MCP server (Streamable HTTP), such as \u003Ca href=\"\u002Fintegrations\u002Ffinancial-modeling-prep\">Financial Modeling Prep\u003C\u002Fa>&#39;s market data. Each run starts a session, lists the server&#39;s tools and offers them as \u003Ccode>&lt;name&gt;_&lt;tool&gt;\u003C\u002Fcode>. The server&#39;s credential (a bearer token, a header or a URL parameter) is sent with every request. \u003Ccode>tools\u003C\u002Fcode> limits the model to the ones you name; omit it to offer every tool the server lists.\u003C\u002Fp>\n\u003Cdiv class=\"code-block site-code\">\u003Cspan class=\"code-lang\">json\u003C\u002Fspan>\u003Cpre>\u003Ccode>\u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">brief\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7AA2F7\">ai_generate\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">provider\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">openai\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">model\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_OPENAI_MODEL\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_OPENAI_KEY_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">prompt\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">Is anything on my watchlist moving more than 3% today? {{ $.symbols }}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">text\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">max_chars\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#FF9E64\">2000\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan>\n    \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#0DB9D7\">mcp_servers\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">[{\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">name\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">fmp\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">url\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">https:\u002F\u002Ffinancialmodelingprep.com\u002Fmcp\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">credential_id\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">YOUR_FMP_CREDENTIAL_ID\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#7DCFFF\">tools\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">:\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">[\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">quote\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">,\u003C\u002Fspan> \u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ECE6A\">news\u003C\u002Fspan>\u003Cspan style=\"color:#89DDFF\">&quot;\u003C\u002Fspan>\u003Cspan style=\"color:#9ABDF5\">]\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}]\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan> \u003Cspan style=\"color:#9ABDF5\">}\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"icon-btn code-copy\" data-copy aria-label=\"Copy code\">\u003Csvg class=\"icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cp>\u003Ccode>POST \u002Fsteps\u002Fmcp-tools\u003C\u002Fcode> with \u003Ccode>{&quot;server&quot;: {…}}\u003C\u002Fcode> lists a server&#39;s tools, the same list the editor&#39;s \u003Cstrong>Load tools\u003C\u002Fstrong> shows. MCP tool calls count toward the 100, and a tool that reports an error goes back to the model like a failed HTTP tool.\u003C\u002Fp>\n\u003Ch2 id=\"set-up\">\u003Ca class=\"anchor\" href=\"#set-up\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Set up\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Create an API key with your provider: the \u003Ca href=\"https:\u002F\u002Fplatform.claude.com\">Claude Console\u003C\u002Fa> for Claude, \u003Ca href=\"https:\u002F\u002Fplatform.openai.com\">platform.openai.com\u003C\u002Fa> for OpenAI, or \u003Ca href=\"https:\u002F\u002Fconsole.x.ai\">console.x.ai\u003C\u002Fa> for Grok.\u003C\u002Fli>\n\u003Cli>Save it as a \u003Ca href=\"\u002Fdocs#credentials\">credential\u003C\u002Fa> of kind \u003Ccode>bearer_token\u003C\u002Fcode> (the \u003Cstrong>Anthropic\u003C\u002Fstrong>, \u003Cstrong>OpenAI\u003C\u002Fstrong> or \u003Cstrong>xAI\u003C\u002Fstrong> partner in the app). It&#39;s encrypted at rest and never shown again.\u003C\u002Fli>\n\u003Cli>Add an AI step in the job editor. It asks what the next step needs (a Discord message, or JSON for a request) and sets up the output to match. Then write the prompt, add any tools, and use \u003Cstrong>Try it\u003C\u002Fstrong> to run the step against the previous step&#39;s sample before you save.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Agents can do the same with \u003Ccode>POST \u002Fsteps\u002Ftest\u003C\u002Fcode>: send \u003Ccode>{&quot;node&quot;: …, &quot;input&quot;: &quot;&lt;the step&#39;s $ as JSON&gt;&quot;}\u003C\u002Fcode> and get back the step&#39;s result and output, with nothing recorded.\u003C\u002Fp>\n\u003Ch2 id=\"limits\">\u003Ca class=\"anchor\" href=\"#limits\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Limits\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>The whole step has 15 minutes, tool calls included, and each tool call has 30 seconds. Lower \u003Ccode>effort\u003C\u002Fcode> answers faster.\u003C\u002Fli>\n\u003Cli>\u003Ccode>effort\u003C\u002Fcode> is \u003Ccode>low\u003C\u002Fcode>, \u003Ccode>medium\u003C\u002Fcode> or \u003Ccode>high\u003C\u002Fcode>, or empty for the model&#39;s default. OpenAI and Grok also take \u003Ccode>none\u003C\u002Fcode>, which turns reasoning off. Newer OpenAI models, such as \u003Ccode>gpt-6-luna\u003C\u002Fcode>, need \u003Ccode>none\u003C\u002Fcode> to call tools.\u003C\u002Fli>\n\u003Cli>The editor lists the models your key can use, as the provider reports them: Anthropic&#39;s active models, OpenAI&#39;s chat models and xAI&#39;s text models. You can also type any model id. \u003Ccode>POST \u002Fsteps\u002Fai-models\u003C\u002Fcode> with \u003Ccode>{&quot;provider&quot;: &quot;AI_PROVIDER_OPENAI&quot;, &quot;credential_id&quot;: &quot;…&quot;}\u003C\u002Fcode> returns the same list.\u003C\u002Fli>\n\u003Cli>Up to 50 tools and 10 MCP servers (64 tools each), and 100 tool calls per run.\u003C\u002Fli>\n\u003Cli>A tool’s response is cut off at 256 KiB before it goes back to the model.\u003C\u002Fli>\n\u003Cli>Each run records the tool calls with their status codes, and the tokens the provider reported.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"generate-with-claude-openai-or-grok-ai-generate\">\u003Ca class=\"anchor\" href=\"#generate-with-claude-openai-or-grok-ai-generate\" aria-hidden=\"true\" tabindex=\"-1\">#\u003C\u002Fa>Generate with Claude, OpenAI or Grok: \u003Ccode>ai_generate\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Sends\u003C\u002Fstrong> Your prompt to the provider’s API with your own key (Anthropic Messages, or OpenAI-style chat completions for OpenAI and xAI), and makes the tool calls the model asks for. \u003Cstrong>Output\u003C\u002Fstrong> for the next step: The reply: a string with \u003Ccode>text\u003C\u002Fcode> output (use \u003Ccode>{{ $ }}\u003C\u002Fcode>), or the parsed object with \u003Ccode>json\u003C\u002Fcode> output (use \u003Ccode>{{ $.field }}\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cdiv class=\"table-wrap\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Field\u003C\u002Fth>\n\u003Cth>Type\u003C\u002Fth>\n\u003Cth>Notes\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>provider\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string, required\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>anthropic\u003C\u002Fcode>, \u003Ccode>openai\u003C\u002Fcode> or \u003Ccode>xai\u003C\u002Fcode> (in the proto, \u003Ccode>AI_PROVIDER_ANTHROPIC\u003C\u002Fcode> and so on).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>model\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string, required\u003C\u002Ftd>\n\u003Ctd>The provider’s model id, such as \u003Ccode>claude-opus-5-5\u003C\u002Fcode>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>credential_id\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string, required\u003C\u002Ftd>\n\u003Ctd>A \u003Ccode>bearer_token\u003C\u002Fcode> credential holding the provider’s API key, sent as \u003Ccode>x-api-key\u003C\u002Fcode> to Anthropic and as \u003Ccode>Authorization: Bearer\u003C\u002Fcode> to OpenAI and xAI. An \u003Ccode>api_key_header\u003C\u002Fcode> also works for Anthropic. Usage is billed to that account.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>system\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string\u003C\u002Ftd>\n\u003Ctd>Instructions: who the reply is for, its tone and format. The rule for the output is added for you. Placeholders allowed.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>prompt\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string, required\u003C\u002Ftd>\n\u003Ctd>The task and its data, such as \u003Ccode>Summarize: {{ $.results }}\u003C\u002Fcode>. Lists and objects are filled in as JSON. Placeholders allowed.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>text\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>object\u003C\u002Ftd>\n\u003Ctd>Set this or \u003Ccode>json\u003C\u002Fcode>. The reply is plain text. \u003Ccode>max_chars\u003C\u002Fcode> is the longest reply the next step takes, such as 2000 for Discord: the model is told, asked once to shorten a longer reply, and the step fails if it is still over.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>json\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>object\u003C\u002Ftd>\n\u003Ctd>Set this or \u003Ccode>text\u003C\u002Fcode>. The reply is JSON matching \u003Ccode>schema\u003C\u002Fcode>, a JSON Schema object sent as the provider’s structured output, so the next step can use \u003Ccode>{{ $.field }}\u003C\u002Fcode>. Every property is required; use a type like \u003Ccode>[&quot;string&quot;, &quot;null&quot;]\u003C\u002Fcode> for one that may be empty.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>tools\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>object[]\u003C\u002Ftd>\n\u003Ctd>Up to 50 HTTP calls the model may make, 100 calls in total per run. Each has a \u003Ccode>name\u003C\u002Fcode>, a \u003Ccode>description\u003C\u002Fcode> for the model, \u003Ccode>parameters\u003C\u002Fcode> (a JSON Schema string for its arguments) and a \u003Ccode>step\u003C\u002Fcode>: a request or built-in step where \u003Ccode>$\u003C\u002Fcode> is the model’s arguments. A failed call is reported to the model, which carries on.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>max_tokens\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>integer\u003C\u002Ftd>\n\u003Ctd>Per model call, reasoning included. Up to 128,000 (and the model’s own limit); omit for 16,000.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>effort\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>low\u003C\u002Fcode>, \u003Ccode>medium\u003C\u002Fcode> or \u003Ccode>high\u003C\u002Fcode>; omit for the model’s default. Lower is faster.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>sample_response\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>string\u003C\u002Ftd>\n\u003Ctd>Editor only: an example reply for previewing later steps. Never sent.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>mcp_servers\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>object[]\u003C\u002Ftd>\n\u003Ctd>Up to 10 remote MCP servers (Streamable HTTP) whose tools the model may call, such as Financial Modeling Prep’s at \u003Ccode>https:\u002F\u002Ffinancialmodelingprep.com\u002Fmcp\u003C\u002Fcode>; GET \u002Fmcp-server-templates lists the ones cronservices knows. Each run lists the server’s tools and offers them as \u003Ccode>&lt;name&gt;_&lt;tool&gt;\u003C\u002Fcode>; the calls count toward the 100.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003C\u002Fdiv>",[6,9,12,15,18,21],{"id":7,"html":8},"example-a-daily-summary-to-discord","Example: a daily summary to Discord",{"id":10,"html":11},"example-json-for-the-next-request","Example: JSON for the next request",{"id":13,"html":14},"example-an-agent-with-tools","Example: an agent with tools",{"id":16,"html":17},"example-tools-from-an-mcp-server","Example: tools from an MCP server",{"id":19,"html":20},"set-up","Set up",{"id":22,"html":23},"limits","Limits",1793515741764]