# List Conversations — Quo

> Retrieve a paginated list of conversations. Can be filtered by user and/or phone numbers. Defaults to all conversations in the organization. Results are returned in descending order based on the most recent conversation. Example: call with…

- Key: `openphone-list-conversations`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Quo (`openphone`) — https://pipedream.com/apps/openphone.md
- This page (HTML): https://pipedream.com/apps/openphone/actions/list-conversations
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/openphone/actions/list-conversations/list-conversations.mjs

## Description

Retrieve a paginated list of conversations. Can be filtered by user and/or phone numbers. Defaults to all conversations in the organization. Results are returned in descending order based on the most recent conversation. Example: call with no filters → returns up to 10 of the most recently active conversations. Use `fields` to return only specific fields per conversation. [See the documentation](https://www.openphone.com/docs/api-reference/conversations/list-conversations)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `phoneNumbers` | `string[]` | No | Optional list of OpenPhone phone numbers to filter by. Each item can be either an OpenPhone phone number ID or a full phone number in E.164 format. Run the List Phone Numbers action to find valid IDs. |
| `userId` | `string` | No | Optional OpenPhone user ID (format US...) whose access scope is applied to the results, scoping the response to conversations accessible to that user. Run the List Users action to find user IDs. |
| `createdAfter` | `string` | No | Optional ISO 8601 timestamp; only return conversations created after this time (e.g. 2026-08-01T00:00:00Z). |
| `createdBefore` | `string` | No | Optional ISO 8601 timestamp; only return conversations created before this time (e.g. 2026-08-31T23:59:59Z). |
| `updatedAfter` | `string` | No | Optional ISO 8601 timestamp; only return conversations updated after this time (e.g. 2026-08-01T00:00:00Z). |
| `updatedBefore` | `string` | No | Optional ISO 8601 timestamp; only return conversations updated before this time (e.g. 2026-08-31T23:59:59Z). |
| `excludeInactive` | `boolean` | No | Exclude inactive conversations from the results. |
| `maxResults` | `integer` | No | Maximum number of conversations to return per page. Min 1, max 100. Defaults to 10. |
| `pageToken` | `string` | No | Pagination token (nextPageToken from a previous response) to fetch the next page of results. If nextPageToken is present in a response, call this action again with pageToken set to that value to fetch more results. |
| `fields` | `string[]` | No | Optional list of fields to include in each returned record (e.g. ["id", "createdAt"]). When omitted, the full record is returned. |

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

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: "openphone-list-conversations",
  arguments: {
    phoneNumbers: ["Phone Numbers"],
    userId: "User 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: "openphone-list-conversations",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    openphone: { authProvisionId: "apn_xxxxxxx" },
    phoneNumbers: ["Phone Numbers"],
    userId: "User 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": "openphone-list-conversations",
    "configured_props": {
      "openphone": { "authProvisionId": "apn_xxxxxxx" },
      "phoneNumbers": ["Phone Numbers"],
      "userId": "User ID"
    }
  }'
```

---

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