# Trigger Monkey — Voice Monkey

> This action will make an annoucement on your device using any parameters you set. See docs here

- Key: `voice_monkey-trigger-monkey`
- Type: Action (Write)
- Version: 0.0.2
- App: Voice Monkey (`voice_monkey`) — https://pipedream.com/apps/voice-monkey.md
- This page (HTML): https://pipedream.com/apps/voice-monkey/actions/trigger-monkey
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/voice_monkey/actions/trigger-monkey/trigger-monkey.mjs

## Description

This action will make an annoucement on your device using any parameters you set. [See docs here](https://voicemonkey.io/docs)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `monkey` | `string` | Yes | This is the ID of the Monkey you want to trigger. Sign in and visit ‘Manage Monkeys’ to create a monkey and view its ID |
| `announcement` | `string` | Yes | If you want your Alexa device to speak something out loud when you trigger your monkey then add the text to this parameter. You must open the Voice Monkey Skill as the last step of your routine. |
| `chime` | `string` | No | Add a notification/alarm sound to your routine. |
| `voice` | `string` | No | Select from one of the many different voices available for your announcement. Alexa (default) |
| `audioFileUrl` | `string` | No | Play an audio file on your Alexa device. Include the full URL including https:// |
| `backgroundAudioFileUrl` | `string` | No | Play an audio file in the background wishlist Alexa makes your announcement. Include the full URL including https:// |
| `promptYesResponsePreset` | `string` | No | With prompts you can ask Alexa to ask you a yes/no question (that you include in the announcement of this request) e.g. "Sall I turn on the lights?". If you reply "Yes", the Preset Id you specify here will be triggered. |
| `promptNoResponsePreset` | `string` | No | With prompts you can ask Alexa to ask you a yes/no question (that you include in the announcement of this request) e.g. "Sall I turn on the lights?". If you reply "No", the Preset Id you specify here will be triggered. |
| `imageUrl` | `string` | No | Send an image hosted on a publicly accessible https URL to a screen enabled Alexa device such as an Echo Show. As with announcements, the Alexa routine must open the Voice Monkey Skill as its final action. |
| `videoUrl` | `string` | No | You can send a video to alexa devices with a screen including the Echo Show. The ‘announcement’ parameter must not be blank. You must open the Voice Monkey Skill as the last step of your routine. |
| `websiteUrl` | `string` | No | Open a website on your screen enabled Alexa device. Include the full URL including https:// |

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

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: "voice_monkey-trigger-monkey",
  arguments: {
    monkey: "Monkey",
    announcement: "Announcement text",
  },
})
```

**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: "voice_monkey-trigger-monkey",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    voice_monkey: { authProvisionId: "apn_xxxxxxx" },
    monkey: "Monkey",
    announcement: "Announcement text",
  },
})

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": "voice_monkey-trigger-monkey",
    "configured_props": {
      "voice_monkey": { "authProvisionId": "apn_xxxxxxx" },
      "monkey": "Monkey",
      "announcement": "Announcement text"
    }
  }'
```

---

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