Overview
Custom services allow you to create reusable service logic in a Yeeflow application.
You can use Custom services to handle business-specific backend operations that go beyond standard configuration, such as:
Data transformation
Business rule processing
Custom calculations
Integration logic
Workflow automation processing
AI tool execution
Preparing structured outputs for emails, documents, or other workflow steps
Once a Custom service is created, you can find and manage it from:
Application Settings → Integrations → Custom services
When to Use Custom Services
Use Custom services when your business process needs reusable backend logic that cannot be fully handled by standard configuration.
Common examples include:
Transforming submitted data before the next workflow step
Validating data before a workflow continues
Running business rules or calculations
Preparing formatted outputs for emails or documents
Connecting workflow logic with external or internal systems
Creating reusable logic that can be invoked by AI Agents or Copilots
Ways to Create a Custom Service
You can create a Custom service in two main ways:
From New application resource
From Application Settings → Integrations → Custom services
Option 1: Create from New Application Resource
You can create a Custom service directly from the application resource creation page.
Steps
Open your Yeeflow application.
Click Add new component.
In New application resource, select Custom services.
The Custom services card is displayed with the description:
Create reusable custom services for integrations, automation, and AI tools.
After selecting Custom services, you can choose how you want to create the service:
Create service
Import service
Create from templates
For more information about creating a service from a template, see Create Custom Services from Templates.
For more information about importing an existing service, see Import and Export Custom Services.
Option 2: Create from Application Settings
You can also create a Custom service from Application Settings.
Steps
Open your application.
Go to Application Settings.
In the left navigation, go to: Integrations → Custom services
Click Create service.
In the Create custom service window, complete the required fields.
Click Create service.
You can also click Import service from this page to import an existing Custom service definition file.
For more information, see Import and Export Custom Services.
Create a Custom Service from Scratch
Choose Create service if you want to start from scratch and configure the service yourself.
Steps
Select Create service.
In the Create custom service window, complete the following fields:
Field | Description |
Service name | Enter the name of the Custom service. |
Description | Describe what the service does. This description is also used for AI tool discovery. |
Implementation type | Select the service implementation type. Currently, the available option is Code-based (JavaScript). |
After the service is created, you will enter the AI code editor, where you can configure the service logic.
Understand the AI Code Editor
After you create or open a Custom service, you will enter the AI code editor.
The AI code editor is where you can generate, write, edit, test, save, and publish the service logic.
The page includes:
A top navigation bar for service actions
A Variables management window
A left AI code editor panel
A center Code editor
A right panel with SNIPPETS and TEST RUN
Top Navigation Bar
The top navigation bar helps you manage the Custom service while editing.
Item | Description |
Back | Return to the previous page. |
Collapse / open AI code editor panel | Collapse or open the AI code editor panel on the left. |
Service icon | Displays the Custom service icon. |
Service name | Shows the name of the Custom service currently being edited. |
Status | Shows the current service status, such as Draft or Published. |
Version | Shows the current service version, such as v1 or v3. |
Processing | Indicates that the AI code editor is generating or applying changes. |
Undo | Undo changes made during the current editing session. |
Redo | Redo changes made during the current editing session. |
Variables | Open the Variables management window. |
Save | Save the current service changes as a draft. |
History | Open the service version history. |
Publish | Publish the current service version. |
Variables Management
Click Variables in the top navigation bar to open the Variables management window.
Variables define the data structure used by the Custom service, including what data the service receives, what connections it can use, and what results it returns.
The Variables management window includes three sections:
Section | Description |
Connection variables | Connections used by the service when calling external systems or APIs. Click Add connection to create one. |
Input variables | Values passed into the service when it is invoked. Click Add input to create one. |
Output variables | Values returned by the service after execution. Click Add output to create one. |
Add or Edit Variables
When you click Add connection, Add input, or Add output, the Edit variable window opens.
In this window, you can configure one or more variables.
Field | Description |
Variable ID | The variable name used in the service code. |
Type | The variable type. Available types may include Text, Number, Boolean, Date/Time, File, Image, and Rich text. For connection variables, the type can be a connection type such as HTTP API/OAuth 2.0. |
Description | A short description of what the variable is used for. |
Click Add to add another variable in the same window.
Click OK to save the variable configuration or click Cancel to discard changes.
Each variable list shows the variable Name, Type, and Description. You can remove a variable by clicking the delete icon.
The variables you define here will also appear in the SNIPPETS panel and can be referenced in the service code.
Note: Use clear and consistent variable IDs. The variable ID is referenced in your service code, so changing it may require updates in the code editor.
AI Code Editor Panel
The AI code editor panel is displayed on the left side of the page.
You can use it to describe the code you want to generate or edit. The AI code editor can help you create a starting version of the service code or modify existing code based on your instructions.
You can use the AI code editor panel to:
Generate service logic from a prompt
Modify existing code
Fix code issues
Adjust input or output handling
Create data transformation logic
Create reusable business processing logic
For example, you can describe a requirement such as:
Update the Excel file input handling so the service accepts either a single file object or an array of files.
Or:
Convert a Yeeflow Sub List JSON input into an HTML table and return it as htmlTable.
Note:
When the AI code editor is working, the top navigation may show Processing.
Always review, test, and validate AI-generated code before publishing the service.
Code Editor
The Code editor is displayed in the center area.
This is where you write and edit the JavaScript code for the Custom service.
A Custom service uses a JavaScript code-based structure. For example:
export async function main({connections, params, modules}: ServiceContext) { // Write your service logic here return { result: "success" }; }The service code can:
Read values from input variables
Use connection variables
Process business logic
Transform data
Call supported modules
Return output variables
SNIPPETS
The SNIPPETS tab is displayed on the right side of the AI code editor.
SNIPPETS provide code references based on the current Custom service structure and variable configuration. You can use these snippets as examples when writing or adjusting the service code.
The SNIPPETS panel may include:
Section | Description |
Input variables | Shows how to read input values from |
Connection variables | Shows how to access connection variables and modules used by the service. |
Output variables | Shows the expected return structure for output variables. |
For example, if your service has input variables such as Excel file, Data List ID, and Mapping JSON, the Input variables snippet may show how these values can be read from params.
If your service has an output variable such as Added Number, the Output variables snippet shows the expected return object structure.
Use SNIPPETS as a reference when writing code, copying common patterns, or checking whether your code uses the correct variable names.
TEST RUN
The TEST RUN tab is displayed on the right side of the AI code editor.
Use TEST RUN to simulate the Custom service before publishing it or before using it in workflows, form actions, or AI tools.
The TEST RUN panel includes:
Section | Description |
Input parameters | Enter test values for the service input variables. For example, upload an Excel file, enter a Data List ID, or provide a Mapping JSON value. |
Run simulation | Click this button to run the service with the test input values. |
Output variables | Displays the returned output values after the simulation runs. |
For example, if the service returns an output variable named Added Number, the result will appear under Output variables after the simulation is completed.
Use TEST RUN to check whether:
Required input parameters are provided.
The service code runs successfully.
Output variables return the expected values.
The service works with realistic test data.
Note: Passing TEST RUN does not automatically publish the service. After testing, click Publish if you want the service to be available for workflows, form actions, or AI tools.
Save a Custom Service
Click Save to save the current service changes as a draft.
Use Save when you want to keep your work but are not ready to publish the service yet.
Saving a draft allows you to continue editing and testing without making the service available for use.
View Service History
Click History to open the service version history.
The history panel allows you to view previous drafts and published versions.
Use version history when you need to:
Review earlier service logic
View a published snapshot
Restore a previous version as a draft
Track changes made to the service
Publish a Custom Service
After testing the service, publish it so it can be used by workflows, form actions, AI tools, and other application processes.
Steps
Open the Custom service in the AI code editor.
Click Publish.
Review the version information.
Add a version description if needed.
Click Publish.
After publishing, the service status is updated to Published.
Only published Custom services can be selected and invoked by workflows, form actions, or AI tools.
Manage Custom Services
You can manage Custom services from:
Application Settings → Integrations → Custom services
The Custom services page includes two tabs:
Tab | Description |
This application | Shows Custom services created in the current application. |
Shared to this application | Shows Custom services shared with the current application. |
The service list displays information such as:
Column | Description |
Name | The name of the Custom service. |
Version | The current service version. |
Status | The current status, such as Published. |
Created by | The user who created the service. |
Created time | The time when the service was created. |
You can use the search box to find a Custom service by name.
Custom Service Actions
On the Custom services list, open the action menu beside a service to manage it.
Available actions include:
Action | Description |
Edit service | Edit the service name, description, or service information. |
Open code editor | Open the AI code editor to view or modify the service logic. |
Duplicate | Create a copy of the service. |
Share service | Share the service so it can be used in another application. |
Export service | Export the service as a service definition file. |
Disable service | Disable a published service so it can no longer be used. |
Delete service | Delete the service from the application. |
For detailed import and export steps, see Import and Export Custom Services.
Edit Service
Use Edit service when you need to update the service information.
Steps
Go to Application Settings → Integrations → Custom services.
Find the Custom service.
Open the action menu.
Click Edit service.
Update the service information.
Save your changes.
Open Code Editor
Use Open code editor when you need to view, update, test, or publish the service logic.
Steps
Go to Application Settings → Integrations → Custom services.
Find the Custom service.
Open the action menu.
Click Open code editor.
Duplicate Service
Use Duplicate when you want to create a copy of an existing Custom service.
When duplicating a service, you need to select the target location and enter a new service name.
Field | Description |
Choose workspace | Select the workspace where the duplicated service will be created. |
Choose application | Select the application where the duplicated service will be created. |
Name | Enter the name of the duplicated service. The new name cannot be the same as an existing service name in the target application. |
Click Duplicate to create the copy, or click Cancel to close the window.
Share Service
Use Share service to allow other applications to use the selected Custom service.
In the Share service window:
Select a Workspace.
In Applications, click Share next to the applications you want to share the service with.
Applications already shared are marked as Shared.
On the right side, Shared with shows the applications that currently have access.
Click Unshare to remove access from one application, or Unshare all to remove access from all applications.
Click Save changes to apply the updates, or Cancel to close the window without saving.
Shared services can be found under the Shared to this application tab in the target application.
Export Service
Use Export service to export a Custom service as a service definition file.
The exported file format is YCS File.
After exporting, the YCS file can be used to import the Custom service into another application.
Disable Service
Use Disable service to temporarily stop a Custom service from being used.
When you disable a service:
The service status changes to Disabled.
The service cannot be invoked by workflows, form actions, or AI tools.
The service configuration and code are kept and can be enabled again later.
When you click Disable service, a confirmation message appears.
Click OK to disable the service, or click Cancel to keep the service active.
Note: Before disabling a service, check whether it is currently used by workflows, form actions, AI tools, or other application processes.
Delete Service
Use Delete service to permanently remove a Custom service from the application.
Before deleting a service, Yeeflow checks whether the service is currently used by applications or workflows.
If the service is still required by other apps or flows, a confirmation window will display the dependent resources.
The confirmation window shows:
Field | Description |
Name | The name of the application resource or flow that uses the service. |
Type | The type of resource that depends on the service, such as Data List or workflow-related resources. |
When you delete a service:
The service is permanently removed.
Dependent applications or flows can no longer use this service.
A new service must be created if the functionality is needed again.
Note: Click Delete to permanently remove the service, or click Cancel to keep the service.
Review the listed dependencies carefully before deleting a service.
Use Custom Services After Publishing
After a Custom service is published, it can be invoked from different places in Yeeflow.
Scenario | Related article |
Create a service from a pre-built template | Create Custom Services from Templates |
Invoke a service in a workflow | Invoke Custom Service in a Workflow |
Invoke a service from a form action | Invoke Custom Service from a Form Action |
Add a service as an AI tool | Invoke Custom Service as an AI Tool |
Import or export a service definition | Import and Export Custom Services |
Best Practices
Use Clear Service Names
Use service names that describe what the service does.
Recommended examples:
Sub List to HTML Table
Supplier Quote Evaluation
Insert Excel Data to Data List
Avoid vague names such as:
Service 1
Test Service
Write a Useful Description
The Description field helps users and AI tools understand what the service does.
Recommended example:
Convert supplier quote Sub List data into an email-ready HTML table.
Avoid vague descriptions such as:
This is a service.
Define Inputs and Outputs Before Writing Code
Before building the service logic, identify:
What data does the service need?
What should the service return?
Where will the output be used?
Test Before Publishing
Always use TEST RUN with realistic sample data before publishing the service.
Check Usage Before Disabling or Deleting
If a Custom service is already used by workflows, form actions, or AI tools, review the impact before disabling or deleting it.
Troubleshooting
I created a Custom service from New application resource, but I cannot find it.
Go to:
Application Settings → Integrations → Custom services
Check the This application tab.
Custom services created from New application resource are managed from this page.
I cannot select the service in Invoke custom service.
Make sure the service has been published.
Only published Custom services can be selected and invoked.
The service output is empty.
Check the following:
Required input variables are configured.
Input values are mapped correctly.
The input data format is valid.
The service code returns the expected output variable.
The output variable is mapped when the service is invoked.
The service does not work after import.
Check the following:
Required variables are configured.
Required connections are available in the current application.
The service has been tested with TEST RUN.
The service has been published before being invoked.
























