> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enable Platform Signals

Configure Fusion to consume aggregated signals from Lucidworks Platform for query boosting and result reranking.

## Prerequisites

Before configuring Platform signals in Fusion, make sure you have the following:

* A Lucidworks Platform application configured with a [Signals Store](/docs/lw-platform/lw-analytics/signals/signals-store)
* [Signals Beacon](/docs/lw-platform/lw-analytics/signals/signals-beacon) or [Platform Signals API](/docs/lw-platform/lw-analytics/signals/signals-api) configured
* A Platform integration created for self-hosted Fusion
* Platform Client ID and Secret
* Access to modify Fusion Helm values and ConfigMaps

For Platform setup, see [Platform signals documentation](/docs/lw-platform/lw-analytics/signals/overview).

## Configuration steps

<AccordionGroup>
  <Accordion title="1. Configure LWAI gateway credentials">
    Add Platform credentials to Fusion via Helm values.
    These credentials allow Fusion to authenticate with Lucidworks Platform and retrieve aggregated signals.

    Add this to your Helm values:

    ```yaml theme={"dark"}
    lwai-gateway:
      lwai:
        credentials: |
          fusion.lwai.account[0].name: <integration_name>
          fusion.lwai.account[0].scopes: signals.push,machinelearning.predict,machinelearning.model
          fusion.lwai.account[0].clientId: <platform_client_id>
          fusion.lwai.account[0].clientSecret: <platform_client_secret>
          fusion.lwai.account[0].baseUrl: https://api.lucidworks.com/applications/<platform_app_id>
          fusion.lwai.default.authEndpoint: https://identity.lucidworks.com/oauth2/ausao8uveaPmyhv0v357/v1/token
    ```

    Replace the placeholders with your actual values:

    * `<integration_name>` is the name of your Platform integration.
    * `<platform_client_id>` is the Client ID from the Platform integration.
    * `<platform_client_secret>` is the Client Secret from the Platform integration.
    * `<platform_app_id>` is the Platform application ID.

    <Note>
      The `authEndpoint` URL is the shared Lucidworks Platform production authentication endpoint.
      Use this exact URL as shown; it is not environment-specific.
    </Note>

    Apply the Helm values update and restart the affected pods.
  </Accordion>

  <Accordion title="2. Configure signal retrieval">
    Configure which Platform signals Fusion should retrieve and which collections to populate.

    Open the `<release>-cloud-signals-config` ConfigMap for editing:

    ```bash theme={"dark"}
    kubectl edit configmap <release>-cloud-signals-config
    ```

    Add your configuration to the `signalsOperator` section:

    ```yaml theme={"dark"}
    signalsOperator: |
      <platform_app_name>:
        <fusion_appId>_signals_aggr:
          formula1:
            CLICK: 2.0
            CART: 3.0
            PURCHASE: 4.0
    ```

    The configuration includes the following elements:

    * `<platform_app_name>` is the name of your Platform application.
    * `<fusion_appId>_signals_aggr` is the name of the Fusion collection for storing aggregated signals. Replace `<fusion_appId>` with your Fusion app ID (for example, `my_app_signals_aggr`).
    * `formula1` is the aggregation formula name and must match Platform configuration.
    * `CLICK`, `CART`, `PURCHASE` are the signal types and their respective weights.

    <Tip>
      The formula configuration defines how different signal types are weighted.
      The weights should match the aggregation formula configured in Lucidworks Platform.
    </Tip>

    Save the ConfigMap and restart the signal processing component:

    ```bash theme={"dark"}
    kubectl delete pod -l app.kubernetes.io/component=signals-operator
    ```
  </Accordion>

  <Accordion title="3. Create Fusion app and collection">
    If a Fusion app doesn't exist, create one using these steps:

    1. Log in to Fusion Admin UI.
    2. Navigate to **Apps**.
    3. Click **Create App**.
    4. Enter the app name and configure as needed.

    Fusion automatically creates the `COLLECTION_NAME_signals_aggr` collection when you configure signal retrieval.
    You don't need to create the collection manually.
  </Accordion>

  <Accordion title="4. Configure query pipeline boost stage">
    Add the Boost with Signals stage to your query pipeline using these steps:

    1. Navigate to your app's default query pipeline.
    2. Add a **Boost with Signals** stage.
    3. Configure the stage parameters as shown in the table below:

    | Parameter                  | Value      | Description                                                             |
    | -------------------------- | ---------- | ----------------------------------------------------------------------- |
    | **Aggregation Type**       | `formula1` | This must match the formula name in the signal retrieval configuration. |
    | **Rollup Field**           | `doc_id`   | This is the field containing the document ID in aggregated signals.     |
    | **Rollup Weight Strategy** | `weight_d` | This is the field containing the calculated weight.                     |

    See [Boost with Signals Stage](/docs/5/fusion/reference/config-ref/pipeline-stages/query-stages/recommendation-boosting-query-stage) for detailed configuration options.
  </Accordion>

  <Accordion title="5. Verify the integration">
    After configuration, verify the integration is working:

    1. **Check signal retrieval logs**:

       ```bash theme={"dark"}
       kubectl logs -l app.kubernetes.io/component=signals-operator --tail=100
       ```

       Look for successful run messages:

       ```
       INFO  c.l.c.s.c.fetcher.SignalsOperator - Starting control loop
       INFO  c.l.c.s.c.fetcher.SignalsOperator - Job status: SUCCEEDED
       INFO  c.l.c.s.c.fetcher.IndexingRunner - Converting to SolrDoc
       ```

    2. **Verify collection population**:
       * Navigate to the `COLLECTION_NAME_signals_aggr` collection in Fusion.
       * Open Query Workbench.
       * Run a query: `q=*:*`.
       * Verify documents exist with expected fields.

    3. **Test query boosting**:
       * Execute a query through your configured pipeline.
       * Verify that results with signal data receive appropriate boosts.

    If the integration is not working, see [Troubleshooting Platform Signals](/docs/5/fusion/getting-data-in/platform-signals/troubleshooting).
  </Accordion>
</AccordionGroup>

## Next steps

* [Troubleshoot Platform signals](/docs/5/fusion/getting-data-in/platform-signals/troubleshooting)
* [Configure Boost with Signals stage](/docs/5/fusion/reference/config-ref/pipeline-stages/query-stages/recommendation-boosting-query-stage)
* [Platform integration guide](/docs/lw-platform/lw-platform/settings/fusion-integrations/overview)
