aYOUne
translate
Not in your language

This page is not yet available in en. You're reading the de version.

Automation Module

Das Automation-Modul ist die Zapier-Schicht von aYOUne. Du definierst Triggers (was passiert), Pipelines (was passiert dann), und Webhooks (wo wird's hingeschickt). Routing: automation-api.ayoune.app.

Hauptentitäten

Webhooks

Outbound-Hooks für Plattform-Events. Vollständig dokumentiert unter Developer Portal → Webhooks.

ay create webhooks "ERP-Sync" \
  --set events='["consumers.created","consumers.updated"]' \
  --set url=https://hooks.example.com/incoming \
  --set secret=<32+chars>

Pipelines

Multi-Step-Workflows. Eine Pipeline besteht aus einer Reihe von Steps, jeder mit Input/Output und Bedingungen.

Step-Typ Zweck
trigger Startpunkt: Event-Match
condition If/Else basierend auf Event-Daten
transform JSONata oder JS-Expression
http Externer HTTP-Call
db CRUD auf eigene Collections
notification Mail/SMS/Push absetzen
wait Delay (für Drip-Campaigns)
subPipeline Andere Pipeline aufrufen

Beispiel: "Wenn neuer Consumer mit Premium-Tag → Welcome-Mail + Slack-Notification + Task an Account-Manager":

name: premium-onboarding
trigger:
  event: consumers.created
  filter: { tags: { $in: ["premium"] } }
steps:
  - id: send-welcome
    type: notification
    channel: mail
    template: premium-welcome
    to: ""

  - id: notify-slack
    type: http
    method: POST
    url: ""
    body: { text: "Neuer Premium-Consumer: " }

  - id: create-task
    type: db
    collection: tasks
    op: create
    data:
      title: "Premium-Onboarding für "
      assignedTo: ""
      priority: high

Triggers

Ein Trigger ist ein wiederverwendbarer Event-Filter, der mehrere Pipelines starten kann.

Trigger-Typ Beispiel
event consumers.created, tasks.assigned
cron 0 9 * * MON (Montags 9:00)
webhook Eingehender HTTP-Call (Public-URL pro Trigger)
manual Per UI/CLI gestartet

Custom-Functions

Für komplexe Transformationen reicht JSONata nicht. Custom Functions sind sandboxed JavaScript-Snippets, die im custom-functions-worker ausgeführt werden:

// fn:dedupe-tags.js
module.exports = (input) => {
  const tags = input.tags || [];
  return { ...input, tags: [...new Set(tags)] };
};

Deploy via:

ay functions create "dedupe-tags" --file ./dedupe-tags.js
ay functions deploy dedupe-tags
ay functions invoke dedupe-tags --input '{"tags":["a","b","a"]}'

In einer Pipeline aufrufen via Step-Typ function.

Pipeline-Run-History

Jeder Pipeline-Lauf wird in pipelinetuns festgehalten:

Feld Hinweis
pipeline Ref
triggeredBy event/cron/manual/webhook
status running / success / failed
steps[] Pro Step: input, output, duration, error
totalDuration ms

Best Practices

  • Idempotenz: Steps so designen, dass sie ohne Schaden 2x laufen können (Webhook-Retries!).
  • Timeouts: Jeder HTTP-Step hat einen Default-Timeout von 30s — bewusst hochsetzen, wenn nötig.
  • Testen: ay exec automation:dry-run --pipeline <id> --input '{...}' simuliert ohne Side-Effects.

Verbindungen