Connectors

How the connector framework works — setting up integrations with external systems like ERPs, payment providers, shipping carriers, and e-commerce platforms.

What Are Connectors?

Connectors are the bridge between Omnium and external systems. Every integration — whether it's exporting orders to an ERP, capturing payments via Stripe, or booking shipments with Bring — runs through a connector.

A connector consists of two parts:

  1. Configuration — Stored per tenant as connector settings. Contains the endpoint URL, credentials, custom properties, and market restrictions. Managed by administrators in the Omnium GUI.
  2. Implementation — The code that knows how to talk to the external system. Omnium ships with 50+ built-in implementations. The connector framework matches configuration to implementation at runtime.

This page explains how connectors work, how to set them up, and how they integrate with the rest of the system. For individual provider setup guides, see the Plugins section in the sidebar navigation.


Connector Categories

Omnium organizes connectors by function:

CategoryWhat It DoesExamplesDocumentation
PaymentProcesses payments — authorization, capture, refundKlarna, Stripe, Adyen, Vipps, PayPalPayment Plugins
ShippingBooks shipments, prints labels, tracks deliveriesBring, PostNord, GLS, nShift, IngridShipping Plugins
E-CommerceSyncs orders and products with webshop platformsShopify, MagentoShopify, Magento
ERPExports orders, invoices, and inventory to business systemsDynamics 365, Fortnox, PowerOffice, TripleTexFortnox, PowerOffice, TripleTex
POSIntegrates with point-of-sale systemsSitoo, Flow, FrontSystemsSitoo, Flow
CRMSyncs customer data and loyalty programsVoyadoVoyado
WMSIntegrates with warehouse management systemsOngoingOngoing
OtherNotifications, feeds, and specialized integrationsSendGrid, Google Feeds, LinkMobilitySendGrid, Google Feeds

How Connectors Fit into the System

Connectors don't run in isolation — they're triggered by other parts of Omnium:

Workflow Steps

The most common way connectors are used. When an order transitions to a new status, workflow steps fire — and many of those steps use connectors:

Order status changes to "Ship"
  → Workflow step: CapturePayments (uses Payment connector)
  → Workflow step: CompleteShipment (uses Shipping connector)
  → Workflow step: ExportOrder (uses ERP connector)
  → Workflow step: Notification (uses email/SMS connector)

Each workflow step has a Connector and ConnectorId field that tells it which connector to use. See Order Lifecycle for how workflows work.

Scheduled Tasks

Background tasks that run on a schedule can use connectors to sync data:

  • Import inventory from ERP
  • Fetch orders from e-commerce platform
  • Sync customer data from CRM
  • Poll for delivery status updates from carriers

Cart and Checkout

During checkout, connectors are called directly:

  • Payment connectors — Handle payment authorization and checkout sessions
  • Shipping connectors — Calculate shipping options and delivery estimates
  • Validation connectors — Validate customer data, addresses, or fraud checks

Manual Actions

Staff can trigger connector actions manually from the Omnium GUI — for example, re-exporting an order to ERP or manually capturing a payment.


Setting Up a Connector

Step 1: Navigate to Connector Settings

Go to Configuration > Advanced Settings > Connectors in the Omnium GUI.

You'll see a grid listing all configured connectors with their name, type, host, and credentials.

Step 2: Add a New Connector

Click the context menu and select Add. A new connector entry is created with default values. Click it to open the editor.

Step 3: Configure the Connector

The connector editor has multiple tabs:

Settings Tab

FieldDescriptionExample
NameIdentifier used by the system to find this connector. Must match the expected connector name for the integration.Shopify, Dynamics365, Bring
Display NameHuman-readable name shown in the GUIShopify Norway, D365 Production
TypeThe connector implementation typeShopify, dynamics365
Connector IDUnique identifier. Required when you have multiple connectors of the same type (e.g., two Shopify stores).shopify-norway, shopify-sweden

The Name field is critical. It must exactly match the name expected by the integration (e.g., Shopify, Dynamics365, Bring). Check the specific plugin documentation for the correct name to use.

Authentication Tab

Connectors support multiple authentication schemes. Fill in whichever fields your integration requires:

Token-based authentication:

FieldDescription
HostThe API endpoint URL (e.g., https://api.provider.com)
Bearer TokenA long-lived API token sent as Authorization: Bearer {token}

Basic authentication:

FieldDescription
HostThe API endpoint URL
UsernameBasic auth username
PasswordBasic auth password

OAuth authentication:

FieldDescription
HostThe API endpoint URL
Client App IDOAuth application/client ID
Client App SecretOAuth application/client secret
Tenant URLOAuth authority URL (e.g., for Azure AD)
OAuth TenantOAuth tenant identifier
OAuth ResourceOAuth resource URI

Other settings:

FieldDescription
TimeoutHTTP request timeout in milliseconds (default varies by connector)
Handler LifetimeHow long to reuse the underlying HTTP connection handler
Is Authenticated ManuallySet to true if the connector handles authentication itself rather than using the standard header injection

Properties Tab

Properties are key-value pairs for connector-specific settings that don't have dedicated fields. Each integration uses different properties — check the specific plugin documentation (see the Plugins section in the sidebar) for which properties are required.

Common property patterns:

Property KeyDescriptionExample
AccessTokenAPI access tokenshpat_abc123...
ShopifyUrlStore-specific URLmystore.myshopify.com
ServiceBusConnectionStringAzure Service Bus connectionEndpoint=sb://...
OrderQueueNameQueue name for order syncorders-inbound
IsTestEnable test/sandbox modetrue

Properties can be organized into groups using the Key Group field for easier management when a connector has many settings.

Value types available: String, Boolean, DateTime, Date, Number, Textarea, JSON, File, Store, OrderStatus

Custom Headers Tab

Add HTTP headers that are sent with every request to the external system. Useful for API versioning, tenant identification, or custom authentication schemes.

KeyValue
X-Api-Version2024-01
X-Store-Idstore-norway

Markets Tab

Control which markets this connector serves:

FieldDescription
Enabled For MarketsIf set, the connector is only available for these markets. If empty, available everywhere.
Disabled For MarketsThese markets are excluded even if they match "Enabled For Markets".
Enabled For Market GroupsSame as above but for market groups.
Disabled For Market GroupsSame as above but for market groups.

Multiple connectors of the same type: If you operate in multiple markets with different provider accounts (e.g., Shopify Norway and Shopify Sweden), create separate connector entries with unique Connector IDs and configure their market restrictions accordingly.

Step 4: Save and Publish

Connector changes go through the draft/publish workflow:

  1. Save as Draft — Changes are saved but not active
  2. Publish — Changes become active across the system

This lets you prepare configuration changes and review them before they affect live operations.


Connector Resolution

When the system needs a connector (e.g., a workflow step needs to export an order), it resolves the right connector instance using this priority:

1. Explicit Connector ID (if the workflow step specifies one)
   ↓ (not found)
2. Market-specific connector (matching the order's market)
   ↓ (not found)
3. Global connector matching the market group
   ↓ (not found)
4. Global connector matching the connector name/type

This means you can have:

  • A default connector for most markets
  • Market-specific overrides for markets that use different provider accounts
  • Explicit selection for workflow steps that must use a particular connector instance

Payment and Shipping Configuration

Payment providers and shipping carriers have additional dedicated configuration beyond the standard connector settings.

Payment Providers

Payment providers are configured under Configuration > Payments (not the Connectors section). Each payment method has:

FieldDescription
NameInternal payment method identifier
Payment Method NameDisplay name for the payment method
Provider NameThe payment gateway implementation (e.g., Stripe, KlarnaCheckout)
Merchant IDYour merchant account identifier
API TokenAPI key or secret from the provider
Base URLProvider API endpoint (test vs. production)
Valid On MarketsWhich markets this payment method is available on

See the specific Payment Plugins documentation for provider-specific fields.

Shipping Providers

Shipping providers are configured under Configuration > Shipping. Each provider has:

FieldDescription
NameInternal provider identifier
Shipping GatewayThe gateway implementation (e.g., bring, postnord)
Merchant IDYour carrier account ID
API TokenAPI key from the carrier
Base URLCarrier API endpoint
Is TestToggle between test and production mode
Shipment OptionsThe shipping products available (e.g., "Express", "Standard", "Pickup Point")
Valid On MarketsWhich markets this carrier serves

See the specific Shipping Plugins documentation for carrier-specific fields.


Connecting to Workflow Steps

Once a connector is configured, you connect it to your order workflow by referencing it in workflow steps.

In the Workflow Chart

  1. Navigate to Configuration > Order Types and open the workflow chart
  2. Add a workflow step to a status (e.g., add ExportOrder to the "Ship" status)
  3. Set the step's Connector field to your connector name (e.g., Dynamics365)
  4. Optionally set the Connector ID if you have multiple connectors of the same type

Connector and ConnectorId on Workflow Steps

FieldWhen to Use
ConnectorThe connector name/type. Required for steps that call external systems.
ConnectorIdThe specific connector instance ID. Only needed when you have multiple connectors of the same type and need to target a specific one.

Example: You have two ERP connectors — one for Norway (d365-norway) and one for Sweden (d365-sweden). Your workflow step for ERP export sets:

  • Connector = Dynamics365
  • ConnectorId = d365-norway

Or, if the connectors have market restrictions configured, you can leave ConnectorId empty and the system will automatically select the right connector based on the order's market.


Multiple Connectors of the Same Type

A common scenario is running the same type of integration for different markets, stores, or business units. Omnium handles this through:

Create multiple connectors with different market restrictions:

Connector NameConnector IDEnabled For Markets
Shopifyshopify-nornor
Shopifyshopify-sweswe

The system automatically selects the correct connector based on the order's market.

Option 2: Explicit Selection

Reference a specific connector by ID in the workflow step configuration. Use this when market-based selection isn't sufficient — for example, when you need different connectors for different order types within the same market.

Option 3: Store-Level Configuration

Some connectors support store-level routing via properties. For example, the Shopify connector uses an OrderPrimaryStore property to match connectors to specific stores.


Field Mapping

Some connectors support field mapping — mapping Omnium property names to the external system's field names. This is configured in the connector's settings:

Omnium PropertyConnector Property
Nameproduct_title
SkuIdsku
Brandvendor

Field mapping is primarily used by e-commerce connectors (like Magento) where the external system's data model differs from Omnium's.


Error Handling

Retry Policies

By default, connectors use a standard error policy with automatic retries for transient failures (network timeouts, 5xx errors). You can disable this per connector by setting Disable Standard Error Policy to true.

Workflow Step Error Behavior

When a connector call fails during a workflow step:

StopOnError SettingBehavior
false (default)The workflow continues with the next step. The failed step is logged as an error.
trueThe workflow stops. Remaining steps are skipped. The order stays in its current status for manual intervention.

Monitoring Connector Errors

  • Event Log — All connector calls are logged in the event log. Filter by category to find connector-specific events.
  • Workflow Results — Each workflow execution shows the result of every step, including error messages from failed connector calls.
  • Order Errors — Failed connector calls can add errors to the order entity, visible in the order detail view.

Common Setup Patterns

ERP Integration (Order Export)

Goal: Export completed orders to your ERP system.

  1. Create a connector with your ERP credentials
  2. Add the ExportOrder workflow step to the appropriate order status (e.g., "Ship" or "Completed")
  3. Set the workflow step's Connector field to your ERP connector name
  4. Configure the export format via connector properties

For more details, see Data Out.

E-Commerce Sync (Order Import)

Goal: Import orders from your webshop into Omnium.

  1. Create a connector with your e-commerce platform credentials
  2. Configure a scheduled task to poll for new orders at a regular interval
  3. Or set up a webhook from your platform to push orders to Omnium

For more details, see Data In.

Payment Processing

Goal: Accept and process payments during checkout.

  1. Configure a payment provider under Configuration > Payments
  2. Add payment workflow steps to your order statuses:
    • AuthorizePayment at the "New" status
    • CapturePayments at the "Ship" status
    • CancelPayments at cancellation statuses

See the specific Payment Plugins documentation for provider setup.

Shipping and Label Printing

Goal: Book shipments and print labels.

  1. Configure a shipping provider under Configuration > Shipping
  2. Add shipping workflow steps:
    • CompleteShipment — Books the shipment with the carrier
    • PrintShippingLabel — Generates the shipping label
    • UpdateShipmentStatus — Syncs tracking status from the carrier

See the specific Shipping Plugins documentation for carrier setup.

Event-Driven Integration (Webhooks)

Goal: Notify external systems when events happen in Omnium.

  1. Add the WebhookWorkflowStep to the relevant order status
  2. Configure the webhook URL and HTTP method via workflow step properties
  3. Or use the Event Subscription system for broader event coverage

For more details, see Events.


Checklist: Before Going Live

Before activating a connector in production:

  • Credentials are set for the production environment (not test/sandbox)
  • The connector's Host URL points to the production API endpoint
  • Market restrictions are configured correctly (or left empty for all markets)
  • The connector is referenced in the correct workflow steps
  • You've tested the integration in the test environment first
  • Timeout values are appropriate for the external system's response times
  • Error handling is configured — decide whether workflow steps should stop on error or continue
  • The draft is published — connector changes don't take effect until published

Where to Go Next

QuestionDocumentation
How do I set up a specific provider?Payment Plugins, Shipping Plugins
How do I import data into Omnium?Data In
How do I export data from Omnium?Data Out
How do webhooks and events work?Events
How do I handle large data volumes?Scrolling
How do workflow steps trigger connectors?Order Lifecycle