# Send Message — CustomGPT

> Sends a message to an existing conversation within a project. See the documentation

- Key: `customgpt-send-message`
- Type: Action (Write)
- Version: 0.0.2
- App: CustomGPT (`customgpt`) — https://pipedream.com/apps/customgpt.md
- This page (HTML): https://pipedream.com/apps/customgpt/actions/send-message
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/customgpt/actions/send-message/send-message.mjs

## Description

Sends a message to an existing conversation within a project. [See the documentation](https://docs.customgpt.ai/reference/post_api-v1-projects-projectid-conversations-sessionid-messages)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `projectId` | `string` | Yes | The ID of the project (agent) Options are loaded from the connected account. |
| `conversationId` | `string` | Yes | The ID of the conversation Options are loaded from the connected account. |
| `externalId` | `string` | No | The external ID of the message |
| `prompt` | `string` | Yes | Prompt to send to OpenAI |
| `customPersona` | `string` | No | Custom persona to use for the conversation |
| `chatbotModel` | `string` | Yes | The model to use for the conversation |
| `responseSource` | `string` | Yes | By default, CustomGPT asks ChatGPT to use only your content in its response (recommended). If you wish ChatGPT to improvise and use its own knowledgebase as well, you can set this to "openai_content". |
| `customContent` | `string` | No | Custom content to use for the conversation |
| `file` | `string` | No | Provide either a file URL or a path to a file in the /tmp directory (for example, /tmp/myFile.pdf). |
| `syncDir` | `dir` | No | SyncDir |

## 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": "customgpt",
      },
    },
  },
)

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: "customgpt-send-message",
  arguments: {
    projectId: "Project ID",
    conversationId: "Conversation 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: "customgpt-send-message",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    customgpt: { authProvisionId: "apn_xxxxxxx" },
    projectId: "Project ID",
    conversationId: "Conversation 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": "customgpt-send-message",
    "configured_props": {
      "customgpt": { "authProvisionId": "apn_xxxxxxx" },
      "projectId": "Project ID",
      "conversationId": "Conversation ID"
    }
  }'
```

---

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