--- title: "Business Logic (Nodes)" slug: "business-logic-nodes" status: "update" updated: 2026-08-12T07:29:48Z published: 2026-08-12T07:29:48Z canonical: "help.csgi.com/business-logic-nodes" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://help.csgi.com/docs/llms.txt > Use this file to discover all available pages before exploring further. # Business Logic (Nodes) There are several ways to express business logic within a graph. The following nodes are available: | Node | Icon | Description | | --- | --- | --- | | [Ghost Node](/v1/docs/ghost-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.18%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | A placeholder node that is automatically added to a graph | | [Comment](/v1/docs/comment-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.26%E2%80%AFPM%20copy%202.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Annotate a graph with comments to make it easier to understand | | [Return Node](/v1/docs/return-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.26%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Return a value from a graph | | [Set Node](/v1/docs/set-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.18%E2%80%AFPM%20copy%202.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Set a value in the schema or a public variable from the schema, a public variable or a literal | | [Get Node](/v1/docs/get-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.18%E2%80%AFPM%20copy.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Get a value from the schema, a public variable, or a literal | | [Loop Node](/v1/docs/loop-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.26%E2%80%AFPM%20copy.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | The loop node allows a graph to be executed many times | | [Conditional](/v1/docs/conditional-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.53.35%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Used for testing arbitrary boolean expressions resulting in True or False outcomes | | [2D Table](/v1/docs/2d-table-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.53.22%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Used for evaluating conditions involving exactly two input values (dimensions) resulting in a single outcome. | | [JavaScript](/v1/docs/javascript-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.54.04%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Execute arbitrary JavaScript code and return any valid JavaScript value or object. | | [Columnar Table](/v1/docs/columnar-table-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.53.27%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Evaluate complex conditions using multiple input fields and set multiple outcomes. | | [Decision Tree](/v1/docs/decision-tree-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.54.01%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Visual segmentation based on rules and any number of fields | | [Split Test](/v1/docs/split-test-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.53.37%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | A learning node that will create random recommendations until a winner is chosen. | | [Save Interaction](/v1/docs/save-interaction-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.42%E2%80%AFPM%20copy.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Saves the details of the current interaction to the Xponent Profile Store | | [Update Profile](/v1/docs/update-profile-node) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/Screenshot%202024-07-30%20at%2011.39.42%E2%80%AFPM.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Synchronizes the customer profile data from the current graph to the Xponent Profile Store | | [Xponent Email](/cx/docs/xponent-email) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/2025-11-17_13-13-59.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | A native node that enables triggering email communications by selecting active templates from XCC within workflow graphs. | | [Xponent Messaging](/cx/docs/xponent-messaging) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/2026-04-09_16-36-36.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | A native node that enables triggering messages (SMS or MMS) communications by selecting active templates from XCC within workflow graphs. | | [Agent Node](/cx/docs/agent-nodes) | ![](https://cdn.document360.io/c578bb14-e570-4b6e-93ed-f6c5b8a2d8a1/Images/Documentation/2026-08-10_15-01-31.png?sv=2026-02-06&spr=https&st=2026-10-26T12%3A27%3A17Z&se=2026-10-26T13%3A27%3A17Z&sr=c&sp=r&sig=4hLgYbOkChG26MdF8aH8IJUBNUnlYaMYDBrcz6zDZ6U%3D) | Invoke an AI agent within a journey orchestration graph to interpret context, make decisions, and return structured outputs for downstream workflow processing. |