ingestlayer/recipes

AI agent → Email

Agents — Claude Code, Cursor, your own app — call a pipeline by id like a named function, authenticated with a per-agent bearer token scoped to an explicit pipeline allowlist. The request body is the event; with ?wait=true the agent gets the post-pipeline payload back to use as a tool result.

01source

sourceagentAI agent
matchcompany.lookup

02pipeline · 3 steps

  • 01MUTredact.piistrip secrets from prompts + outputs
  • 02ENRclassifylabel calls by risk
  • 03ENRsummarizetrace → one-line outcome

03destinations · 1

  • toemail.outEmail
    toalerts@acme.com

how events arrive

  1. 01

    create an agent source

    Add an AI-agent source; ingestlayer issues a bearer token bound to an explicit allowlist of pipeline ids the agent may invoke — nothing else.

  2. 02

    invoke a pipeline

    From the agent, POST the event payload to https://in.ingestlayer.com/v1/agent/invoke/<pipelineId> with the bearer token. The body is the event; anything goes — the downstream actions handle the shape.

  3. 03

    fire-and-forget or wait

    By default the pipeline runs and its destinations fire. Add ?wait=true to also get a poll URL that returns the post-actions payload — the agent reads the enriched, redacted result and uses it as a tool response.

from ai agentdelivered
POST /v1/agent/invoke/pl_enrich_lead?wait=true HTTP/1.1
Host: in.ingestlayer.com
Authorization: Bearer ag_live_8fa2…
Content-Type: application/json

{
  "type":  "company.lookup",
  "email": "ada@acme.com"
}

route it to Email

Send a transactional email to one or more recipients, addressable from event fields.

  1. 01

    set the recipient

    Enter a fixed address, or reference an event field like $event.payload.email to route per event.

  2. 02

    write subject and body

    Both accept $event.* templates. The body renders as plain text with an optional summary table of the payload.

  3. 03

    confirm the sender

    Mail goes out from mail@notify.ingestlayer.com with SPF and DKIM aligned. Set a reply-to if you want responses to reach you.

in emaildelivered
From:    mail@notify.ingestlayer.com
To:      alerts@acme.com
Subject: Payment failed — acme-inc (€240.00)

A charge failed for acme-inc.
  amount   €240.00
  reason   insufficient_funds
  attempt  2

notes

questions

How does an agent send data in?
It calls a pipeline by id like a function: POST the event to /v1/agent/invoke/<pipelineId> with the agent's bearer token. The request body is the event payload.
Can the agent use the processed result?
Yes — invoke with ?wait=true and ingestlayer returns a poll URL holding the post-actions payload (enriched, classified, redacted), so the agent can use it as a tool result. The pipeline's normal destinations still fire.
How do I keep prompt data out of chat?
redact.pii masks sensitive fields per destination, so a warehouse copy can keep the full trace while the Slack message shows only a clean summary.
build this pipelineor read the quickstart →

AI agent, routed elsewhere

other sources, into Email