---
title: "personalize"
slug: "cloud-sdk-personalize-server-personalize"
abstract: "The personalize function runs interactive experiences and experiments that are live in Sitecore Personalize from the server side."
---
# personalize

|     |     |
| --- | --- |
| Type | Function |
| Import path | `@sitecore-cloudsdk/personalize/server` |

From the server side, runs [interactive experiences and experiments](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-concepts/concepts-personalization.html "Personalization") that are live in Sitecore Personalize. Automatically captures [UTM parameters](https://en.wikipedia.org/wiki/UTM_parameters) from the URL of the webpage where the function runs.

## Signature

```typescript
export async function personalize(
  request: Request,
  personalizeData: PersonalizeData,
  opts?: { timeout?: number }
): Promise<unknown | null | FailedCalledFlowsResponse>
```

## Parameters

| Name | Type | Description |
| --- | --- | --- |
| `request` | `Request` | Required.<br><br>The HTTP request. |
| `personalizeData` | [`PersonalizeData`](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-personalize/cloud-sdk-personalize-browser/interfaces/cloud-sdk-personalize-personalizedata.html "PersonalizeData") | Required.<br><br>Event and experiment data. |
| `opts` | [`object`](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-personalize/cloud-sdk-personalize-server/functions/cloud-sdk-personalize-server-personalize.html#UUID-830443e3-f935-573f-ef51-c3264f4f3a79_section-idm234398022311273 "Opts properties") | Optional.<br><br>Additional personalization options. |

### `Opts` properties

| Name | Type | Description | Value |
| --- | --- | --- | --- |
| `timeout` | `integer` | Optional.<br><br>The number of milliseconds before the function times out and returns an error.<br><br>For example, for the function to time out in 10 seconds, set the value to `10000`.<br><br>Minimum: `0`. | `10000` |

## Return value

Returns the API response of the interactive experience or experiment.

## Examples

:::tab{title="Next.js"}

Example 62. Running the personalize function

:::tab{title="Next.js"}
> [!note]
> To run this function, you have to first [initialize](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-personalize/cloud-sdk-personalize-server/functions/cloud-sdk-core-server-cloudsdk.html "CloudSDK") the Cloud SDK.
>
> See [more examples](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-personalize/cloud-sdk-personalize-server/functions/interactive-personalization.html "Interactive personalization") and [other data](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-personalize/cloud-sdk-personalize-server/functions/cloud-sdk-personalize-personalizedata.html "PersonalizeData") you can include in the event.

Here's an example of how to use the `personalize` function:

```typescript
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import { CloudSDK } from "@sitecore-cloudsdk/core/server";
import { personalize } from "@sitecore-cloudsdk/personalize/server";

export default async function middleware(request: NextRequest) {
  const response = NextResponse.next();

  // Initialize the SDK and the package...

  // Run personalization:
  const personalizeData = {
    channel: "WEB",
    friendlyId: "running_shoes_popup_02"
  };

  const personalizeResponse = await personalize(request, personalizeData);
  console.log("Ran personalization.", personalizeResponse);

  return response;
};
```

`personalizeRes` contains the API response that the experience or experiment was configured to return.

:::

:::