Skip to content

Test & Smile Connector

This connector exchanges OMD data with a Test & Smile portal. Customer data including information about the planned resource is transmitted for all upcoming visits.

All data transfer between OMD and the Test & Smile portal is done over HTTPS (TLS), so data is encrypted in transit.

Two methods are provided, time-controlled and event-controlled.

Time-Controlled

Once a day (12:00 a.m.) all data for appointments from -48 h to +48 h for all resources is sent to Test & Smile.

Event-Driven

In the following case, an additional transfer is automatically triggered:

  • One or more tasks for a resource are scheduled for today. This also includes the case that one or more orders are moved from one resource to another resource.

Changes to existing orders, planning, new unavailabilities or changes to the daily work pattern are not transmitted.

Requirements

  • A Test & Smile portal with the admin role
  • The portal endpoint must be configured with an https:// URL.

Available API

Important: call these endpoints over HTTPS in production so request parameters, credentials, and payload data are encrypted during transport.

Base hostnames:

  • Production: https://www.optimizemyday.com
  • Sandbox: https://sandbox.optimizemyday.com

The application exposes two API groups:

  1. Connector operations under /rest/v1/* (authenticated, admin role).
  2. Service info under /info/* (unauthenticated).

Connector operations

Base path:

  • /omd-calendar-testandsmile/rest/v1
Endpoint Method Query parameters Description
/push GET configId (required, integer) Processes pending messages in CalendarUpdate for the given configuration and pushes them to Test & Smile and SafetyTest.
/upload GET configId (required, integer) Uploads all planned visits in the configured time window (hoursBack/hoursForward) for Test & Smile and SafetyTest.

Responses:

  • 200 OK with a JSON log payload when processing completes.
  • 500 Server Error with a JSON log payload when configId is missing, invalid, or processing fails.

Examples:

  • GET /omd-calendar-testandsmile/rest/v1/upload?configId=123
  • GET /omd-calendar-testandsmile/rest/v1/push?configId=123

Service info

Base path:

  • /omd-calendar-testandsmile/info
Endpoint Method Description
/version GET Returns plain text release version.
/ (or any other /info/* path) GET Returns JSON with version, for example: { "version": "<release>" }.

Configuring the service in OMD

Preference Name Default Description
calendar.generic.synchronize false Used to turn synchronization with generic calendars on or off.
calendar.testandsmile.serviceRootUri The service URI of the Test & Smile portal.
calendar.testandsmile.user The account name with which the connection is established.
calendar.testandsmile.password The password with which the connection is established.
calendar.testandsmile.hoursBack 48 The number of hours in the past up to which visits are considered for upload. Any visits older that that will not be processed.
calendar.testandsmile.hoursForward 48 The number of hours in the future up to which visits are considered for upload. Any visits later that that will not be processed.

Operational Semantics

Selection and processing rules

  • Full upload processes planned tasks in the configured window (hoursBack to hoursForward).
  • Incremental push processes today's pending CalendarUpdate entries with action INSERT or UPDATE.
  • Only open and assigned tasks are included.
  • Resources marked inactive for this connector are excluded.

Transfer format and behavior

  • Visits are sent as an XML payload (Visits with repeated Visit entries).
  • Address and scheduling values are transferred as visit attributes.

Retry behavior

  • Repeated upload or push runs are operationally safe and can be used for retries after transient issues.

One-Way Communication

Note that the connector works only in one direction, from OMD to Test & Smile. Data collected with Test & Smile is not communicated back to OMD.

Data Mapping

See the public mapping overview here: Test & Smile Mapping.

Ignore Resource during Communication

To avoid a resource's visits to be considered for synchronization, set the resource's process flow preference calendar.testandsmile.active to false.