So I see the hype train has pulled into the station. Everyone's marveling at how you can spin up a "social media manager" or a "customer support agent" in five clicks with Lindy's templates. Cute. Try using that for anything that doesn't fit neatly into their little box of pre-defined steps.
The promise is "AI agents that can do complex workflows," but the building blocks feel like they're designed for a world where APIs never fail, user input is always perfectly structured, and you never need to maintain state beyond a single conversation turn. Want an agent that can handle a multi-stage approval process, interface with three internal systems, parse a semi-structured email attachment, *and* have a contextual back-and-forth with a user? Good luck.
The template system is a walled garden. You can chain "if-this-then-that" style steps, but the moment you need custom logic, conditional branching based on complex criteria, or to integrate a non-mainstream tool, you hit a wall. Their "code step" is a lifeline, but it's a thin one.
Here's a trivial example that already breaks the "basic" mold. Let's say you want an agent to check a Slack channel *and* a PagerDuty incident *before* deciding to page someone. In their UI, you'd be juggling multiple parallel steps and custom conditions. It quickly becomes a spaghetti diagram. Doing it programmatically feels like you're fighting the platform:
```javascript
// Pseudo-code in their 'code step' – and you have to handle everything here
const slackStatus = await checkSlackChannel(channelId);
const pdStatus = await getPagerDutyIncident(serviceId);
// Now make a decision based on combined state
if (slackStatus.isActive && pdStatus.status === 'triggered') {
await triggerPagerDutyEscalation(userId);
} else if (!slackStatus.isActive) {
await postSlackAlert(channelId, 'No response, escalating.');
await triggerPagerDutyEscalation(userId);
} else {
await updateInternalLog('Situation monitored.');
}
// And you have to manage the state passing to the next step manually.
```
The real complexity isn't the code itself; it's the error handling, the state persistence, the retry logic for flaky APIs, and the audit trail. Lindy's templates abstract all that away until they don't, and then you're left building a distributed system inside a single function step with no real debugging tools.
So, for those of you building agents that do more than send templated emails or summarize articles: are you just accepting the limitations and building multiple, simpler agents? Or have you found a way to treat Lindy purely as an LLM orchestration layer and moved all the actual logic to an external system you control? Because that's where I'm leaning, which makes me wonder what I'm paying the platform for.