Create Workspace Node from Predecessor
create_workspace_node_from_predecessorCreates a workspace node from predecessor nodes, auto-populates columns, and applies optional column transforms, WHERE filters, or aggregation in a single call.
Instructions
Create a workspace node from one or more predecessor nodes, fetch it, and verify that columns were auto-populated from those predecessors before applying any optional changes.
SINGLE-CALL WORKFLOW: You can create a node AND apply column transforms, WHERE filters, or aggregation in one call:
columns + whereCondition: Replace auto-populated columns with specific transforms and add a WHERE filter — no separate replace_workspace_node_columns needed
groupByColumns + aggregates: Convert to an aggregation node with GROUP BY — no separate convert_join_to_aggregation needed These are mutually exclusive: use columns OR groupByColumns+aggregates, not both.
REQUIRED: Before calling this tool, call plan_pipeline with goal, sourceNodeIDs, and repoPath to discover and rank available node types. Use the nodeType from the plan result — do NOT guess or hardcode node types like 'Stage', 'View', or numeric IDs like '65'. The planner scans all committed node type definitions and scores them against your use case.
SPECIALIZED TYPES WARNING: Do NOT use Dynamic Tables, Incremental Load, Materialized View, or other specialized types unless the user explicitly requests that pattern (e.g., 'near-real-time refresh', 'continuous refresh', 'incremental processing'). For standard batch ETL, CTE decomposition, and general transforms, use Stage or Work. The response includes nodeTypeValidation.warning if a specialized pattern was detected without matching context — always check this field.
JOIN INTELLIGENCE: For multi-predecessor nodes (joins), this tool automatically:
Analyzes common columns between each predecessor pair
Returns
joinSuggestionswith normalized column names and their left/right counterpartsReports which predecessors are represented in the resulting column references
Warns if any predecessor is missing from the auto-populated columns
AUTOMATIC CONFIG: When repoPath is provided, this tool automatically runs intelligent config completion after creation — reading the node type definition, setting node-level config defaults, and applying column-level attributes (isBusinessKey, isChangeTracking, etc.). The configCompletion result shows what was applied.
Do not use overrideSQL or override.* fields; SQL override is disallowed in this project.
For guidance on node types, storage locations, and SQL patterns, see resources: coalesce://context/data-engineering-principles, coalesce://context/storage-mappings, coalesce://context/sql-platform-selection
Args:
workspaceID (string, required): The workspace ID
nodeType (string, required): Node type from plan_pipeline
predecessorNodeIDs (string[], required): One or more predecessor node IDs
changes (object, optional): Partial fields to apply after creation
columns (array, optional): Replace auto-populated columns (mutually exclusive with groupByColumns)
whereCondition (string, optional): WHERE filter (only with columns)
groupByColumns (string[], optional): GROUP BY columns (with aggregates)
aggregates (array, optional): Aggregate columns (with groupByColumns)
joinType (string, optional): JOIN type for multi-predecessor aggregation
repoPath (string, optional): Local repo path for config completion
goal (string, optional): Intent for node type validation
Returns: { nodeID, created, joinSuggestions?, nodeTypeValidation?, configCompletion? }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | The goal or intent for this node (e.g., 'deduplicate customer records', 'join orders with customers'). Used to validate that the chosen nodeType is appropriate for the task. Same value you would pass to plan_pipeline. | |
| changes | No | Optional partial fields to apply after successful auto-population validation, such as name, description, config, metadata, database, schema, or locationName. | |
| columns | No | Replace auto-populated columns with these specific columns and transforms. Mutually exclusive with groupByColumns/aggregates. | |
| joinType | No | JOIN type for multi-predecessor aggregation nodes. Defaults to INNER JOIN. | |
| nodeType | Yes | The type of node to create. IMPORTANT: Call plan_pipeline first to discover and rank available node types — use the nodeType from its result. Format: 'PackageName:::ID' for package types (e.g., 'base-nodes:::Stage') or simple name ('Stage') for built-in types. Always prefer the package-prefixed format returned by plan_pipeline. | |
| repoPath | No | Path to local Coalesce repository for automatic config completion after creation. | |
| aggregates | No | Aggregate columns. Must be provided with groupByColumns. Mutually exclusive with columns. | |
| workspaceID | Yes | The workspace ID | |
| groupByColumns | No | GROUP BY columns for aggregation. Must be provided with aggregates. Mutually exclusive with columns. | |
| whereCondition | No | WHERE filter to append to the joinCondition (without the WHERE keyword). Only valid with columns, not with groupByColumns/aggregates. | |
| predecessorNodeIDs | Yes | One or more predecessor node IDs to link to the new node |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nodeID | No | ||
| created | No | ||
| warning | No | ||
| nextSteps | No | ||
| validation | No | ||
| joinSuggestions | No | ||
| configCompletion | No | ||
| nodeTypeValidation | No | ||
| configCompletionSkipped | No |