Node catalog
Every kind of node in a Loop: triggers, data sources, agents, human checkpoints, actions, and displays.
A node is the unit of a Loop. Every node belongs to a category, has typed input and output ports, and carries a small config form rendered from the shared registry. Loops is in Beta, so the catalog is still growing.
Triggers
Triggers seed runs. Every Loop needs at least one.
trigger.manual: fires when you click Run. No payload.trigger.cron: fires on a five-field cron schedule. Theloops:tickCronJob scans every five minutes for due schedules.trigger.event: fires on a CRM event (lead.created,lead.statusChanged,lead.assigned,deal.stageChanged,deal.won,deal.lost). The payload carries the event entity ids.
Data
Data nodes gather rows.
data.leadSearch: pulls leads matching a filter from the org CRM.data.propertySearch.resales: queries Resales Online for properties matching a price / bedrooms / city filter.data.filter: passes items downstream that match a simple predicate.
Agents
Agent nodes wrap managed agents. Each one drafts proposals that flow into a
downstream human.approve node; no agent writes to the CRM directly.
agent.personalizedEmail: drafts a personalised email per input lead.agent.reengageStaleLead: drafts a re-engagement email for each lead in an input list that has gone quiet.agent.qualifyLead: triages a new lead by proposing a status, tags, and a short note.
Human checkpoints
These pause the run.
human.review: renders inputs as tickable cards; resume produces the chosen subset.human.approve: queues each input as a proposal in the approval inbox; on approve the matching CRM mutation fires.
Actions
Terminal nodes that mutate the CRM through the same service path a user would call manually. Each one returns the executed entity for downstream chaining.
action.sendEmail: sends each draft email.action.changeStatus: sets a lead's CRM status.action.createTask: creates a follow-up task per lead.action.addTag: adds tags to leads.action.createNote: adds a note to leads.
Displays
Display nodes are dual-mode. Connected to an upstream output, they render that data; left unconnected, they fall back to a live React Query that mirrors the dashboard pane equivalent.
display.leadList: a filtered table of leads.display.powerDial: a calling queue.display.dealBoard: a kanban of deals.display.taskList: a bucketed list of tasks.display.email: a composer.display.inbox: the approval inbox.