# Create Workflow Dispatch — GitHub

> Creates a new workflow dispatch event. See the documentation

- Key: `github-create-workflow-dispatch`
- Type: Action (Write)
- Version: 0.0.10
- App: GitHub (`github`) — https://pipedream.com/apps/github.md
- This page (HTML): https://pipedream.com/apps/github/actions/create-workflow-dispatch
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/github/actions/create-workflow-dispatch/create-workflow-dispatch.mjs

## Description

Creates a new workflow dispatch event. [See the documentation](https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `repoFullname` | `string` | Yes | The name of the repository (not case sensitive). The format should be owner/repo (for example, PipedreamHQ/pipedream). Options are loaded from the connected account. |
| `workflowId` | `string` | Yes | The Id of the workflow. Options are loaded from the connected account. |
| `ref` | `string` | Yes | The git reference for the workflow. The reference can be a branch or tag name. |
| `inputs` | `object` | No | Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when inputs are omitted. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "github",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "github-create-workflow-dispatch",
  arguments: {
    repoFullname: "Repository",
    workflowId: "Workflow Id",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "github-create-workflow-dispatch",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    github: { authProvisionId: "apn_xxxxxxx" },
    repoFullname: "Repository",
    workflowId: "Workflow Id",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "github-create-workflow-dispatch",
    "configured_props": {
      "github": { "authProvisionId": "apn_xxxxxxx" },
      "repoFullname": "Repository",
      "workflowId": "Workflow Id"
    }
  }'
```

---

- App: https://pipedream.com/apps/github.md · All apps: https://pipedream.com/apps
