---
title: "Collection service workflow"
slug: "collection-service-workflow"
abstract: "Overview of how public clients can submit interactions and events to the Universal Tracker (UT) collection service."
---
# Collection service workflow

Public clients can submit interactions and events to the Universal Tracker (UT) collection service in two ways.

- Timeout completion
- Triggered completion

## Timeout completion

A public client sends an interaction to  the *InteractionController* and receives back a *TrackingInteractionID* that represents a unique identifier of stored interaction.

When it happens *XConnect.Interaction* is wrapped into a *TrackingInteraction* and recorded in the database. The collection service adds the Created and Scheduled date columns.

The public client can add any number of events to an interaction by sending a *put* request to the collection service. The put request must contain a valid *TrackingInteractionId* and a valid event. After the collection service has validated the request, it updates the Scheduled column in the related *TrackingInteraction* database.

For each channel in  the processing service you can set a timeout period. If a public client does not send any events to the *InteractionController* within the timeout period, the collection services closes the interaction and marks it ready for processing.

## Triggered completion

The public client explicitly indicates when the interaction is complete. After the interaction has been marked complete, the collection service will not accept further tracking events for the interaction. The *TrackingInteractionID* will no longer validate.

> [!note]
> Even though the interaction has been marked complete, it may take a while before it is processed.