FlowRunner
PricingContact
Theme
Start Free

HERO Software

ERP

Connect AI agents to HERO Software, a German business platform for craft and trade businesses. Agents convert leads into projects and save documents against a job, then read the calendar, materials, and contact records the crew works from.

12 actions API key available
A lead lands from a contact form, a partner portal or a CRM
The agent reads the customer name, email, company, address and trade from the source record
Search Contacts looks for an existing HERO contact on that email before anything is created
The postcode and country are checked, because HERO infers the country from postcode length when none is given
Create Project From Lead pushes the unambiguous leads into HERO and returns each internal project ID
The office is told what landed, including any response whose `status` field reports a server side block with no HTTP error code
A person decides every lead whose email is missing or whose company name does not match the existing contact

What This Integration Enables

HERO Software is built for Handwerk, German craft and trade businesses, and that shapes what this connector is for. A roofing or photovoltaic firm does not need another place to store contacts. It needs the enquiry that arrived at 7pm to become a real project with the right customer attached, and it needs last quarter's invoices to exist somewhere other than inside HERO. This integration covers both ends of that. HERO exposes two separate HTTP interfaces and the connector covers both: the GraphQL API, which HERO describes as full access to the account and its objects, and the Lead API, a single REST endpoint for creating a project from an external lead source. Create Project From Lead is the write that matters. It takes a customer, a customer address, an optional differing site address, source tracking metadata and an initial project status, and returns the internal HERO project ID so the originating system can be linked back. On the read side, List Contacts and Search Contacts cover the contact book, List Projects and Get Projects By ID cover projects, Get Project Documents and Get Project Logbook cover what has been attached to and recorded against a job, and List Documents covers customer documents with their net value, VAT, status code and a download URL. Save Document File downloads a document from that URL and stores it in FlowRunner file storage, which is how a HERO invoice or quote becomes an archived record outside HERO.

Be precise about what this connector writes, because the surface is deliberately narrow. Create Project From Lead is the only typed write. Calendar events, article master data and documents are read only here: List Calendar Events reads the calendar rather than scheduling into it, List Supply Product Versions reads Artikelstamm master data rather than ordering materials, and List Documents and Get Project Documents read and archive documents rather than generating them. HERO names three mutations, create_contact, create_project_match and add_logbook_entry, but publishes neither their arguments nor their return shapes, so rather than invent argument names the connector reaches them through Run GraphQL Operation, where you supply the operation yourself after reading your own schema with an API key. Two documented queries, calendar_events and supply_product_versions, are published by HERO with no field list at all, so those two actions require an explicit Fields input and fail with a clear message rather than guessing a selection set. GraphQL reports failures inside an HTTP 200 response, and the connector inspects the errors array on every response and raises those messages, so a mistyped field surfaces as an error instead of returning silently as empty data.

On events, there is no trigger. HERO publishes no webhook subscription API and no event payload shape, so this connector ships nothing that registers one and nothing here creates a FlowRunner trigger. Change detection is a scheduled poll, most usefully on the modified field of contacts, or on List Projects and List Documents for a periodic reconciliation. That is the honest posture, and it is workable, because the flows a trades business actually wants here are lead intake, which is driven by the source system, and document archival, which is naturally a nightly job.

Without FlowRunner

Leads are retyped into HERO A form submission is read on a phone and keyed into HERO later, sometimes twice, sometimes not at all
Duplicate customers accumulate The same homeowner exists three times because three enquiries came in through three channels
A failed handoff looks like a quiet week A lead that never made it into HERO is indistinguishable from a lead that nobody sent

With FlowRunner

Leads arrive as projects Create Project From Lead opens the project with source tracking and an initial status attached
Deduplication is a decision, not an accident The email key is checked first, and the ambiguous cases are routed to a person instead of guessed
Failures are visible The `status` field is read on every response, so a server side block is reported rather than assumed successful

Use Case Scenarios

Enquiries from three channels that become one project each

A photovoltaic installer collects enquiries from a website form, a partner portal and a comparison site, and each one is a customer who may already exist in HERO from a previous quote. The agent reads new rows from Google Sheets or the form's own store, then runs Search Contacts on the email address, because HERO's Lead API uses the customer email as its deduplication key and reuses an existing customer with the same email and company rather than duplicating it. Where the email resolves cleanly to one contact, the agent calls Create Project From Lead with the trade code, the source tracking metadata and an initial project status, and receives the internal HERO project ID back, which it writes onto the source record so the two systems stay linked. It then checks the response status field rather than trusting the absence of an HTTP error, because HERO can block certain email domains server side and answers those requests with status: "error" and no error code at all. A lead that was silently refused is reported to the office rather than counted as delivered.

Invoices and quotes archived out of HERO

A trades business needs its commercial documents somewhere it controls, for long term record keeping and for the accountant. On a nightly schedule the agent calls List Documents to read customer documents with their number, net value, VAT, status code, document type and download URL, filters to the types and the period it cares about, then calls Save Document File on each, which downloads the file from its file_upload.url and stores it in FlowRunner file storage and returns a URL. From there each file is filed into the right client folder in Google Drive and the index row, with document number, net value and VAT, is appended to a ledger sheet. Get Project Documents does the same job scoped to a single project, which is the version to run when a job closes rather than on a schedule. Nothing in HERO is changed by this flow, which is what makes it safe to run every night without supervision.

A project view assembled without opening HERO

The office manager wants to know, each morning, which projects moved and which did not. The agent calls List Projects for number, trade, customer, site contact, address and current status, then Get Project Logbook on the projects in an active status to read the entries recorded against them with title, text and creation date. It joins that to List Contacts for the customer's landline and postal address, and produces one summary: projects with logbook activity in the last day, projects in an active status with no logbook entry for a week, and new projects created since the last run. The digest goes to the office through Slack. Where the flow needs calendar context it calls List Calendar Events with an explicit Fields selection, since HERO publishes no default field list for that query, and it reads the calendar rather than writing to it.

Human-in-Loop Highlight

Create Project From Lead is where an agent should stop, and the reason is that the deduplication rule is precise in a way that lead data usually is not. HERO uses the customer email as the deduplication key, and reuses an existing customer with the same email and company rather than duplicating it. That is exactly the right behaviour when both fields are present and correct. When they are not, the same call does something else entirely. A lead with no email cannot match anything, so it creates a new customer. A lead whose email matches an existing contact but whose company name is different, or newly present, does not reuse that customer either, and setting a company name makes HERO create the record as a commercial customer rather than a private one, which changes how the job is invoiced. Duplicate emails and phone numbers still create the project, with HERO adding a logbook entry noting the duplicate, so the failure is quiet: the project exists, the work gets done, and the customer record it hangs from is the second one. This connector exposes no delete, so nothing here can take a project back. So the agent sorts the batch and routes the ambiguous ones. It posts to the office lead: "34 leads ready for HERO. 27 have an email that Search Contacts resolves to exactly one existing contact with a matching company, and I will push those. 7 need a decision. 3 have no email at all, so HERO will create a new customer with no way to match them later. 4 match an existing contact by email but carry a company name the contact does not have, including Weber for m.weber@…, which is currently a private customer and would be created as a commercial record. Two of those also have no country set, and HERO infers the country from postcode length, five digits Germany, four digits Switzerland or Austria, so a four digit German postcode would land in the wrong country. Push the 27, and tell me per lead whether Weber and the other three are the same customer as the existing contact." The office answers once, in the vocabulary of their own customer book. This is the human-in-the-loop moment on lead intake: an agent can prove that two records share an email, and only a person can say whether they are the same customer.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via email
Human decides
Agent resumes with decision

Agent Capabilities

12 actions

Contacts

2
  • List Contacts Returns contacts with number, name, company, email, landline, last modified date and postal address. Supports the documented `category`, `orderBy` and `offset` arguments, and the last modified date is the field to poll for change detection.
  • Search Contacts Reads contacts and keeps those whose number, first name, last name, company or email contains a search term. HERO publishes no server side text filter, so the match runs in FlowRunner rather than at the vendor.

Projects

4
  • List Projects Returns projects with number, trade, customer, site contact, address and current status. The standing read behind any project digest or reconciliation.
  • Get Projects By ID Returns one or more projects looked up by their internal HERO project IDs. Project IDs are validated as whole numbers and inlined, because HERO documents the filter as an inline integer list and never states the argument's GraphQL type.
  • Get Project Documents Returns the documents attached to a project, with type, number, value, creation date and a download URL. The scoped version of a document sweep, to run when a job closes.
  • Get Project Logbook Returns the logbook entries recorded against a project, with title, text and creation date. This is where HERO records its own notes, including the note it writes when a lead arrives with a duplicate email.

Documents

2
  • List Documents Returns customer documents with number, net value, VAT, status code, document type and a download URL. Read only: this lists what HERO has produced rather than producing anything.
  • Save Document File Downloads a document from its `file_upload.url` and stores it in FlowRunner file storage, returning a URL. The action that turns a HERO invoice or quote into an archived file you hold.

Calendar

1
  • List Calendar Events Returns calendar events. Read only, and it requires an explicit Fields selection set, because HERO names this query but publishes no field list for it, so the action fails with a clear message rather than guessing.

Materials

1
  • List Supply Product Versions Returns article master data, the Artikelstamm. Read only, and like the calendar query it requires an explicit Fields selection because HERO publishes no field list for it.

GraphQL

1
  • Run GraphQL Operation Sends an arbitrary GraphQL query or mutation and returns its `data` object. This is the route to HERO's documented mutations, `create_contact`, `create_project_match` and `add_logbook_entry`, whose arguments HERO does not publish. Read the argument list from your own schema with a GraphQL client, then send the operation through this action rather than trusting an invented field name.

Leads

1
  • Create Project From Lead Creates a project in HERO from an external lead, with customer, customer address, optional differing site address, source tracking metadata and an initial project status, and returns the internal HERO project ID. The customer email is the deduplication key, a company name makes HERO create a commercial customer record, and a blocked email domain answers with `status: "error"` and no HTTP error code, so this runs behind an approval on any lead whose identity is ambiguous.

Frequently Asked Questions

What can FlowRunner do with HERO Software?

FlowRunner agents can run List Contacts, Search Contacts, and List Projects in HERO Software, plus 9 more actions.

Does connecting HERO Software to FlowRunner require OAuth?

No. HERO Software connects to FlowRunner with an API key, no OAuth flow required.

Can HERO Software trigger a FlowRunner workflow automatically?

HERO Software doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with HERO Software

$100 in credits. No card required. Connect in minutes.