maesn
By function

Customer success teams improve retention by keeping every integration running

When a customer reports that something stopped arriving in their accounting system, the expensive part is finding out which system, which call and which moment. Maesn puts that in one record with the same fields whichever system answered.

the ticket
“Our invoices stopped showing up in accounting since yesterday.”
one record answers
  • targetSystemthe customer's own system
  • unifiedApithe call that ran
  • timestampthe moment it ran
  • meta.warningsthe field it ignored
Outcome: reconnect, fix, or already retrying.
Trusted by winning software teams
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicapHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicap
The problem

The ticket is cheap, the diagnosis is not

A customer reports a symptom. Everything expensive happens between that and knowing what went wrong.

Without a layer in between, answering one report means knowing which of the connected systems that customer runs, where that system keeps its errors and what its particular vocabulary calls this failure. The work is per system and it lands on the person who has the customer on the line, which is rarely the person who wrote the integration.

The second cost is the shape of the answer. When support cannot separate a rate limit from an expired credential, every report becomes a question for engineering, and every customer hears the same thing: somebody will look into it.

How Maesn solves it

Four documented fields, and the same four every time

The record answers who, what, when and what was ignored, whichever system was behind the call.

“It stopped syncing” — what closes the question
  • Which system?context.targetSystem

    The customer's own system, named on the record rather than inferred from the connection.

  • Which call?context.unifiedApi

    The unified endpoint that ran, so the report maps to something you can reproduce.

  • When?context.timestamp

    One moment, comparable across systems, so a failed sync is attributable rather than approximate.

  • Anything ignored?meta.warnings

    A field the target system silently dropped, surfaced instead of discovered in a report weeks later.

The four fields are documented per response and are the same four whichever system answered. Unified logging and monitoring covers the full record, including the two fields this table leaves out.
What you get

Three outcomes instead of a taxonomy per vendor, and one of them needs the customer

A support process does not need to know which of six status codes it was, it needs to know which of three things to do. Because the envelope, the categories and the retry policy belong to Maesn rather than to each vendor, that list is three items long and stays three items long as you add systems.

Wait it out429, 500, 503

Rate limited, an internal error, or the target system is down. Retried with a backoff on our side, so the answer to the customer is that it is already in hand.

No customer action
Reconnect401

The credentials stopped being valid, which happens when a customer changes their own login or revokes access. The only case in this list where the customer has to do something.

Customer reconnects
Fix and resend400, 409

The payload failed validation or the record already exists. This one is a bug report with the failing fields already named, rather than a mystery to reproduce.

No customer action

Three outcomes rather than one taxonomy per vendor, and only the middle one needs the customer. The documented retry guidance behind them, code by code, is on the error handling page.

References

A collection platform on what happened when customers could connect their own tools

A published customer
Since integrating with Maesn, we've dramatically increased our platform adoption - supporting a wide range of accounting systems in one go. Our customers can connect their existing tools instantly, which drives engagement and makes Maesn a key part of our success strategy.
Felix Pieper
Chief Information Officer, Paywise
Where this ends

We make the failure legible, the conversation stays yours

A layer that claimed to manage your customer relationship would be overreaching, and easy to disprove.

Maesn makes legible
  • Which system, which call and which moment, on the record itself
  • One failure vocabulary and one retry policy across the systems
  • A warning where a target system silently ignored a field
  • Retries for the failures that are ours, before anybody is told
Your success team owns
  • What the customer is told, and when
  • Whether a reconnect is worth a call or an email
  • Which integrations an account should be using at all
  • The renewal, which no integration layer can claim credit for

The workflow a support team is usually asked about is payment reconciliation, because that is where a customer notices a gap first. Which systems a customer can be connected to at all is the integration directory, and what is kept on the way through, which is the question a customer's own security team will ask, is on the security page.

Customer Success FAQ

Common questions

A customer says the sync stopped. Where does support start?

With the record for that request rather than with the customer's system. It names the target system, the unified endpoint that ran and the moment it ran, so the first reply can be specific instead of asking the customer what they were doing. The fields are documented and they are the same fields whichever system answered.

Can support tell whether it is our problem or the target system's?

Usually from the response itself. A rate limit, an internal error or an unavailable system are ours to retry and are already being retried. A validation failure names the fields that failed. Credentials that stopped being valid are the one case that needs the customer, and it is distinguishable from the others rather than looking the same.

What does support have to ask the customer to do?

Reconnect, and in practice only that. It happens when they change their own login or revoke access on their side. Everything else in the documented error guidance is either retried automatically or is a fix on the product side, which is what keeps a support conversation from turning into a technical interview.

Do we find out about a problem before the customer does?

Where the target system emits events you can, because they arrive in one shape and one subscription rather than one integration at a time. Where a system emits nothing, you find out when you read, and the webhooks page sets out which systems are which rather than promising one uniform answer.

Does a field the target system ignores show up anywhere?

Yes, as a warning on the response rather than as silence. That is the difference between correcting one record now and finding a systematic gap in a report six weeks later, and it is the field most worth storing on your side.

What happens at month end, when everything runs at once?

The pacing, sequencing and task tracking are on our side, so ten thousand records behave like ten rather than arriving as a wave of tickets. A long-running job reports progress entry by entry instead of as a single verdict at the end.

Does this reduce churn?

We are not going to put a number on that, because we do not measure your renewals. What is measurable is the part in front of it: a failure that is attributable in one lookup, a customer action list of exactly one item, and integrations that a customer can switch on themselves. Paywise published the adoption side of that and their words are above.

Can integrations be activated per customer after go-live?

Yes, because connecting is an authentication flow the customer runs rather than a release on your side. That is also what makes it something a success team can drive in an account review instead of queueing it behind a roadmap.

Build once on the Unified API.

See how a failure you can attribute in one lookup works for your integration, or dive into the technical reference.