SolaryxDevIntelligent systems, engineered to run your business.
Book a call
Search Client login Book a call

One figure carried through every system you run, by workflow automation and integrations.

Type a figure once, and it travels through every system you already run, from the ledger and the CRM to the payment provider and the mailbox. Where money moves, a check that cannot run stops the step.

Workflow automation needs a model only where the input is unstructured, such as a free-text email or a scanned form. Everywhere else, a rule is enough. A signed contract raises the invoice and a matched payment closes it, and even a model's output passes the same checks as any other input before anything is written.

A model reads the input a rule cannot.

Most lost hours go into moving one figure between four systems and working out which copy is right. A trigger, a rule and a write handle the bulk of it. A rule is cheap to run and simple to test, and it cannot invent a number.

A model belongs where the input is ambiguous: an email asking for three things at once, a request to classify, fields on a supplier's scanned invoice, a reply drafted for a person to approve. Even then the model proposes and the rules decide. Its output is checked like any other input, and nothing it produces moves money, deletes a record or contacts a customer for the first time until a person approves.

Rule or model, decided step by step
StepHandled byWhy
A signed contract raises the deposit invoiceA ruleThe input is structured and the outcome is fixed
A bank line is matched to an open invoiceA rule, with exceptions to a personAmount, reference and date either match or they do not
An email asks for a quote in free textA model drafts, a person approvesThe request has to be read before it can be priced
A supplier invoice arrives as a scanA model extracts, rules check the totalsReading is ambiguous, and arithmetic is not
A refund is issuedA personMoney leaving the business waits for a person

From enquiry to payment, each figure typed once.

  • Enquiry to quote.

    A form or an email becomes a draft quote on the right customer, priced from your own list.

  • Contract to invoice.

    The signature raises the invoice and the project, so the price agreed is the price charged.

  • Payment matching.

    Card and bank payments are matched to open invoices and close them. Exceptions go to a person.

  • Stock and fulfilment.

    Pick, dispatch and the delivery note, each checked back against the order.

  • Recurring documents.

    Statements, reminders and renewals, generated on schedule and sent through one approved template.

  • Escalation.

    Work that sits too long gets chased by the workflow, and if it still sits, the workflow chases a person.

The systems at either end are usually in place already: ERPNext or another ERP, a CRM, a payment provider, a mailbox and the spreadsheet somebody keeps privately. When the choice is ours, ERPNext makes a good hub, because it generates a REST API for every document type and fires webhooks when a document is saved, submitted or cancelled.

Four properties make an integration safe for money.

We build all four before the first live run.

  • Idempotent writes. Every write carries an idempotency key, so a retried message cannot create a second invoice. Stripe supports this directly: a request repeated with the same key returns the first result and acts only once.
  • Verified inputs. A webhook is accepted only when its signature checks out. ERPNext signs outgoing webhooks with an HMAC-SHA256 header, X-Frappe-Webhook-Signature, once a secret is set, and we set one.
  • Fail closed. When a check cannot run, because the duplicate lookup timed out or a rate is unavailable, the workflow refuses and queues the step. Silent success is how a customer gets billed twice.
  • A log you can read back. Each step records its trigger, the data it read, the change it made and anything it declined to do. A month later, anyone can reconstruct why an invoice exists.

Failures are loud. A receiver that could not record an event answers with an error, so the sender tries again and the event is kept. Alerts watch the failure paths, and an automation that goes quiet raises one.

No-code tools fit until a duplicate costs money.

For a simple link between two systems, Zapier or Make is often the right answer, and we will recommend it. The fit ends when a step must be transactional, auditable, idempotent or approved by a person, which covers most steps that touch money.

Where code is the answer, it stays small, typed and tested.

Which approach fits which job
ApproachFits whenStops fitting when
Zapier or MakeTwo systems, modest volume, and a failed run is an inconvenienceA duplicate or a missed run costs money, or an auditor needs the full history
n8n on your own serverYou want a visual workflow editor that runs on infrastructure you controlBranches multiply and the logic needs tests and version control
Custom integration codeMoney, approvals, idempotency and an audit trail are requiredA two-step link would do, and code would be overbuilt

Every automation runs beside the manual process first.

  1. Map the path as it runs.

    Workarounds included, because they belong to the process even where the manual is silent.

  2. Decide what stays manual.

    Judgement calls, exceptions with legal weight, and anything where a mistake would be expensive and hard to see.

  3. Build the integrations.

    Typed code, tested against a copy of your data, with retries and an idempotency key on every write.

  4. Wire the guards.

    Thresholds, approvals and fail-closed rules on anything financial.

  5. Run both ways for two weeks.

    Any difference between the automated and the manual result is a bug, and it is fixed before cutover.

  6. Cut over and watch.

    Alerts on the failure paths from day one.

Our own money runs through this wiring.

We tested these rules on our own billing first.

  • Booked calls arrive from our scheduling system as signed webhooks. The portal checks the signature and records the meeting against the client in ERPNext. If ERPNext is unreachable, the portal answers with an error so the booking is sent again, and because the record is keyed on the booking's own ID, the retry cannot duplicate it.
  • When a client signs a proposal, the portal creates the project and the deposit invoice. A retry or a second click finds that project and creates nothing new.
  • Card payments open their checkout with an idempotency key built from the invoice and the amount, so a double submit cannot open a second payable session.
  • Every client email leaves through one approved template and an outbox gate.

These examples come from our own systems, name no client, and are the reason we can say how yours will behave.

You own the automation after handover.

Day-to-day adjustments are settings your team changes without us. The code we write, with its tests, passes to you once the last invoice is paid.

How long the warranty runs depends on where the automation is hosted, and pricing and engagement sets out the terms.

Frequently asked questions

When do workflow automation and integrations need a model, and when is a rule enough?

Workflow automation needs a model only where the input is unstructured, such as a free-text email or a scanned form. Everywhere else, a rule is enough. A signed contract raises the invoice and a matched payment closes it, and even a model's output passes the same checks as any other input before anything is written.

Is a no-code tool like Zapier or Make enough for us?

Often, for a simple link between two systems, and we will tell you so. Many setups keep both, with the no-code tool sending notifications and tested code handling anything that writes to the ledger.

n8n or Zapier: which is better?

Each suits a different job. Zapier fits two systems at modest volume, where a failed run is a nuisance. n8n suits a team that wants a visual editor on its own servers. Once a duplicate or a missed run costs money, tested integration code takes over from both.

One of our systems has no API. Can it still be connected?

Usually. We try a database view first, then a scheduled export, then a file drop, and last of all we drive the interface the way a person would. Each one beats retyping, and the proposal names the one we will use.

How do you stop an invoice being created twice?

Every write carries an idempotency key, and a duplicate check runs before anything is created. If that check itself fails, the workflow stops. Billing a customer twice is the first failure we design against.

Can we change a workflow ourselves after handover?

Yes, for thresholds, templates, recipients and schedules, which are settings by design. A structural change means new code, and that code comes to you with the tests that prove it once it is paid for.

Where does the automation run, and who notices when it fails?

Beside the rest of your system, on our hosting in Germany or on your own servers. While we run it, alerts watch the failure paths, and silence from an automation counts as a failure.

Tell us what you are building.