# Create Ticket Field — Freshdesk

> Create a ticket field in Freshdesk. See the documentation

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

## Description

Create a ticket field in Freshdesk. [See the documentation](https://developers.freshdesk.com/api/#create_ticket_field)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `label` | `string` | Yes | Display the name of the Ticket Field |
| `labelForCustomers` | `string` | Yes | The label for the field as seen by customers |
| `type` | `string` | Yes | The type of the field. Can be custom_dropdown, custom_checkbox, custom_text, etc... |
| `customersCanEdit` | `boolean` | No | Whether customers can edit the field |
| `displayedToCustomers` | `boolean` | No | Whether the field is displayed to customers |
| `position` | `integer` | No | The position of the fieldPosition in which the ticket field is displayed in the form. If not given, it will be displayed on top |
| `requiredForClosure` | `boolean` | No | Set to true if the field is mandatory for closing the ticket |
| `requiredForAgents` | `boolean` | No | Set to true if the field is mandatory for agents |
| `requiredForCustomers` | `boolean` | No | Set to true if the field is mandatory for customers |
| `choices` | `string[]` | No | Array of key, value pairs containing the value and position of dropdown choices. Example: [{ "value": "Refund", "position": 1 }, { "value": "FaultyProduct", "position": 2 }] |
| `dependentFields` | `string[]` | No | Applicable only for dependent fields, this contains details of nested fields Example: [{ "label": "District", "label_for_customers": "District", "level": 2 }, { "label": "Branch", "label_for_customers": "Branch", "level": 3 }] |
| `sectionMappings` | `string[]` | No | Applicable only if the field is part of a section. This contains the details of a section (ID, position) for which it is been a part of. Example: [{ "position": 3, "section_id": 1 }] |

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

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: "freshdesk-create-ticket-field",
  arguments: {
    label: "Label",
    labelForCustomers: "Label for Customers",
  },
})
```

**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: "freshdesk-create-ticket-field",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    freshdesk: { authProvisionId: "apn_xxxxxxx" },
    label: "Label",
    labelForCustomers: "Label for Customers",
  },
})

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": "freshdesk-create-ticket-field",
    "configured_props": {
      "freshdesk": { "authProvisionId": "apn_xxxxxxx" },
      "label": "Label",
      "labelForCustomers": "Label for Customers"
    }
  }'
```

---

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