Gå til innhold

PowerOffice Go-integrasjon

PowerOffice Go er en SaaS-regnskapsplattform. ePortal har fire adaptere mot PowerOffice Go: import av stamdata, import/oppdatering av ansatte, eksport av godkjente fakturagrunnlag som utgående fakturaer, og import av timetransaksjoner som KPI-cache. I tillegg finnes en live finansrapporterings-tjeneste som henter saldobalanse, transaksjoner og budsjett direkte fra PowerOffice Go uten lokal cache.

Type: Server-til-server REST/OData over OAuth 2.0 client credentials Modul i ePortal: Konfigureres og overvåkes i Konti Connect-modulen


Tilgang

Hvem Hva trengs
Hos PowerOffice Go API-bruker (Client ID + Client Secret) generert i PowerOffice Go-administrasjonen
Hos Konti Administrator-tilgang til Konti Connect-modulen
Hos kunden Aktivt PowerOffice Go-abonnement

Adapterne autentiseres maskin-til-maskin med grant_type=client_credentials og Basic Auth (base64(ClientId:ClientSecret)) — det er ingen brukerinnlogging eller browser-redirect ved oppsett. Se PowerOfficeGoApiService.cs:75.


Hva integrasjonen synker

ePortal har følgende adaptere mot PowerOffice Go (registrert som integrasjons-typer i wv_IntegrationType):

Retning Adapter / IntegrationTypeCode Hva Kilde
PowerOffice → ePortal PowerOfficeGoMasterDataImport Kunder, leverandører, produkter, avdelinger, prosjekter, kontoplan (GL accounts) PowerOfficeGoMasterDataImportAdapter.cs:17-23
PowerOffice → ePortal PowerOfficeGoEmployeeImport Ansatte — matches på Code → wv_User.userEmplNo. Oppdatering kun (kan opprette nye hvis CreateNewUsers=true) PowerOfficeGoEmployeeImportAdapter.cs:18-21
ePortal → PowerOffice PowerOfficeGoInvoiceExport Godkjente fakturagrunnlag (wv_InvoiceBasis med Status='Approved') som utgående fakturaer via POST /OutgoingInvoice PowerOfficeGoInvoiceExportAdapter.cs:19-27
PowerOffice → ePortal PowerOfficeGoTimeKpiImport Timetransaksjoner fra GET /TimeTracking/TimeTrackingEntry lastes inn i lokal KPI-cache (per ansatt/aktivitet/dato). Brukes til time-rapportering uten å hamre PoGo Reporting API PowerOfficeGoTimeKpiImportAdapter.cs:14-22
PowerOffice → ePortal (live) Finansrapportering Saldobalanse, transaksjoner, budsjett og resultatsammendrag hentes on-demand uten lokal cache PowerOfficeGoFinancialReportingService.cs

Merk om API-base-URL: Stamdata-, ansatt-, faktura- og finansrapporterings-adapterne bruker https://go.poweroffice.net (default). Time-KPI-adapteren bruker https://api.poweroffice.net (det legacy Reporting API-et) (PowerOfficeGoTimeKpiImportAdapter.cs:41) — sett ApiBaseUrl eksplisitt hvis du flytter integrasjonen mellom miljøer.

Merk: Bilag fra aktivering-timer går ikke til PowerOffice Go. Den voucher-flyten er kun implementert mot Visma Business NXT.

Konti Connect-integrasjonslisten med en aktiv PowerOffice Go-integrasjon


Forutsetninger

  • PowerOffice Go-abonnement er aktivt
  • ePortal har Konti Connect-modulen aktivert for tenant
  • Du har generert Client ID + Client Secret i PowerOffice Go
  • Kontoplanen i PowerOffice Go er ferdig oppsatt — DefaultSalesAccount (standard 3000) brukes for fakturalinjer uten produktkode

Slik gjør du — første oppsett

1. Generer API-credentials i PowerOffice Go

I PowerOffice Go-administrasjonen oppretter du en API-bruker som gir deg Client ID og Client Secret. Disse brukes som maskin-til-maskin-credentials — det opprettes ingen vanlig brukersesjon.

2. Opprett integrasjon i Konti Connect

  • Gå til Konti Connect → Integrasjoner → Ny integrasjon
  • Velg ønsket adapter (PowerOfficeGoMasterDataImport, PowerOfficeGoEmployeeImport eller PowerOfficeGoInvoiceExport)
  • Fyll inn autentiseringsverdier:
  • ClientId (påkrevd)
  • ClientSecret (påkrevd, lagres kryptert)
  • Fyll inn konfigurasjonsverdier (se "Konfigurasjon" nedenfor)

Konti Connect integration-editor for en PowerOffice Go-adapter

3. Test tilkoblingen

Kjør integrasjonen manuelt fra Konti Connect (se Kjøre integrasjon manuelt). Den første kjøringen autentiserer mot /OAuth/TokenApiBaseUrl — ved feil får du HTTP 401 med PowerOffice Go sin egen feilmelding i loggen. Se PowerOfficeGoApiService.cs:110-112.

4. Aktivér og planlegg

Etter vellykket testkjøring kan integrasjonen aktiveres på vanlig måte i Konti Connect og settes opp med ønsket frekvens.


Konfigurasjon — adapterne

Stamdata-import (PowerOfficeGoMasterDataImport)

Nøkkel Standard Beskrivelse
ApiBaseUrl https://go.poweroffice.net API base-URL
ClientId OAuth client ID (auth)
ClientSecret OAuth client secret (auth)
EnableDeltaSync true Henter kun rader med lastChanged etter LastSyncTimestamp
LastSyncTimestamp (null) ISO-timestamp for siste vellykkede synk
ImportCustomers true Synk kunder → wv_Actor via delt aktør-writer (matcher på actCustNo; finnes ingen match, slås kunden sammen med en leverandør-rad med samme org.nr. før det opprettes en ny rad). acttID settes ikke — rollen (kunde/leverandør) avledes av at actCustNo/actSupNo er utfylt
ImportSuppliers true Synk leverandører → wv_Actor via delt aktør-writer (matcher på actSupNo; finnes ingen match, slås leverandøren sammen med en kunde-rad med samme org.nr. før det opprettes en ny rad). acttID settes ikke
ImportProducts true Synk produkter → wv_ExtCache_Product
ImportDepartments true Synk avdelinger → wv_Time_Dep + wv_ExtCache_AccVoucher (DataType=2)
ImportProjects true Synk prosjekter → wv_Time_Proj + wv_ExtCache_AccVoucher (DataType=3)
ImportGLAccounts true Synk kontoplan → wv_ExtCache_AccVoucher (DataType=1)

Kilde: PowerOfficeGoMasterDataImportAdapter.cs:63-66, 89-138.

Ansatt-import (PowerOfficeGoEmployeeImport)

Nøkkel Standard Beskrivelse
ApiBaseUrl https://go.poweroffice.net API base-URL
ClientId / ClientSecret Auth (påkrevd)
EnableDeltaSync true Delta-filter på lastChanged
UpdateEmail true Oppdater wv_User.userEmail
UpdatePhone true Oppdater telefonnummer
CreateNewUsers false Hvis true: opprett nye wv_User-rader for ansatte som ikke finnes
DefaultUserLevelId 2 Brukernivå for nye brukere

Matchnøkkelen er PowerOffice Employee.codewv_User.userEmplNo. Kilde: PowerOfficeGoEmployeeImportAdapter.cs:18-36.

Faktura-eksport (PowerOfficeGoInvoiceExport)

Nøkkel Standard Beskrivelse
ApiBaseUrl https://go.poweroffice.net API base-URL
ClientId / ClientSecret Auth (påkrevd)
DryRun false Validér uten å POSTe til PowerOffice Go
DefaultSalesAccount 3000 GL-konto som brukes for linjer uten egen produktkonto

Kilde: PowerOfficeGoInvoiceExportAdapter.cs:29-32, 76-82.

Time-KPI-import (PowerOfficeGoTimeKpiImport)

Nøkkel Standard Beskrivelse
ApiBaseUrl https://api.poweroffice.net Reporting API base-URL (annerledes enn de øvrige adapterne) (PowerOfficeGoTimeKpiImportAdapter.cs:41)
ClientId / ClientSecret Auth — kan settes i Auth-seksjonen eller i Config-seksjonen (PowerOfficeGoTimeKpiImportAdapter.cs:42-43)
InternalActivityTypeCodes 200,250 Komma-separert liste av aktivitets-koder som regnes som "intern" tid (filtreres ut i KPI) (PowerOfficeGoTimeKpiImportAdapter.cs:56)
EnableDeltaSync true Henter kun rader endret siden forrige kjøring (PowerOfficeGoTimeKpiImportAdapter.cs:284)
InitialLookbackDays 30 Hvor langt tilbake i tid det skal hentes første gang (når delta-cursor ikke finnes) (PowerOfficeGoTimeKpiImportAdapter.cs:287)
LookbackHoursOnDelta 24 Overlap i timer på delta-kjøringer (for å fange sent-bokførte timer) (PowerOfficeGoTimeKpiImportAdapter.cs:294)

Tabellen lagres i wv_Time_KpiSource_PoGo (lokal KPI-cache for å unngå runtime-hit mot PoGo). Brukes hovedsakelig som datakilde for tid-relaterte KAI Live-rapporter og dashboard.

Flyt for faktura-eksport:

  1. OAuth-autentisering
  2. Hent godkjente fakturagrunnlag (wv_InvoiceBasis.Status='Approved') inkludert linjer
  3. POST /OutgoingInvoice til PowerOffice Go — én faktura per fakturagrunnlag
  4. Marker fakturagrunnlaget som Status='Sent' og lagre ERP-referanse
  5. Marker kildelinjer på arbeidsordren (wv_WorkOrderLine) med InvoiceStatus=30 og InvoiceReference
  6. Logg i wv_Integration_SyncTracking

Konti Connect kjøringslogg etter vellykket faktura-eksport — antall fakturaer, antall linjer, varighet


Hva som ikke er implementert

For å unngå misforståelser — disse tingene er ikke del av PowerOffice Go-integrasjonen i ePortal:

  • Bilag/voucher-eksport fra aktivering-timer. Voucher-adapteren finnes kun for Visma Business NXT (VismaBusinessNXTVoucherAdapter).
  • Bilagsserier (VoucherSeries). Verken stamdata-import eller faktura-eksport bruker konseptet bilagsserier.
  • Webhooks / push fra PowerOffice Go. All synk er pull-basert via planlagt kjøring eller manuell trigger.
  • Frontend-dashboard for finansrapportering. Endepunktene under /api/financialreporting/* finnes, men det er ingen Angular-komponent som visualiserer dataene ennå.

Se POWEROFFICE_GO_INTEGRATION_DOCUMENTATION.md §7 Known Limitations.


Sikkerhet

  • Client Secret lagres kryptert i ePortal sin integrasjonskonfigurasjon.
  • Ingen brukerinnlogging eller refresh token. Access token utstedes med client_credentials og caches i 10 minutter (50 % av PowerOffice Go sin 20-minutters TTL). Se PowerOfficeGoApiService.cs:45, 121-125.
  • Token-cachen er isolert per komplett legitimasjonssett. Cache-nøkkelen er en SHA-256-digest over token-endepunktet, ClientId og ClientSecret — ikke ClientId alene. En integrasjon som oppgir en annen kundes ClientId med feil ClientSecret får bom i cachen og sendes til PowerOffice Go, som avviser den. ClientSecret havner aldri i nøkkelen, loggen eller feilmeldinger. Se PowerOfficeGoTokenCacheIdentity.cs.
  • Roter Client Secret i PowerOffice Go-administrasjonen ved mistanke om kompromittering — oppdater så ClientSecret-feltet i Konti Connect. Det nye legitimasjonssettet har sin egen cache-nøkkel og autentiseres mot PowerOffice Go ved første kjøring; den gamle oppføringen utløper av seg selv innen 10 minutter.
  • Rate limiting: 100 ms minimum mellom kall, 3 retries med eksponentiell backoff (1s/2s/4s) på 429 og 5xx. Respekterer Retry-After-header.
  • GDPR: Kunde- og ansatt-data overføres etter avtale — sjekk databehandleravtalen.

Vanlige problemer

OAuth-autentisering feilet: HTTP 401

Loggen viser PowerOffice Go sitt eget feilsvar.

  • Sjekk at ClientId og ClientSecret er korrekt limt inn (uten ekstra mellomrom)
  • Sjekk at API-brukeren i PowerOffice Go fortsatt er aktiv
  • Sjekk at ApiBaseUrl er korrekt (default https://go.poweroffice.net)

Kilde: PowerOfficeGoApiService.cs:110-112.

ClientId og ClientSecret er påkrevd i autentiseringsinnstillinger

Auth-verdiene mangler. Åpne integrasjonen i Konti Connect og fyll inn begge feltene under autentisering. Kilde: PowerOfficeGoMasterDataImportAdapter.cs:67-70.

Kundenummer ... utenfor int-område, hopper over

PowerOffice Go bruker long for Customer Code, mens ePortal lagrer som int. Kundenumre over ~2,1 milliarder hoppes over og rapporteres i loggen. I praksis svært sjelden. Kilde: PowerOfficeGoMasterDataImportAdapter.cs:183-188.

Ansatt-import oppdaterer ikke nye personer

CreateNewUsers er som standard false. Sett til true i konfigurasjonen hvis du vil at adapteren skal opprette wv_User-rader for ansatte som ikke matcher eksisterende userEmplNo.

HTTP 429 — Rate limit

PowerOffice Go har rate limits. ePortal venter automatisk i henhold til Retry-After-header og prøver opp til 3 ganger. Hvis kjøringen fortsatt feiler, vent og kjør på nytt — eller del kjøring opp i mindre batcher.

HTTP 5xx fra PowerOffice Go

Server-feil hos PowerOffice Go retries automatisk (1s, 2s, 4s). Hvis alle 3 forsøk feiler, sjekk PowerOffice Go status-side og prøv på nytt senere.


Relaterte sider