---
schema_version: "1"
id: 30dbbadde91814617bc16b265bee3df4e89f43691ab80f26dcde679f4c43081e
title: Updates to Omnistudio Custom Functions
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/os_migrate_update_omnistudio_custom_functions_after_migration.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_migrate_update_omnistudio_custom_functions_after_migration.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 1952c468375e56ba5635742332a58f5b868e0bf75d085dcfe4da5a35134f8ff1
description: If you're on the managed package runtime with standard data model, Omnistudio automatically converts all custom functions in the user-defined syntax to the standard syntax when you switch to the Omnistudio standard runtime. For the custom data model, first use Omnistudio Migration Assistant (Pilot) to convert your records to the standard data model, then switch to the standard runtime to automatically convert the custom functions.
products:
  - Omnistudio
release: "264"
---
# Updates to Omnistudio Custom Functions

If you're on the managed package runtime with standard data model, Omnistudio automatically converts all custom functions in the user-defined syntax to the standard syntax when you switch to the Omnistudio standard runtime. For the custom data model, first use Omnistudio Migration Assistant (Pilot) to convert your records to the standard data model, then switch to the standard runtime to automatically convert the custom functions.

In the Omnistudio managed package runtime with a custom data model, custom functions are written using a user-defined syntax, and are configured using `Function Definition` custom metadata that references Apex classes and methods. The functions are defined using this syntax: `functionName(args)`.

Here, functionName is the user-defined function name. Before migration, custom functions are defined in custom metadata as `Function Definition`. The `ApexClassName` and `MethodName` are part of the custom metadata. For example, for a function `REPL(targetString, replacementString)`, the user-defined function name is `REPL`.

For more information, see [Custom Functions](https://help.salesforce.com/s/articleView?id=xcloud.os_workflow_for_creating_custom_functions.htm&type=5&language=en_US).

To update the Omnistudio custom functions:

1. 1. Review your existing custom functions:
        
        1. 1. Locate all custom functions defined using the `Function Definition` custom metadata, and check where they are used. For example, Data Mappers, Integration Procedures, and so on.
            2. Note the user-defined syntax used in your formulas. For example, `REPL(targetString, replacementString)`.
2. Validate Apex Class definitions:
    1. Ensure each function’s Apex class implements the `VlocityOpenInterface`.
    2. Confirm each method accepts expected arguments and returns output.
3. Run Omnistudio Migration Assistant to convert all component records to the standard data model.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/images/icon_note.png)
    
    Note Omnistudio Migration Assistant (Pilot) doesn't convert function references at this stage.
4. After verifying your components are migrated and working on the standard data model, switch to Omnistudio standard runtime by disabling the Managed Package Runtime settings in your org.

This triggers an automatic conversion of your custom function syntax from:

Before (user-defined syntax): `REPL(targetString, replacementString)`

After (standard syntax):

```
 FUNCTION("CustomStringFunctions", "REPLACE", targetString,
        replacementString)
```

Here, `CustomStringFunctions` is the Apex class name and `REPLACE` is the method name.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/images/icon_note.png)

Note Starting with Summer ’25, when you migrate from the managed package runtime with standard data model to the Omnistudio standard runtime and disable the Managed Package Runtime setting, Omnistudio automatically converts all custom functions in the user-defined syntax to the standard syntax. This conversion is asynchronous and can take some time to complete. Omnistudio notifies you by email when the process is completed.