Skip to content

Conversation

@Sg312
Copy link
Contributor

@Sg312 Sg312 commented Nov 16, 2025

Summary

Make run workflow tool support input format and fix run it

Type of Change

  • Bug fix

Testing

Manual

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Nov 16, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
docs Skipped Skipped Nov 16, 2025 2:08am

@waleedlatif1
Copy link
Collaborator

@Sg312 banger

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 16, 2025

Greptile Overview

Greptile Summary

Changed the workflow_input parameter from string to object format to support structured input fields, and fixed the execution ID by generating a unique UUID instead of reusing the tool call ID.

Key Changes:

  • Updated type definition from workflow_input?: string to workflow_input?: Record<string, any> in run-workflow.ts:16
  • Changed tool schema type from "string" to "object" in tools.ts:11
  • Removed nested wrapping: previously { input: params.workflow_input }, now passes object directly
  • Added UUID generation for executionId separate from toolCallId in run-workflow.ts:92
  • Updated logging to show object keys and JSON preview instead of string slice

Impact:

  • The LLM can now provide structured inputs like {"message": "Hello", "temperature": 0.7} instead of just a string
  • Execution IDs are now properly unique and independent of tool call IDs, improving traceability

Confidence Score: 5/5

  • This PR is safe to merge with no blocking issues
  • The changes are well-structured and correctly implement the stated functionality. The input format change properly aligns the TypeScript types with the tool schema definition, and the execution ID fix addresses a potential issue with using the same ID for both tool calls and workflow executions. The changes maintain backward compatibility since the API accepts z.any().optional() for input, and the new object format is correctly passed through the execution chain.
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
apps/sim/lib/copilot/tools/client/workflow/run-workflow.ts 5/5 Changed workflow input from nested string format to direct object format, added UUID import for unique execution IDs, and separated toolCallId from executionId
apps/sim/stores/panel-new/copilot/tools.ts 5/5 Updated tool schema to accept object type instead of string, with improved description for key-value input fields

Sequence Diagram

sequenceDiagram
    participant Copilot as Copilot/LLM
    participant ToolDef as COPILOT_TOOLS Schema
    participant RunWorkflow as RunWorkflowClientTool
    participant ExecuteUtil as executeWorkflowWithFullLogging
    participant API as Workflow Execute API
    participant Executor as executeWorkflowCore

    Copilot->>ToolDef: Read tool schema<br/>(type: object)
    Copilot->>RunWorkflow: handleAccept with workflow_input object
    RunWorkflow->>RunWorkflow: Generate executionId = uuidv4()
    RunWorkflow->>RunWorkflow: Store toolCallId separately
    RunWorkflow->>ExecuteUtil: Call with workflowInput and executionId
    ExecuteUtil->>ExecuteUtil: Build payload with input field
    ExecuteUtil->>API: POST request with input object
    API->>API: Validate input schema
    API->>Executor: Execute workflow with processedInput
    Executor-->>API: Return ExecutionResult
    API-->>ExecuteUtil: Stream SSE events
    ExecuteUtil-->>RunWorkflow: Return result
    RunWorkflow->>RunWorkflow: markToolComplete()
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@Sg312 Sg312 merged commit 1c85fe9 into staging Nov 16, 2025
9 checks passed
waleedlatif1 added a commit that referenced this pull request Nov 17, 2025
* test(pr): hackathon (#1999)

* test(pr): github trigger (#2000)

* fix(usage-indicator): conditional rendering, upgrade, and ui/ux (#2001)

* fix: usage-limit indicator and render conditonally on is billing enabled

* fix: upgrade render

* fix(notes): fix notes, tighten spacing, update deprecated zustand function, update use mention data to ignore block positon (#2002)

* fix(pdfs): use unpdf instead of pdf-parse (#2004)

* fix(modals): fix z-index for various modals and output selector and variables (#2005)

* fix(condition): treat condition input the same as the code subblock (#2006)

* feat(models): added gpt-5.1 (#2007)

* improvement: runpath edges, blocks, active (#2008)

* feat(i18n): update translations (#2009)

* fix(triggers): check triggermode and consolidate block type (#2011)

* fix(triggers): disabled trigger shouldn't be added to dag (#2012)

* Fix disabled blocks

* Comments

* Fix api/chat trigger not found message

* fix(tags): only show start block upstream if is ancestor (#2013)

* fix(variables): Fix resolution on double < (#2016)

* Fix variable <>

* Ling

* Clean

* feat(billing): add notif for first failed payment, added upgrade email from free, updated providers that supported granular tool control to support them, fixed envvar popover, fixed redirect to wrong workspace after oauth connect (#2015)

* feat(billing): add notif for first failed payment, added upgrade email from free, updated providers that supported granular tool control to support them, fixed envvar popover, fixed redirect to wrong workspace after oauth connect

* fix build

* ack PR comments

* feat(performance): added reactquery hooks for workflow operations, for logs, fixed logs reloading, fix subscription UI (#2017)

* feat(performance): added reactquery hooks for workflow operations, for logs, fixed logs reloading, fix subscription UI

* use useInfiniteQuery for logs fetching

* fix(copilot): run workflow supports input format and fix run id (#2018)

* fix(router): fix error edge in router block + fix source handle problem (#2019)

* Fix router block error port handling

* Remove comment

* Fix edge execution

* improvement: code subblock, action bar, connections (#2024)

* improvement: action bar, connections

* fix: code block draggable resize

* fix(response): fix response block http format (#2027)

* Fix response block

* Lint

* fix(notes): fix notes block spacing, additional logs for billing transfer route (#2029)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
@waleedlatif1 waleedlatif1 deleted the fix/copilot-run-workflow branch November 18, 2025 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants