Your Tech Club
INTEGRATIONSAFAS PROFIT

Connect AFAS to your other systems

AFAS Profit, the Dutch ERP and HR suite, holds your employees, customers, orders and bookings. Connect it to the rest and a new colleague has their accounts on day one, a won deal becomes a customer account without retyping, and the service desk knows straight away who has left.

All integrations
4.8 from 127 reviews
ISO 9001 & 27001
AFAS ProfitHR and payroll · AFAS Software
  • Employees and employment contracts goes back and forth with Your other systems
  • Organisational structure goes back and forth with Your other systems
  • Organisations, people and sales relations goes back and forth with Your other systems
  • Quotes and orders goes back and forth with Your other systems
Your other systemsSuch as HubSpot, Salesforce, TOPdesk

Built for clients including Tata Steel, M&G Investments, Digistore24, Toppers in Concert, Bar-le-Duc and Loogman

What you exchange

This is the data organisations most often let flow between systems. Which of it matters to you depends on where work is getting stuck today.

Employees and employment contracts

Name, employee number, job title, department, manager, start and end date. If HR works in AFAS, AFAS is the natural source: accounts, service desk and planning follow what HR records.

Organisational structure

Departments, locations, job titles and cost centres. Other systems need these to put people in the right place, such as a service desk that routes tickets by location.

Organisations, people and sales relations

A customer from your CRM becomes an organisation in AFAS with a sales relation: the debtor, or customer account. AFAS has separate UpdateConnectors for this: KnOrganisation for the organisation and its contacts, KnSalesRelationOrg for the customer account itself.

Quotes and orders

Sales quotes and orders come in through the UpdateConnectors FbSalesQuotation and FbSales. An order from an online store or CRM then doesn't need to be entered again, as long as the items exist in AFAS.

Invoices and outstanding items

Which invoices are open, what is overdue and what has been paid. Sales and account managers want to see this in their own system, without access to the full financial administration.

Off the shelf or custom

Not always. If an existing integration for AFAS Profit does exactly what you need, we'll tell you.

What already exists

Many software vendors have built their own integration with AFAS. The AFAS Partnerportal lists integrations that AFAS has certified: tested for functionality and security, and maintained. AFAS looks at things like efficient use of the API, secure communication, securely stored customer data and a clear set-up guide.

Profit also has built-in integrations. Since Profit 8, an Entra ID integration synchronises user groups and their members to Microsoft Entra ID and blocks users when their employment ends. Single sign-on works through OpenID Connect with Microsoft Entra ID, Okta and others.

A standard integration is enough if your process resembles the one it was built for: the same fields, one administration, one direction. If your process differs, ask beforehand what the integration does with it.

When you need custom work
  • There is no certified integration for your other system, or it only covers part of the data.
  • You use custom (free) fields, or several employers and administrations in one environment, and every change has to land in the right one.
  • A change to an employee or customer needs to show up elsewhere quickly, while AFAS sends no webhook for it.
  • An AI assistant needs to answer questions from AFAS, using only the fields it needs.
How it works technically

Connectors instead of fixed endpoints

AFAS Profit has a REST API with JSON and a SOAP API with XML, with the same capabilities. You read data with GetConnectors. You build these yourself on a data collection, with the fields you choose and a fixed filter. You write with UpdateConnectors, which are fixed per object, such as KnEmployee for employees. POST adds, PUT updates and DELETE removes.

Access through an app connector and token

An app connector defines which Get and UpdateConnectors an integration may use. A token applies to the combination of environment, app connector and user, and is sent base64-encoded in the AfasToken header with every call. An administrator creates the token, or the user retrieves it with a one-time code. Delete the token and the integration stops.

Webhooks only for dossier items and workflows

Since Profit 8, AFAS sends webhooks when a dossier item is added, changed or deleted, when someone responds to one, and for workflow tasks and workflow actions. The notification says that something changed, not what; you then fetch the details with a GetConnector. Your endpoint must respond within two seconds. For employees and customers, you poll periodically for what has changed.

Test and acceptance environments

Besides production, there are test and acceptance environments, recognisable by the letter T or A in the environment name. They have their own address: resttest.afas.online or restaccept.afas.online instead of rest.afas.online. This lets you test an integration without writing to your live administration.

Limits on what you fetch

A call can be at most 75 MB, a filter in the URL at most 2,048 characters, and a timeout follows after about fifteen minutes. By default you get 100 rows back; use skip and take to page through the rest. AFAS Online has a fair-use policy: if you fetch the same 15 MB every minute, for example, AFAS will contact you.

AI in between

An integration moves data. In between, AI can read, sort and prepare a suggestion. Where it matters, a person decides.

Checking changes before they go into AFAS

An AI step can check a new customer or order from another system for a missing Chamber of Commerce (KvK) number, an inconsistent address or an organisation that seems to exist already. Doubtful cases go on a list and someone in the finance team decides.

Answering questions from HR data

Who manages this team? How many people start next month? An assistant can look this up through a GetConnector with only name, job title, department and start date. Leave salary, BSN (the Dutch citizen service number) and sickness absence out of that connector, and the assistant can't reach them either.

Where a person decides

AI doesn't process contract changes, payroll changes or departures itself. It can prepare them as a dossier item or workflow task, and HR approves. AFAS records which user changed a record, so with a dedicated user for the integration you can trace what happened through the API.

Where it goes wrong

Someone edits the GetConnector

Because you set up GetConnectors yourself, an application manager can remove a field or change a filter. The integration then suddenly misses data, without an error. Give integration connectors a recognisable name and agree that nobody changes them without checking first.

Missing changes and deletions

If you fetch changes using the created and modified fields, you only see the latest change. Deleted records don't come back by themselves, and after a project is renumbered its bookings go missing. So compare the full set periodically.

A colleague's token

A token belongs to a user. If the integration runs on an employee's account, its permissions and logging are tied to that person. Create a separate user for each integration, with only the connectors it needs.

Fetching everything at once

A GetConnector without a filter on a large administration runs into the 75 MB limit, the timeout or the fair-use policy. Filter on changed records and page with skip and take.

How we build an integration

  1. What goes where

    Which data moves, in which direction, and which system wins when two values differ. That is written down before anything gets built. For this integration, that means: Employees and employment contracts, Organisational structure, Organisations, people and sales relations, Quotes and orders, Invoices and outstanding items.

  2. Fields and rules

    For every field, how it translates between the systems: statuses, VAT codes, general ledger accounts, item numbers. And what happens with a duplicate or a missing value. For this integration, that means: Connectors instead of fixed endpoints, Access through an app connector and token, Webhooks only for dossier items and workflows, Test and acceptance environments, Limits on what you fetch.

  3. Testing with real cases

    In a sandbox or test administration, with the exceptions you actually run into: credit notes, partial deliveries, changed customer details.

  4. Live, with logging and monitoring

    Every sync is logged, and when something fails, someone gets an alert. If a vendor changes its API, we update the integration.

The Your Tech Club team at the office in Amsterdam
Amsterdam
Who you'll talk to

No account manager. You talk to someone who builds integrations themselves, and who will tell you when a standard integration is enough.

Joey van VlietJoey van VlietFounder
Yassine SeghrouchniYassine SeghrouchniFounder
  • Office on the Duivendrechtsekade in Amsterdam
  • ISO 9001 and ISO 27001, certified by Kiwa
  • 500 projects delivered
  • 4.8 from 127 reviews
Frequently asked questions

Does AFAS Profit have an API?

Yes. AFAS Profit has a REST API with JSON and a SOAP API with XML, with the same functionality. You work with connectors: GetConnectors to fetch data and UpdateConnectors to add, change or delete data. You set which connectors an integration may use in an app connector.

Does AFAS support webhooks?

Since Profit 8 it does, but only for dossier items, responses to dossier items and workflows. The notification says that something changed, not what, so you then fetch the details with a GetConnector. For changes to employees, customers or bookings, you poll periodically for changed records.

Can I test an AFAS integration without production data?

Yes, if you have a test or acceptance environment. You recognise them by the T or A in the environment name, and they have their own REST address. A separate demo environment for developers requires an AFAS licence, through a customer or through the AFAS partner programme.

Is a certified integration from the Partnerportal always enough?

Not always. A certified integration has been tested for functionality and security, but it follows the process the vendor had in mind. If you use custom fields, several employers or your own rules on which system leads, you'll need additional custom work. We can connect any system to AFAS, even when there is no standard integration.

Can an AI assistant access data in AFAS?

It can, if you decide what it sees. Create a separate app connector with GetConnectors that contain only the fields needed, and don't give the assistant any UpdateConnectors. Leave out salary, BSN and sickness absence, and for HR data you need an assessment under the GDPR.