---
title: "Configure the processing service"
slug: "configure-the-processing-service"
abstract: "How to configure the way the processing service processes interactions. For example, if you have two or more processing service instances, you can select different channels for each one to process."
---
# Configure the processing service

You can configure how the processing service processes interactions. For example, if you have two or more processing service instances, you can select different channels for each one to process.

> [!note]
> To start the Sitecore Universal processing Service web application, make sure that a request has been sent to the web application. To check the status of the processing service, open a browser and navigate to `<instance_name>/status`.

There are five configuration files that contain the settings for the processing service in Universal Tracker (UT).

> [!note]
> Use patch files to change configurations. Do not edit the configuration files directly.

The configuration files are:

1. `<website_name>\sitecore\Sitecore.Tracking.Processing.ChannelManagement\PipelinesConfig\channelTypes.json`

    This configuration file contains the channels that are defined in Sitecore. The UT processing service only processes interactions from these channels.

    Each channel has this structure:

    - *Id* - the Sitecore item unique identifier for a [channel](https://doc.sitecore.com/xp/en/users/104/sitecore-experience-platform/en/channels.html). You find the ID in the Sitecore marketing control panel.

        > [!note]
        > The default channel IDs in `channelTypes.json` may not match the actual IDs on your installation. To enable the channels, you must enter the correct IDs by opening your Marketing Control Panel, copying the IDs of the channels, and pasting the IDs into the channels in `channelTypes.json`.

    - *Name* - the channel name. Can be different than the name that is set for the channel in Sitecore.
    - *TimeOut* - defines when the collection service marks an interaction as closed. If an active interaction is not updated for the period of time defined in *TimeOut*, the collection service marks the interaction closed, retrieves it from storage, and sends it to processing.
    - *Type* - fully qualified name of the channel type.
2. `<website_name>\sitecore\Sitecore.Tracking.Processing.ChannelManagement\PipelinesConfig\channelTypeDefinitions.json`

    This configuration file contains extension points for defining pre-filter, enrichment, and post-filter pipelines for specific channels. The file has the following structure:

    - *Channels* - an array of channel groups with their pipelines and processors. A group allows you to apply a configuration to a number of channels at once. You do this by adding the channel IDs to the group.
    - *GroupName* - the name of the channel group. If you name a group *default*, the definitions in the group will be used for any channel that is not included in any groups. If you name the group anything else, the definitions in it will only be used for channels that are included in the group's *IDs* array.
    - *IDs* - an array of channel IDs. The IDs are defined in the `channelTypes.json` file.
    - *Type* - a base channel type definition that uses fully qualified channel pipeline names.
    - *PreFilters* - the first pipeline the processing engine runs. The pipeline contains two sections:
        - *Type* - a fully qualified name of a pre-filtering pipeline object.
        - *Processors* - an array of processors that run inside the pre-filtering pipeline. You  can extend this array with your own types by including them in JSON with a fully qualified name.
    - *Enrichment* - the second pipeline the processing engine runs. It contains the same sections as the *PreFilters* pipeline.
    - *PostFilters* -  the final pipeline the processing engine runs. It contains the same sections as the *PreFilters* pipeline.
3. `<website_name>\sitecore\Sitecore.Tracking.Processing.Engine\Config\config.xml`

    This configuration file contains the basic settings that control the processing engine. The settings are:

    - *Tracking.Processing.ProcessingInterval* - the length of the interval, in number of seconds, between times when the processing service checks for interactions to process
    - *Tracking.Processing.InteractionTimeoutIncrement* - buffer, in number of minutes, between attempts at processing a checked out interaction. If there is a processing failure, the service will not attempt to process the interaction again until the *InteractionTimeoutIncrement* has passed.
    - *Tracking.Processing.MaxConcurrency* - the number of workers in a pool.
    - *Tracking.Processing.BatchSize* - number of interactions included for processing in one iteration.
    - *Tracking.Processing.ProcessingThresholdPercent* - percent of completed interactions at which a new batch is initiated.
    - *xConnect.ServiceUrl* - connection string to the xConnect service. Specify the hostname of the xConnect service. In a scaled environment, specify the xConnect collection site instead. For example, `<ServiceUrl>https://sc910xp1_collection</ServiceUrl>`.
    - *xConnect.ClientCertificate* - the client certificate for xConnect. For example:

        ```xml
        <ClientCertificate>StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint;FindValue=FF4637E7A2CACE7C0754E6B3C3552133E8E85614</ClientCertificate>
        ```

        You can read more about the xConnect certificates in the Sitecore Experience Platform Installation Guide.

        For Azure deployments you must upload the certificate in SSL settings, in the Private certificates section. If you use a self-signed certificate, add `AllowInvalidClientCertificates=true` to the connection string:

        ```xml
        <ClientCertificate>StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint;FindValue=756432701B71E1622C9CAA308DB39579ABC9C6C7;AllowInvalidClientCertificates=true</ClientCertificate>
        ```

    - *xConnect.RequestTimeout* - timeout for requests to the xConnect server. The  default value is two minutes.
4. `<website_name>\sitecore\Sitecore.Tracking.Processing.ChannelManagement\Config\config.xml`.

    This configuration file defines the path links for the `ChannelTypesConfig`  and `ChannelDefinitionsConfig` files.

5. `<website_name>\sitecore\Sitecore.Tracking.SqlServer\Config\config.xml`.

    This configuration file is a part of UT SQL. It contains the *ConnectionString* that specifies the connection to the UT SQL  database.  

    > [!note]
    > The *ConnectionString* must be the same for the processing and collection services.