> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engini.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cookbook

> Task-shaped recipes for connecting apps, running tools, building agents, and automating Engini.

Recipes are organized by **what you're trying to do**, not by which surface you use - most show cURL, CLI, Python and TypeScript side by side, so pick whichever lane you're in.

## Connect apps

<CardGroup cols={2}>
  <Card title="Connect a customer's app (OAuth)" icon="key" href="/developers/cookbook/connect-customer-app">
    Run the full OAuth handshake from inside your own product - the flow every embedded integration needs.
  </Card>

  <Card title="Sync database objects" icon="database" href="/developers/cookbook/sync-database-objects">
    Refresh the object catalog, poll until it settles, and choose which tables the connection exposes.
  </Card>
</CardGroup>

## Run tools

<CardGroup cols={2}>
  <Card title="REST walkthrough" icon="globe" href="/developers/cookbook/rest-api-walkthrough">
    Zero to executed tool with nothing but cURL.
  </Card>

  <Card title="Page a large catalog" icon="layer-group" href="/developers/cookbook/page-through-large-catalog">
    Walk every tool or application with offset/top, and survive rate limits.
  </Card>

  <Card title="Debug a failed tool call" icon="bug" href="/developers/cookbook/debug-failed-tool-call">
    `isSuccess` vs HTTP status, reading `executionInfo`, and what each error code means.
  </Card>
</CardGroup>

## Build agents

<CardGroup cols={2}>
  <Card title="Scope an agent with a toolset" icon="shield" href="/developers/cookbook/scope-agent-toolset">
    Decide exactly which tools an agent may call - enforced server-side, not by prompt.
  </Card>

  <Card title="monday.com assistant" icon="message-bot" href="/developers/cookbook/build-monday-assistant">
    The canonical agent loop. **Start here** if you're new to agents.
  </Card>

  <Card title="Gmail agent with attachments" icon="paperclip" href="/developers/cookbook/gmail-agent-attachments">
    File uploads - the model picks attachments by name, your code controls the bytes.
  </Card>

  <Card title="Priority ERP assistant" icon="warehouse" href="/developers/cookbook/priority-erp-assistant">
    The same loop pointed at an ERP.
  </Card>
</CardGroup>

## React to events

<CardGroup cols={2}>
  <Card title="Receive trigger events on a webhook" icon="bolt" href="/developers/cookbook/receive-trigger-events-webhook">
    Destination, trigger, test event, and a receiver that verifies every signature.
  </Card>

  <Card title="Debug and replay a failed delivery" icon="rotate" href="/developers/cookbook/debug-replay-failed-delivery">
    Read why attempts failed, bring a destination back, replay the gap, rotate a secret safely.
  </Card>

  <Card title="Develop a trigger locally" icon="laptop-code" href="/developers/cookbook/develop-trigger-locally">
    Stream events to your laptop and rehearse signed deliveries on localhost - no tunnel.
  </Card>
</CardGroup>

## Automate

<CardGroup cols={2}>
  <Card title="CLI walkthrough" icon="terminal" href="/developers/cookbook/cli-walkthrough">
    The journey from the terminal - as a human, and as an agent using resumable gates.
  </Card>

  <Card title="Run Engini in CI/CD" icon="gear" href="/developers/cookbook/run-engini-ci-cd">
    Headless auth, exit-code branching, and JSON output in a pipeline.
  </Card>

  <Card title="Work with large results" icon="magnifying-glass" href="/developers/cookbook/large-tool-results">
    Handles, dot-paths and projections - pay for the slice you need, not the payload.
  </Card>

  <Card title="Scripted automation (no LLM)" icon="clock" href="/developers/cookbook/scripted-automation">
    The SDK as a plain typed API client - the shape of a cron job.
  </Card>
</CardGroup>

## The two integration paths

**High-level, with `Toolset`** - bind app → connection once, then two calls per turn:

```python theme={null}
ts = client.toolset(connections={"salesforce": conn_id})
tools   = ts.tools()                  # provider-shaped tool schemas
results = ts.handle_tool_calls(reply) # resolves connection + runs each call
```

**Low-level** - drive the pieces yourself (fetch schemas, wrap, parse calls, execute, format results); see [LLM providers](/developers/sdk/llm-providers). Or skip the model entirely and call `client.tools.execute(...)` directly.

Runnable sources for the agent recipes live in [engini-sdk/python/examples](https://github.com/engini/engini-sdk/tree/main/python/examples) - each is a self-contained script (`uv run <file>`).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.