With the Severa–PowerOffice integration, you can transfer sales invoices seamlessly from Severa to PowerOffice. The integration also allows you to import purchase invoices from PowerOffice into Severa as project costs. This enables you to manage project business efficiently in Severa and handle accounting in PowerOffice, minimizing the need for manual data entry.
The integration is in pilot phase. If you want to start using the integration, contact Severa customer service by email at severa.support@visma.com.
How does the integration work?
The integration synchronizes customers, business units, regular products, projects and employees between the systems. Projects created in Severa can be transferred to PowerOffice, and sales invoices are transferred automatically based on the invoice status. The status of sent invoices and the status of paid invoices are also updated back to Severa. Purchase invoices are transferred from PowerOffice to Severa by assigning the cost in PowerOffice to the corresponding Severa project.
Synchronization schedule
Data transfer in the integration works automatically in a staggered cycle based on the time of day. This optimizes system performance and ensures that the data is as up to date as possible when it is needed the most. Data is synchronized according to the following schedule (times in Finnish time):
- Day (08:00–19:00): Data is updated automatically every 10 minutes.
- Evening (19:00–00:00): Data is updated every 1 hour.
- Night (00:00–08:00): No data is transferred during the night. Changes made during the night are synchronized in bulk starting at 08:00 in the morning.
Before enabling the integration
Before the integration is enabled, it is important to ensure the following:
- Make sure that existing data and registries (customers, regular products, travel expenses, work types, projects) match between the systems. For this, use the Registry comparison report available in Severa’s integration settings. The report calculates similarity scores for items and shows whether they will be matched correctly according to the integration logic.
- Make sure that every Severa product, work type and travel expense has a corresponding product in PowerOffice with the same code. Also ensure that there are no duplicate codes between different product types in Severa.
- If you use product categories in Severa, make sure that corresponding product categories with the same identifiers exist in PowerOffice.
Selecting the master system
In the integration you choose which of the systems is the master. The master selection affects the transferred data as follows:
- In synchronized registries, newly created items are added to both systems regardless of which system they were created in.
- Updates to existing items are transferred only from the defined master system to the other system.
- The master can be selected separately for each registry.
Transferred data
Customers
Customers are matched between the systems based on the customer number. The following rules apply to transferring customer data between the systems:
- Inactive customers: Inactive customers are not synchronized from either system.
- In-house customers and prospects: Severa’s in-house customers or customers marked as prospects are not transferred.
- Synchronization criteria: A customer is synchronized only if at least one of the following conditions is met:
- The customer has an active project in Severa.
- An invoice has been created for the customer in Severa.
Once these criteria are met one time, the integration will remember the customer in the future even if the criteria change later. The headquarter address of the Severa customer is transferred to PowerOffice as the delivery address.
Regular products, work types and travel expenses
Severa’s regular products, work types and travel expenses are synchronized with the PowerOffice product registry. Items are matched based on the Severa product, work type and travel expense identifier and the PowerOffice product code. The following rules apply to synchronizing regular products, work types and travel expenses:
- Regular products that already exist in the systems before the integration is activated are not transferred automatically between the systems.
- New regular products created after the integration is enabled are transferred automatically.
- The Severa identifier and the PowerOffice product code cannot be empty.
- If you transfer purchase invoice rows from PowerOffice to Severa as project costs, it is recommended to create a default product in Severa to be applied to these costs.
Projects
Projects are matched based on the project number. Only projects whose status in Severa is Voitettu (won) are transferred to PowerOffice. If you create a project directly in PowerOffice, it is created in Severa automatically with the status Won.
Business units
Severa business units are synchronized with PowerOffice departments. Matching is done based on the code entered in the Severa business unit details and the PowerOffice department code. Make sure that the codes match in both systems. You can find the business unit code in Severa under the cogwheel icon in Settings > Organization > Business units.
Enabling the integration
1. Enable the integration add-on
To activate the integration, you must first enable the related add-on. In Severa, go to the cogwheel icon: Settings > Subscription > Integrations and switch on the PowerOffice option.
2. Authentication
Next, a secure connection must be established between the systems. The user activating the integration must have sufficient permissions in PowerOffice: the user must either be an administrator in PowerOffice or have the permission Settings > Organization.
- Click the Authenticate button in Severa’s integration settings.
- Enter your PowerOffice login credentials in the window that opens.
- The authentication process activates the integration and automatically retrieves the required client key and client secret.
3. Defining integration settings
Define the general rules for the integration, such as the master systems for registries and invoice statuses, according to the detailed instructions below.
4. Registry check before enabling
Make sure that the registry check has been performed before enabling the integration using the Registry comparison report . The report calculates similarity scores for items and shows whether they will be matched correctly according to the integration logic.
5. Switch the integration on
When all settings have been defined and the customer, product, work type, travel expense and project registries have been checked, activate the integration by switching on the main toggle Enable integration.
Invoice transfer settings
Sales invoices
Severa invoice statuses are used to trigger data transfer and to track the situation. Plan and create in Severa the invoice statuses you want to use in the integration. The following invoice statuses are required in the integration:
- A status that triggers the transfer of the invoice to PowerOffice
- A status that the invoice receives in Severa after a successful transfer
- A status for invoices that have been sent to the end customer
- A status for invoices that are paid
Invoice numbering
PowerOffice acts as the master for sales invoice numbers. Make sure that new invoice numbers do not overlap with any old numbering in the systems and that numbering continues consistently.
Purchase invoices
Purchase invoices are transferred from PowerOffice to Severa by assigning the project number to the invoice row in PowerOffice. After this, the purchase invoice rows are transferred to Severa as costs of the respective project in the Financials > Fees & other expenses section.
Technical description and field mappings
Customers
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | Id | Unique identifier |
| number | Number | Primary customer number. Used for synchronization. |
| name | Name | Official company name |
| vatNumber | OrganizationNumber | Vat number / VAT number |
| EmailAddress | Primary organization email address | |
| isActive | IsArchived | Customer status (Active / Archived) |
| headquarterAddress.addressline (row 1) | MailAddress.AddressLine1 | Street address row 1 |
| headquarterAddress.addressline (row 2) | MailAddress.AddressLine2 | Street address row 2 |
| headquarterAddress.postalCode | MailAddress.ZipCode | Postal code |
| headquarterAddress.city | MailAddress.City | Postal town |
| headquarterAddress.country | MailAddress.CountryCode | ISO 2-letter country code (e.g. NO, FI) |
| currency.code | CurrencyCode | Currency code |
| isPrivatePerson | IsPerson | Indicates whether the customer is a private person |
| paymentTerm | PaymentTerm | Payment terms in days (default) |
| website | WebsiteUrl | Customer website |
| - | InvoiceDeliveryType | Determined automatically: 'PdfByEmail' if an email address exists, otherwise 'Print'. |
Contacts
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | ExternalCode | Unique identifier of the contact person |
| customer.number | ContactId | Links the contact person to the main customer |
| firstName | FirstName | First name |
| lastName | LastName | Last name |
| emails | EmailAddress | Primary email address |
| phoneNumbers | PhoneNumber | Work phone number |
| jobTitle | Title | Title / role |
| isActive | IsActive | Whether the contact person is active |
Contact addresses
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| Guid | ContactId | Unique identifier |
| CustomerCode / externalCode | - | Links the address to the Severa contact person |
| IsBillingAddress | - | Defined as billing address |
| Street | MailAddress.StreetAddress | Street address |
| ZipCode | MailAddress.PostalCode | Postal code |
| City | MailAddress.City | City |
| Country | MailAddress.CountryCode | ISO 2-letter country code (e.g. NO, FI) |
Product categories
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| Guid | Id | Unique identifier |
| Code | Code | Group code or number |
| Name | Name | Descriptive group name |
| isActive | IsArchived | Whether the product category is active or archived |
Regular products
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | Id | Unique identifier |
| productCategory | ProductGroupCode | Link to product category |
| code | Code | Primary product code or SKU |
| name | Name | Product name |
| proposalDescription | Description | More detailed product description |
| unitPrice.amount | UnitPrice | Default unit price (before VAT) |
| measurementUnit | UnitOfMeasureCode | Unit of measure |
| isActive | IsArchived | Product status (Active / Archived) |
| type | ProductType | Logical mapping: Severa: FixedFees + Materials = PO: Product Severa: SubContracting = PO: Service |
Projects
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | Id | Unique identifier |
| customer.number | CustomerNo | Customer number the project belongs to |
| Number | Code | Project number |
| Name | Name | Project name |
| isClosed | IsActive | Project status (Active / Closed) |
| isInternal | IsInternal | Indicates whether the project is in-house |
| StartDate | StartDate | Planned project start date |
| Deadline | EndDate | Planned end date / deadline |
| BusinessUnit.Code | DepartmentCode | Link to Severa business unit |
| projectOwner.code | ProjectManagerEmployeeNo | Project manager’s / owner’s employee number |
| orderNumber | PurchaseOrderNo | Customer purchase order number |
| isJoiningAllowed | AllowAllEmployees | If true, all employees have access |
| customerContact.guid | ContactPersonId | Customer contact |
Users (Users / Employees)
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | Id | Unique identifier |
| Code | Number | Employee number / code |
| FirstName | FirstName | First name |
| LastName | LastName | Last name |
| EmailAddress | Primary work email | |
| Mobile | PhoneNumber | Mobile phone |
| BusinessUnitCode | DepartmentCode | Link to business unit |
| IsActive | IsArchived | User status in the system (IsArchived != IsActive) |
| SuperiorUser | ManagerEmployeeNo | Manager’s employee number |
| address (row 1) | MailAddress.AddressLine1 | Street address row 1 |
| address (row 2) | MailAddress.AddressLine2 | Street address row 2 |
| city | MailAddress.City | City |
| postalCode | MailAddress.ZipCode | Postal code |
| country | MailAddress.CountryCode | ISO 2-letter country code (e.g. FI, NO) |
Sales invoices (Invoices)
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| guid | Id | Unique identifier |
| SalesOrderNumber | Number | Invoice number. PowerOffice acts as the master. |
| CustomerId | - | Customer identifier (matched based on CustomerNumber) |
| SalesOrderDate | InvoiceDate | Invoice date |
| PaymentTermId | PaymentTerm | Payment terms |
| DueDate | - | Due date (calculated according to payment terms) |
| CurrencyCode | CurrencyCode | Currency code (e.g. EUR, NOK) |
| ProjectId | - | Project identifier (matched based on project number) |
| CustomerReferenceContactPersonId | senderContactGuid | Customer contact |
| ContactDeliveryAddressId | receiverAddress | Recipient address |
Invoice rows
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| Guid | Id | Unique row identifier |
| ProductCode | ProductCode | Product code |
| Quantity | Quantity | Quantity |
| UnitPrice | ProductUnitPrice | Unit price before VAT |
| Description | Description | Row description text |
| rowType | LineType | Row type |
Purchase invoice rows
| Field in Severa | Field in PowerOffice | Description |
|---|---|---|
| ProjectCode | ProjectCode | Project code (required for cost billing) |
| ProductCode | ProductCode | Product code |
| Quantity | Quantity | Quantity |
| unitPrice.amount | ProductUnitPrice | Product unit price |
| Description | Description | Row description text |
| productType | FromProduct | Mapping: Severa: FixedFees + Materials = PO: Product Severa: SubContracting = PO: Service If there is no product code, the default product is used. |
| unitPrice.currencyCode | CurrencyCode | Currency code |
Did you find it helpful? Yes No
Send feedback