CustomGPT ACTION
Send Message
Sends a message to an existing conversation within a project. See the documentation
- Action
- Writes data
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's CustomGPT account once, then configure and run Send Message from your backend or agent.
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 -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"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
projectId Project ID | string | The ID of the project (agent) Required Dynamic |
conversationId Conversation ID | string | The ID of the conversation Required Dynamic |
externalId External ID | string | The external ID of the message Optional |
prompt Prompt | string | Prompt to send to OpenAI Required |
customPersona Custom Persona | string | Custom persona to use for the conversation Optional |
chatbotModel Chatbot Model | string | The model to use for the conversation Required |
responseSource Response Source | string | 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". Required |
customContent Custom Content | string | Custom content to use for the conversation Optional |
file File Path or URL to upload | string | Provide either a file URL or a path to a file in the /tmp directory (for example, /tmp/myFile.pdf). Optional |
syncDir SyncDir | dir | Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- customgpt-send-message
- Version
- 0.0.2
- App
- CustomGPT
- Authentication
- API key
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗