# AI *Automations*

Recurring agency processes that run from lead to reporting without manual steps. And the question of which steps a model should handle and which are better left to a rule.

> Project page: https://clemenshoeller.at/en/projects/ki-automatisierungen
> Category: work/automation

## Key facts

- **Context** · marketingwerk e.U., Vienna
- **Role** · Business Analyst – Marketing & Automation
- **Since** · 2023
- **Result** · hundreds of working hours saved a year
- **Status** · ongoing

## /01 The problem

A surprisingly large share of agency work consists of steps that repeat exactly. A lead comes in and has to be enriched, scored and routed to the right person. Campaign data sits in four systems and has to be pulled together into a report every week. Copy has to be classified, fields maintained, states reconciled.

Each individual step is small. The problem is the volume: across many clients, many campaigns and many weeks it adds up to working time that benefits nobody, and to a source of errors that grows with fatigue.

Part of my job at marketingwerk is automating exactly these paths: not for its own sake, but so the time lands where judgment is actually needed.

## /02 How it works

The automations run as scenarios in **Make**, with **Airtable** as the internal data layer, **Close CRM** as the sales system, direct **API** connections to the advertising platforms, and LLM steps wherever text has to be understood or produced.

### Before that: the funnel

A lead path is only as good as what runs into it. The campaigns lead to **funnels** I build myself, and that is where it is decided whether the automation downstream has anything usable to work with.

- **Fields are the interface.** Every form field later becomes a column in the database and a condition in the scenario. A free-text field where a fixed choice would have done creates cleanup work for the entire runtime of the campaign.
- **Qualification happens in the funnel, not after it.** A few well-placed questions filter more than any scoring afterwards, because they capture the answer while the person is still there.
- **Tracking is part of the build.** Without a clean mapping from submission to campaign and ad, the one column the optimization depends on is missing later. It cannot be reconstructed after the fact.

### The lead path

- New leads arrive via **webhooks**, the moment the form is submitted rather than on an hourly cycle.
- They are **enriched** automatically: missing fields filled in, formats normalized, duplicates detected.
- A **scoring** step ranks them by fit, so the most promising contacts get worked first.
- They are then **routed into the CRM**, to the right person and with the right status.

### The reporting path

- Campaign data from the advertising platforms flows into the **internal database** instead of spreadsheet exports.
- There it is condensed into **KPI reportings** that always follow the same structure and therefore stay comparable.
- Deviations stand out because they are checked against the account's own history rather than against a gut feeling.

### Data quality as ongoing work

The least visible and, in sum, most valuable part. A database does not decay all at once but row by row: a field someone else filled in differently, a state left open after an abort, the same person twice under two email addresses. Automations amplify errors like these, because they carry them onward reliably.

- Validity is checked on write, not on read. Whatever sits wrongly in the database once sits wrongly in every reporting built on top of it.
- Duplicates are caught at the entry point, because a second record later produces two histories, both incomplete.
- Every record carries where it came from. Without provenance a contradictory figure cannot be resolved; with it, resolving it is a matter of minutes.

### Where LLM steps sit

Language models handle the points that involve **classification** and **text building blocks**: assigning an enquiry to a topic, turning a free-text answer into a clean category, tailoring a standard text to a specific case. Anything a fixed rule does better stays a fixed rule. Putting a model where a condition would do only makes the path more expensive and less predictable.

## /03 What it delivers

- Systems: 5 connected: funnels, ad platforms, database, CRM, mail
- Manual steps: 0 in the standard case, decisions excluded
- Response time: seconds from submit to the record in the CRM
- Time saved: hundreds working hours a year

The biggest effect is not the time saved but the **consistency**. An automated process does the same thing for client 1 as for client 30, and the same thing on a Friday evening as on a Monday morning. That is what makes numbers comparable across clients and periods in the first place, and every optimization builds on exactly that.

> **🔒 Confidentiality** — Specific clients, figures, scenario structures and internal data models are deliberately left out here. What this page describes is the process level: what gets automated and why, not for whom and with which values.

## /04 What I learned

### An automation without an error path is not an automation

The first version of a scenario always works. It gets interesting on the second run with incomplete data, with the API that briefly stops responding, with the record that already exists. The effort sits not in the happy path but in the edge cases: repeatability, clean states, and the question of what should happen when something breaks.

### Anything from an external system is input, never instruction

As soon as an LLM step processes text somebody else wrote, that text is data and not an instruction. I did not learn that on the job but in the master's project on [prompt injection](/projekte/prompt-injection), and it changed the way I build automations.

### Building it is half the job, running it is the other

A scenario that runs is not finished. Platforms rename fields, quotas expire, a form gains an extra field, and the path breaks at a point nobody looked at while building it. What matters is less that nothing goes wrong than that it becomes visible when something does: an error path that reports instead of swallowing silently, and a state that can be caught up after the fix without double-booking.

### The human stays on the decision

What gets automated is the gathering, sorting and preparing. The decision whether to call a lead or shift a budget stays with people. That is not a precaution but the whole point of the exercise: the time saved should flow into judgment, not be eaten up again by automated bad calls.

**Skills gained:** Make · Airtable · Funnel building · Close CRM · Webhooks & APIs · AI workflows & prompting · Process modeling (BPMN) · Error & retry logic · KPI definition & reporting

## /05 Related projects

These projects connect more tightly than the tiles on the home page suggest. Here are all the others, sorted by how closely they relate to this one:

- [Prompt Injection](https://clemenshoeller.at/projekte/prompt-injection)
- [LLMs & Creativity](https://clemenshoeller.at/projekte/llms-kreativitaet)
- [AI Talent Gap](https://clemenshoeller.at/projekte/ai-talent-gap)
- [This Website](https://clemenshoeller.at/projekte/diese-website)
- [Consulting Cases](https://clemenshoeller.at/projekte/consulting-cases)
- [AURORA](https://clemenshoeller.at/projekte/aurora)
- [Zotter Marketing Plan](https://clemenshoeller.at/projekte/zotter-marketingplan)
- [Healthcare Fraud Detection](https://clemenshoeller.at/projekte/fraud-detection)
- [Google vs. ChatGPT](https://clemenshoeller.at/projekte/google-vs-chatgpt)
- [VWA: Origin of the Internet](https://clemenshoeller.at/projekte/vwa)

---
*German version: https://clemenshoeller.at/projekte/ki-automatisierungen.md*
*From practice at marketingwerk: automating recurring agency processes from lead to reporting, with Make, Airtable, Close CRM, APIs and LLM steps.*
