# deleteContactCustomField

Permanently delete a contact custom-field DEFINITION (id from listContactCustomFields). DESTRUCTIVE AND IRREVERSIBLE: every value recorded on every contact for it is deleted, NOT moved to another field. Prefer updateContactCustomField when the field is merely wrong rather than unwanted. Call getDeletionImpact first (targetKind CONTACT_CUSTOM_FIELD, targetId the field id): it reports how many contacts hold a value and which filters/workflows reference the field, and returns the impactVersion to hand back as dependencyResolution.impactVersion (with an empty `replacements` array when it reports no replacementRequirements). A required replacement redirects those filters/workflows to another field; it does not carry contact values over. The impactVersion goes stale if anything changes in between: re-read the impact and retry rather than reuse an old one. System-defined fields (e.g. Buyer/Seller) cannot be deleted. Confirm with the user before calling.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "deleteContactCustomField", "variables": {...} }`
- Scope: `WRITE`
- Type: mutation
- Idempotency: honors `Idempotency-Key` (24 h)
- Rate-limited: no

## Variables

- `customFieldId`: `ID!` (required)
- `dependencyResolution`: `DependencyResolutionInput!` (required)
  - `impactVersion`: `String!` (required)
  - `replacements`: `[DependencyReplacementSelectionInput!]!` (required)
    - `targetKind`: `DependencyTargetKind!` (required, one of `PIPELINE_ITEM`, `DEAL`, `PIPELINE_STAGE_PIPELINE_ITEMS`, `DEAL_STAGE_DEALS`, `PIPELINE_ITEM_CUSTOM_FIELD`, `DEAL_CUSTOM_FIELD`, `PIPELINE_ITEM_CUSTOM_FIELD_OPTION`, `DEAL_CUSTOM_FIELD_OPTION`, `PROPERTY_TAG`, `PROPERTY_LIST`, `CONTACT_TAG`, `CONTACT_LIST`, `CONTACT_CUSTOM_FIELD`, `CONTACT_CUSTOM_FIELD_OPTION`, `PIPELINE`, `DEAL_PIPELINE`, `PIPELINE_STAGE`, `DEAL_STAGE`, `TWILIO_PHONE_NUMBER`, `EMAIL_IDENTITY`, `LIBRARY_FOLDER`, `USER`, `USER_GROUP`, `WORKFLOW_GROUP`, `WORKFLOW_AUTOMATION`, `CONTENT_TEMPLATE`, `AGENT`, `MARKETING_CAMPAIGN`, `UPLOADED_FILE`, `WORKFLOW_WEBHOOK_CREDENTIAL`, `SCRAPER_PIPELINE`, `FILTER`, `EMBED_FORM`, `WORKFLOW_TABLE`, `WORKFLOW_TABLE_COLUMN`, `CONTACT`, `PROPERTY`, `ORGANIZATION`, `SLACK_CHANNEL`, `SLACK_USER`, `MACHINE_GROUP`, `MACHINE_HOST`)
    - `targetId`: `ID!` (required)
    - `replacementId`: `ID!` (required)

## Response (data, an example)

```json
{
  "contactCustomFieldMutation": {
    "deleteCustomField": {
      "getMyOrganizationsCustomFields": [
        {
          "id": "<ID>",
          "name": "…",
          "type": "DROPDOWN"
        }
      ]
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "operationId": "deleteContactCustomField",
    "variables": {
      "customFieldId": "<customFieldId>",
      "dependencyResolution": {
        "impactVersion": "<String>",
        "replacements": [
          {
            "targetKind": "PIPELINE_ITEM",
            "targetId": "<targetId>",
            "replacementId": "<replacementId>"
          }
        ]
      }
    }
  }'
```
