Ing. Patrik Krajňák

System integration: website, online store, CRM, inventory and accounting.

System integration means your website, online store, CRM, inventory and accounting software exchange data on their own: an order from the website shows up in the warehouse and in accounting, stock levels flow back to the website, and nobody retypes anything. Each piece of data has an agreed source of truth, and every transfer can be traced in a log.

I build these integrations as a full-stack developer from Košice, Slovakia, for small and mid-sized companies. I use my own CRM daily; it pulls data from Gmail, Google Calendar and Slack by itself.

, Full-stack developer, Košice

01 Service

Who can connect our website to a CRM and inventory system?

I can. I'm Patrik Krajňák, an independent developer based in Košice. I design, build, launch and then run the integration, so from the first call to a bug fix six months later you deal with the same person. I meet clients in person in and around Košice and work online with everyone else in Slovakia, Czechia and abroad.

Typically, orders come in through the website, a salesperson retypes them into the CRM, the warehouse checks stock in another program and someone issues the invoice in Pohoda or Money. Each retyping step can lose a digit or a whole order. Once the systems are connected, the order is entered once and the others pick it up.

Nothing that works has to go. The website and accounting software stay, and I add a layer between them that moves the data. If you don't have a CRM or inventory system yet, I can build one as a custom CRM or as part of a custom ERP.

I have hands-on experience connecting systems: at U.S. Steel Košice, as the only developer in my department, I integrated systems across departments and managed databases.

On my own website, I built a booking system connected to Google Calendar with Google Meet. It also handles two people booking the same slot at the same moment, the same concurrency problem any integration faces when several systems write at once. Through the Eturial agency, I wrote the security layer for the CRM and client portal of DAU, a Slovak tax and accounting firm, so every connection I build gets only the access it needs.

How it works

How I build an integration

  1. 1

    Data map

    For each piece of data, we decide the source of truth and the direction it flows.

  2. 2

    Checking the interfaces

    I find out whether your software offers an API, an import or mServer, and whether anything needs to be bought.

  3. 3

    Test run

    The integration first runs against a test company or a copy of your data, and we compare the results together.

  4. 4

    Going live

    Transfers go through a queue with retries, logs and error alerts.

  5. 5

    Monitoring

    Every day the system compares record counts and flags anything that doesn't match.

Integration examples from different industries

Most integrations come down to one of these data flows:

  • Wholesale and warehousing: a B2B order from the website lands in Pohoda as a received order, the warehouse ships it, and stock levels return to the website every few minutes so nobody orders goods you've run out of.
  • Manufacturing: an inquiry from the website form becomes a deal in the CRM, and once the quote is accepted, it turns into a job that both production and accounting can see.
  • Service businesses: a customer books a slot on the website, the technician logs materials and hours on a phone after the visit, and that becomes an invoice in Money or KROS.
  • Online stores: orders and invoices go to the accounting software, payments are matched to orders and stock levels go back to the store. I don't build online stores; I connect the one you already have, for example on Shoptet, WooCommerce or Shopify.
  • Warehouse and shipping: an order from the online store shows up in the warehouse, once it's packed a shipment is created with the carrier, and the customer gets an email with the tracking number.
  • Companies on Microsoft 365 or Google Workspace: a customer's email is linked to the client in the CRM, meetings go into the calendar and documents into the right SharePoint or Google Drive folder.
  • Incoming PDF invoices: document data extraction reads them and sends the data to your accounting software, with the same safeguards.

Source of truth: which system has the final say on which data

First, I decide the source of truth for each piece of data: the one system where it may be changed, while the others only receive a copy. Without this rule, within a few weeks the website shows a different price from the invoice and nobody knows which is right.

I set it separately for each type of data. In a small trading company, that typically looks like this:

  • Contacts, deals and call notes: the CRM
  • Products, prices and stock levels: the inventory or accounting software, such as Pohoda or Money
  • Orders: the website or online store where they were placed
  • Invoices and payments: the accounting software
  • Appointments and meetings: Google Calendar or Outlook

One-way and two-way integration

A one-way integration sends data in one direction only, for example orders from the website to Pohoda. It's simpler and cheaper, covers what matters in most companies, and fits wherever data changes in only one place.

Two-way sync is needed when people edit the same record in two systems. Say a salesperson fixes a customer's address in the CRM while the accountant changes it in Money. For each field, we agree upfront which system wins, or whether a person resolves the conflict. The sync also remembers which changes it wrote itself, so the systems don't keep bouncing them back and forth.

I match records across systems by something that doesn't change: companies by company ID, products by SKU or EAN, orders by order number. Where no such value exists, the integration keeps its own mapping table, so it knows customer 1534 in the CRM is ODB-0087 in Pohoda.

Timing depends on the system. If it can send a change notification (a webhook), the transfer happens right away. Money S4 and S5 don't push changes, so the integration asks them every few minutes what's new. For accounting, a batch once an hour or overnight is often enough.

How I connect to Pohoda, Money, KROS and ABRA Flexi

I choose the route based on your software, its version and your license: the vendor's API where there is one, otherwise an import file in exactly the format the software expects. Software running on a computer or server in your office is reached through your network or a VPN. The vendors document these routes:

  • Pohoda: XML import handles invoices, orders, goods receipts and issues, jobs, contacts, stock items and even online store categories, among others. Imports can run automatically or through POHODA mServer, which transfers XML over HTTP. Pohoda returns the result for each imported document, so the integration knows exactly what went through.
  • Money S3: a GraphQL API sold as a paid add-on module. Writes go through an import queue, so a document only appears in Money once the queue is processed, which the integration has to verify.
  • Money S4 and S5: the API module runs on your machine and doesn't push changes, so the integration polls for them.
  • KROS, common in Slovakia: OMEGA imports documents from XML, Excel or a text file, and KROS documents how to connect your own online store to it. KROS Fakturácia has a public API as a paid feature.
  • ABRA Flexi: a REST API with separately purchased access and daily request limits the integration must respect.
  • Microsoft 365 and Google Workspace: Outlook, Teams, SharePoint, Gmail, Google Calendar, Drive and Sheets through their official APIs.
  • Websites and online stores: the platform's API, webhooks or order exports, or the database of a custom website.

Monitoring, retries and logs: what happens when something fails

Every integration hits an error sooner or later: Pohoda is closed for an update, the online store stops responding, ABRA Flexi uses up its daily limit or someone creates a product without a code. What matters is whether you hear about it right away or only when a customer calls, so I build in these safeguards:

  • Transfer queue: every order or change waits in a queue until the target system confirms it. Nothing gets lost during an outage.
  • Retrying failed transfers: a technical error is retried after a minute, then after several minutes, then after an hour. A data error, such as a non-existent product code, waits for a person instead.
  • Duplicate protection: the same order is never written twice, even if the online store sends it again. Pohoda also has its own duplicate check for XML imports, which I turn on as a second safeguard.
  • Logs: each transfer records the time, source and target, the content and the target system's reply. When someone asks a month later why an invoice has an old address, I find the answer in minutes.
  • Error alerts: an email or a Slack or Teams message, one per problem rather than a hundred identical ones. A short morning summary shows what went through yesterday and what's waiting.
  • Checking it's running at all: if no orders arrive during a working day when they normally do, the system raises an alert, and once a day it compares counts, such as orders in the store against orders in Pohoda.

When n8n, Make or a ready-made plugin is enough

If you only need to send a website form to the CRM and email a colleague, n8n, Make or Zapier will do: you can set it up yourself in a few hours for less than development would cost. If there's a ready-made plugin for your online store and accounting software, try that first. If you'd rather have inventory, CRM, invoicing and an online store in one program and adapt your processes to it, look at Odoo, and there's nothing to connect.

If you already use n8n, I can build the integration in it and run it on a server. Custom code pays off when at least one of these applies:

  • You need two-way sync with rules for individual fields.
  • Your accounting software runs on an office server and has to be reached through mServer, an API module or a VPN.
  • You move so many records that scenarios billed per operation get expensive or hit their limits.
  • You need logs, retries and alerts you can trace even months later.
  • One of the systems is your own and no ready-made connector exists for it.

What system integration costs and how we start

A single integration, for example orders from the website into Pohoda, takes a few days and usually starts at €500. Two-way sync, more systems and old data migration add to the price. If they grow into a system your company runs on every day, such as a CRM with inventory, I price it by scope and in parts. Running costs, meaning the server, backups and monitoring, range from tens of euros to the low hundreds a month.

We start with a free call where you show me your systems and where people retype data today. Then you get a specific price and delivery date, with the quote split into parts so you can start with the one that slows you down the most. Once you approve the quote or any part of it, I build a free prototype so you can check the integration will work before you make a final decision.

You pay 20% when you order and the rest after handover. By default, I run the integration on my own accounts for a monthly fee that covers hosting, backups and updates, and I always fix its bugs for free. When personal data passes through it, such as CRM contacts, we sign a data processing agreement under Article 28 GDPR. If you're not sure which process to connect first, see business process automation.

02 FAQ

Common questions

Who can connect a website to a CRM and inventory system in Slovakia or Czechia?

I can: I'm Patrik Krajňák, a full-stack developer from Košice. I connect the website or online store you already have to a CRM and to inventory in Pohoda, Money, KROS, ABRA Flexi or your own system. I then run the integration, and when something fails, both you and I get an alert.

Can you connect Pohoda running on an office computer?

Yes, through POHODA mServer or automated XML import. The integration reaches it through your network or a VPN, and if that computer is switched off, transfers wait in the queue until it's back on.

What happens if one of the systems is down for a while?

No data is lost: the transfer stays in the queue and is retried. If it still fails after several attempts, you get an alert by email, Slack or Teams, and the log shows which records are waiting and why.

Isn't n8n or Make enough?

For simple one-way flows it often is, such as a website form to the CRM plus an email to a salesperson. For two-way sync, accounting software on an office server or large volumes that need logs and retries, I recommend a custom integration. If an off-the-shelf tool will do, I'll tell you on the first call.

How much does system integration cost?

A single integration usually starts at €500 and takes a few days. A system your company runs on every day, such as a CRM with inventory, is priced by scope. You get a specific price and delivery date after the first call.

Will we have to replace the software we use?

No, your website, online store and accounting software stay. Some software needs an API module bought separately, for example Money S3 or ABRA Flexi, and I'll tell you before I send the quote.

Contact

Tell me what you still do by hand.

A few lines about the process that slows you down or the system you need are enough. Within eight hours I'll get back to you on whether and how it can be built, and if it makes sense, we'll set up a short call.

Prefer email or phone?

patrik.krajnak.dev@gmail.com +421 950 625 466

I reply within 8 hours. Based in Košice, Slovakia (CET), working remotely

Calls on Google Meet: Monday to Thursday 7:00 to 20:00, Friday until 18:00. Weekends by arrangement.

Or email me directly at patrik.krajnak.dev@gmail.com.

I use your details only to reply and to arrange the call. Privacy policy