Unigate

This document explains how to configure OMS with Unigate for sending email notifications (e.g., Ready for Pickup emails).

1. System Message Remote

Defines a remote system endpoint to which messages (emails) will be sent.

  • description β†’ Label for the integration

  • sendUrl β†’ Endpoint where messages will be sent (from SystemMessageRemote entity in OMS)

  • systemMessageRemoteId β†’ Unique identifier for this remote configuration

<SystemMessageRemote 
    description="Send email to [instance name]" 
    sendUrl="https://a.klaviyo.com/api/" 
    systemMessageRemoteId="KLAVIYO"/>

## 2. Communication Gateway Config

Configures the gateway that will handle sending emails via Unigate.

* **commGatewayConfigId** β†’ Unique ID for the gateway
* **description** β†’ Name of the gateway
* **sendEmailServiceName** β†’ Service in Moqui used to send the email

Available services:

1. `co.hotwax.klaviyo.KlaviyoServices.send#EmailCommunication` β†’ Send an email
2. `co.hotwax.klaviyo.KlaviyoServices.create#WorkflowEvent` β†’ Create an event in Klaviyo
3. `co.hotwax.klaviyo.common.KlaviyoServices.send#KlaviyoRequest` β†’ Send a request to Klaviyo

```xml
<co.hotwax.unigate.CommGatewayConfig 
    commGatewayConfigId="KLAVIYO"
    description="Klaviyo Gateway For [instance name]"
    sendEmailServiceName="co.hotwax.klaviyo.KlaviyoServices.send#EmailCommunication"/>

3. Instance Party

Represents the organization (instance) that will use this integration.

  • partyId β†’ Unique ID for the organization

  • partyTypeEnumId β†’ Defines that it is an Organization type (PtyOrganization)

  • organizationName β†’ Name of the organization

4. Communication Gateway Auth

Defines the authentication link between the remote system, gateway config, and tenant.

  • systemMessageRemoteId β†’ Connects to remote system

  • commGatewayConfigId β†’ Connects to gateway configuration

  • tenantPartyId β†’ The tenant/organization using this gateway

5. Client User Credentials

Creates an instance user account for Unigate API access.

  • userId β†’ Unique identifier for the user

  • username β†’ Username for authentication

  • userFullName β†’ Display name of the user

  • partyId β†’ Links user to organization

Also, assign user to UNIGATE_API group.

6. Unigate System Configuration

Defines the Unigate integration endpoint for sending/receiving messages.

  • systemMessageRemoteId β†’ Unique ID for this config

  • description β†’ Explains purpose

  • sendUrl β†’ Instance URL with Unigate REST endpoint

  • publicKey β†’ Generated from [Unigate Tenant Detail page]

  • remoteId β†’ Remote ID created above

  • internalId β†’ References partyId

7. Enumerations

Defines message types for sending specific emails.

  • enumId β†’ Unique identifier

  • description β†’ Explanation

  • enumTypeId β†’ E.g. OMSMessageTypeEnum

  • relatedEnumId β†’ Links to another enum (event trigger)

8. Product Store Email Settings

Configures store-level email settings to use Unigate.

  • emailType β†’ Type of email (enumCode)

  • productStoreId β†’ Store ID

  • subject β†’ Email subject line

  • systemMessageRemoteId β†’ References Unigate configuration

9. System Message Type

Defines the service triggered to send the email.

  • systemMessageTypeId β†’ Unique identifier

  • description β†’ Purpose

  • sendServiceName β†’ Moqui service for sending email

  • sendPath β†’ Category/path (e.g., communication/email)

10. Communication Event Type

Defines the event type for system message emails.

  • communicationEventTypeId β†’ SYS_MSG_EMAIL_COMM (hardcoded)

  • parentTypeId β†’ Parent category (EMAIL_COMMUNICATION)

  • hasTable β†’ Whether it has its own table (N)

  • description β†’ Explanation

  • contactMechTypeId β†’ EMAIL_ADDRESS

Last updated