eEkonomi API - Webhooks - händelsedrivna APIer

  • 4
  • Idé
  • Uppdaterades för 10 månader sedan

Hör utvecklarens bön: Jag vill ha ett eEkonomi som agerar istället för reagerar. :-) 

Jag föreslår att eEkonomi får inställningar där man kan definiera länkar som skall anropas av eEkonomi vid vissa specificera händelser. Syftet är att möjliggöra en händelsedriven användning av eEkonomi i tredjepartsprodukter. 

Jag har skrivit om detta tidigare i en forumtråd som egentligen handlade om ett något annorlunda ämna (att få mejl vid händelser) men jag lägger nu upp det som en separat idé i API-delen av forumet.


Situation/Bakgrund

Visma erbjuder idag tredje part (med avtal) att interagera med Visma eEkonomi via APIer. Den grundläggande kännetecknet för denna användning att det hela tiden handlar om anrop från tredjepart in mot Vismas system för att hämta, eller lämna, data.


Problem

Detta gör att för att tredje part inte kan agera någorlunda snabbt eller ännu mindre automatiskt baserat på händelser i eEkonomi men mindre än att tredje part konstant och regelbundet anropar Vismas miljö för att kontrollera om det finns ny data. Till exempel fråga efter senaste fakturanumret och jämföra det med ett sparat värde i tredjeparts eget system.

Inte bara ökar detta rimligen belastningen på Vismas miljö men det gör också att det riskerar finns duplicerad data hos tredje part i onödig utsträckning. Alternativt innebär det extra arbete för den gemensamma kunden som eventuellt måste interagera med tredjeparts system ”manuellt” för att följa upp händelser i eEkonomi.


Lösning/Idé

Att Visma inför så kallade webhooks för vissa händelser. Det vill säga, för en sådan händelse så anropas/exekveras en URL. För varje händelse/anrop så kan det kunna anges några få parametrar som har direkt ankytning till händelsens art. 

Nedan följer två, ej exkluderande, varianter på vilka webhooks som skulle kunna finnas:

Varient A: Samma webhooks som i e-conomic:  

  • Kund har uppdaterats
  • Dagbok/kassabok har uppdaterats (?)
  • Lagret har uppdaterats
  • Faktura har uppdaterats
  • Faktura har bokförts
  • Order har uppdaterats
  • Artikel har uppdaterats
  • Projekt har uppdaterats
  • Offert har uppdaterats

Se bifogad bild.


Variant B: Webhooks som motsvarar vissa av de notifieringar som en användare idag kan få via mobilappen:

  • Förfallen obetald kundfaktura
  • Förfallen obetald leverantörsfaktura
  • Ny beställning i Visma webshop
  • Nya husfaktura att söka skattereduktion för
  • Nytt okopplat bildunderlag
  • Ny ej avstämd banktransaktion
  • Nytt banksaldo
  • Stoppad e-faktura


Konskvenser

En implementation enligt ovanstående skulle inte bara stärka eEkonomi som navet i kundens organisation och affärsprocesser men även stärka Vismas samarbetspartner då dessa kan erbjuda ny funktionalitet i sina produkter. Vilket indirekt både avlastar och återigen stärker Vismas ställning. Kort sagt borde detta vara en win-win-win för alla berörda parter.

Teoretiskt negativa konsekvenser:

  • Ökad belastning på Vismas system när dessa skall hantera att göra externa anrop ut till andra. Jag tror detta kompenseras av att externa system inte längre behöver göra lika många anrop in mot Visma. Dessutom är en webhook ”fire-and-forget”, exekvera anropet så fort det går och stäng anslutningen, invänta inte svar. Det är inte Vismas ansvar att det fungerar. 
  • Kan vara att det blir en viss ökad support om en kund har webhook som inte fungerar men återigen, inte Vismas ansvar att en hook fungerar, bara att anropet görs. Möjligen kan man behöva ha en logg över gjorda anrop som kunden kan titta på i sitt system?
  • Exponering av kunddata mot externa system. Om kunden själv lagt in hooks så har kunden valt exponeringen. Och det är inget som inte redan kan hämtas via API.
  • Om en första omgång webhooks implementeras så kommer det troligen önskemål om flera. Vet inte om det är så negativt dock... :-) 


Alternativa lösningar

Istället för rena webhooks så skulle man kunna låta detta vara e-post som skickas till en specifik, i förväg definierad, e-postadress. Antingen en per kund/företag (gemensam för alla händelsen) eller en per händelsetyp. Då kan kunden välja om det vill att använda det som ett alternativ till mobilappens notiser eller för att samverka med externs syftem. 

(Varför inte både och - både webhooks och e-post?)

Foto på Khedron Wilk

Khedron Wilk, Champion

  • 14,320 poäng 10k badge 2x thumb

Publicerades för 1 år sedan

  • 4
Foto på Khedron Wilk

Khedron Wilk, Champion

  • 14,320 poäng 10k badge 2x thumb
Och innan någon testar, länkarna i bilden ovan fungerar inte längre. :-)
Den webbsidan/funktionen är gammal och borttagen.
Foto på Ribomation

Ribomation

  • 1,104 poäng 1k badge 2x thumb
Har inte själv börjar med Visma API, men tycker rent generellt att det är ett mycket bra förslag.

Dock kan det vara bra om en webhook POST:ar JSON data, för att underlätta hantering,
men också undvika att kunddata hamnar i web-log-filer. En aspekt att ta hänsyn tilli dessa GDPR dagar...
Foto på Khedron Wilk

Khedron Wilk, Champion

  • 14,320 poäng 10k badge 2x thumb
Tänkvärd tanke, även om det inte är några personuppgifter inblandade. 
Anledningen till att att mitt förslag bygger på URLer som är HTTP-anrop med GET-metoden är att det blir enklare för kunden att definiera vad som skall skickas.

Åt andra sidan så om man istället skulle göra detta som HTTP-baserade POST-anrop med av Visma fördefinierad JSON-data i BODY så blir det färre inställningar för kunden = färre saker som kan gå fel både för kund, Visma och tredjepart. Bra förslag!
(Redigerad)
Foto på Khedron Wilk

Khedron Wilk, Champion

  • 14,320 poäng 10k badge 2x thumb
Tillägg eftersom en annan användare nyligen ”gillade” denna tråd:

Kan eventuellt vara så att Visma kommer lösa detta behov genom att att använda API-tjänsten Zapier (www.zapier.com)

Se även https://forum.vismaspcs.se/visma_spcs....