---
search:
  tags:
    - customers
    - POST
seo:
  description: >-
    Mobile log-a-knock quick-add (PILE-671): dedupes on… Reference for the POST
    /workspaces/{organizationId}/customers/quick-knock endpoint in the Pile API.
sidebar:
  label: Create customer quick knock
  badge: POST
title: Create customer quick knock
type: openapi-operation
---
Mobile log-a-knock quick-add (PILE-671): dedupes on normalized name or street address so a second knock at the same building updates the existing customer, then logs the interaction with the same outcome→stage/next-step rules as POST /customers/&#123;id&#125;/interactions and optionally bridges a quoted amount into a proposal-stage deal.

`POST /workspaces/{organizationId}/customers/quick-knock`

**Request body** (`application/json`)

- `name` (string, required)
- `addressLine1` (string)
- `city` (string)
- `state` (string)
- `postalCode` (string)
- `phone` (string)
- `outcome` (string, required)
- `summary` (string)
- `channel` (string)
- `nextStepPreset` (string)
- `nextStepDueAt` (string | null)
- `nextStepText` (string | null)
- `quotedAmountCents` (integer)
- `dealTitle` (string)

Request body example:

```json
{
  "name": "string",
  "addressLine1": "string",
  "city": "string",
  "state": "string",
  "postalCode": "string",
  "phone": "string",
  "outcome": "talked",
  "summary": "string",
  "channel": "visit",
  "nextStepPreset": "tomorrow",
  "nextStepDueAt": "string",
  "nextStepText": "string",
  "quotedAmountCents": 1,
  "dealTitle": "string"
}
```

**Responses**

- `201` — Knock logged against a found-or-created customer

Response example, 201:

```json
{
  "customer": {
    "id": "string",
    "organizationId": "string",
    "name": "string",
    "url": "string",
    "domain": "string",
    "bookingUrl": "string",
    "notes": "string",
    "logoUrl": "string",
    "externalId": "string",
    "phone": "string",
    "address": "string",
    "vertical": "string",
    "neighborhood": "string",
    "source": "string",
    "sourceSessionId": "string",
    "sourceAgentSlug": "string",
    "readiness": "string",
    "nextAction": "string",
    "fit": "string",
    "fitScore": 0,
    "fitStatus": "string",
    "processor": "string",
    "evidenceUri": "string",
    "tierId": "string",
    "statusId": "string",
    "ownerId": "string",
    "nextStepText": "string",
    "nextStepDueAt": "string",
    "needsHuman": true,
    "needsHumanReason": "string",
    "priorityScore": 0,
    "customFields": {
      "property1": "string",
      "property2": "string"
    },
    "createdAt": "string",
    "updatedAt": "string"
  },
  "event": {
    "id": "string",
    "customerId": "string",
    "outcome": "talked",
    "note": "string",
    "createdAt": "string",
    "channel": "visit"
  },
  "deal": {
    "id": "string",
    "organizationId": "string",
    "customerId": "string",
    "name": "string",
    "externalId": "string",
    "stage": "lead",
    "amountCents": 0,
    "currency": "string",
    "expectedCloseAt": "string",
    "description": "string",
    "closedAt": "string",
    "archivedAt": "string",
    "nextStepText": "string",
    "nextStepDueAt": "string",
    "needsHuman": true,
    "needsHumanReason": "string",
    "priorityScore": 0,
    "contactIds": [
      "string"
    ],
    "customFields": {
      "property1": "string",
      "property2": "string"
    },
    "createdAt": "string",
    "updatedAt": "string"
  },
  "created": true,
  "stageAdvanced": true,
  "stageBlocked": true
}
```
