> ## Documentation Index
> Fetch the complete documentation index at: https://help.withallo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create person

> Creates a new person in your CRM.

<Note>
  **Required scope:** `CRM_WRITE`
</Note>

## Body fields

| Field                    | Type    | Required | Default | Description                                                                                        |
| ------------------------ | ------- | -------- | ------- | -------------------------------------------------------------------------------------------------- |
| `name`                   | string  | no       |         | First name                                                                                         |
| `last_name`              | string  | no       |         | Last name                                                                                          |
| `job_title`              | string  | no       |         | Job title                                                                                          |
| `website`                | string  | no       |         | Website URL                                                                                        |
| `address`                | string  | no       |         | Address                                                                                            |
| `numbers`                | array   | no       |         | Phone numbers in E.164 format                                                                      |
| `emails`                 | array   | no       |         | Email addresses                                                                                    |
| `company_id`             | string  | no       |         | Associated company ID                                                                              |
| `allow_duplicate_number` | boolean | no       | `false` | Allow creating the person even if one or more phone numbers are already assigned to another person |

At least one of `name` or `last_name` is required.

## Associations

Pass a `company_id` to link the person to an existing company. The company must exist or the request returns an error.

## Duplicate phone numbers

By default, creating a person with phone numbers that already belong to another person in your team returns a **409 Conflict** error. The error response includes the IDs of the existing people so you can update them instead.

To create the person anyway, set `allow_duplicate_number` to `true`.

```json theme={null}
{
  "name": "John",
  "numbers": ["+33612345678"],
  "allow_duplicate_number": true
}
```

To find the existing person by phone number, use [Search people](/en/v2/api-reference/crm/search-people) with the `phone_number` filter.


## OpenAPI

````yaml POST /v2/api/crm/people
openapi: 3.0.3
info:
  title: Allo API
  description: >-
    Allo API provides programmatic access to your Allo account, allowing you to
    manage webhooks, retrieve calls and contacts, and send SMS messages.


    All requests to `/v1/api/**` endpoints automatically go through quota
    checking and scope validation.
  version: 1.0.0
  contact:
    name: Allo Support
servers:
  - url: https://api.withallo.com
    description: Production server
security: []
tags:
  - name: Summary Templates
    description: >-
      Manage call summary templates that control how AI-generated call summaries
      are structured for your team.
  - name: Webhooks
    description: >-
      Manage webhook endpoints to receive real-time notifications about events
      in your Allo account. Each endpoint subscribes to one or more event topics
      and is verified with a signing secret.
  - name: Calls
    description: >-
      Retrieve and search call records with filtering and pagination. Filter
      calls by your Allo phone number.
  - name: Contacts
    description: >-
      Search and retrieve contact information with sorting and pagination.
      Includes engagement level tracking.
  - name: SMS
    description: Send SMS messages to phone numbers using your Allo numbers.
  - name: Phone Numbers
    description: Retrieve information about your Allo phone numbers.
  - name: Analytics
    description: Pre-computed call metrics, team performance, and outbound dial funnel
  - name: CRM
    description: Manage people, companies, and deals in your CRM.
paths:
  /v2/api/crm/people:
    post:
      tags:
        - CRM
      summary: Create person
      description: Creates a new person in your CRM.
      operationId: createPerson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePersonRequest'
            example:
              name: John
              last_name: Doe
              job_title: CEO
              website: https://example.com
              address: 123 Main St
              numbers:
                - '+33612345678'
              emails:
                - john@example.com
              company_id: com-xyz789
      responses:
        '200':
          description: Person created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CrmPerson'
        '401':
          $ref: '#/components/responses/ApiUnauthorized'
        '409':
          $ref: '#/components/responses/ApiConflict'
        '422':
          $ref: '#/components/responses/ApiValidationError'
        '429':
          $ref: '#/components/responses/ApiRateLimited'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreatePersonRequest:
      type: object
      description: Request body for creating a person
      required:
        - numbers
      properties:
        name:
          type: string
          nullable: true
          description: First name
          example: John
        last_name:
          type: string
          nullable: true
          description: Last name
          example: Doe
        job_title:
          type: string
          nullable: true
          description: Job title
          example: CEO
        website:
          type: string
          nullable: true
          description: Website URL
          example: https://example.com
        address:
          type: string
          nullable: true
          description: Postal address
          example: 123 Main St
        numbers:
          type: array
          items:
            type: string
          description: Phone numbers in E.164 format. At least one number is required.
          minItems: 1
          example:
            - '+33612345678'
        emails:
          type: array
          nullable: true
          items:
            type: string
          description: Email addresses
          example:
            - john@example.com
        company_id:
          type: string
          nullable: true
          description: ID of the company to associate with
          example: com-xyz789
        allow_duplicate_number:
          type: boolean
          description: >-
            When true, allows creating a person even if the phone numbers are
            already assigned to another person. Defaults to false.
          default: false
    CrmPerson:
      type: object
      description: A person in the CRM
      properties:
        id:
          type: string
          description: Unique person identifier
          example: per-abc123
        name:
          type: string
          nullable: true
          description: First name
          example: John
        last_name:
          type: string
          nullable: true
          description: Last name
          example: Doe
        job_title:
          type: string
          nullable: true
          description: Job title
          example: CEO
        website:
          type: string
          nullable: true
          description: Website URL
          example: https://example.com
        address:
          type: string
          nullable: true
          description: Postal address
          example: 123 Main St
        numbers:
          type: array
          items:
            type: string
          description: Phone numbers in E.164 format
          example:
            - '+33612345678'
        emails:
          type: array
          items:
            type: string
          description: Email addresses
          example:
            - john@example.com
        company:
          $ref: '#/components/schemas/CrmCompanyRef'
        interactions:
          type: integer
          description: Total number of interactions (calls + messages)
          example: 5
        last_activity_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp of the last activity
          example: '2026-04-28T10:30:00'
        created_at:
          type: string
          format: date-time
          description: When the person was created
          example: '2026-04-01T09:00:00'
        updated_at:
          type: string
          format: date-time
          description: When the person was last updated
          example: '2026-04-28T10:30:00'
    CrmCompanyRef:
      type: object
      nullable: true
      description: Embedded company reference
      properties:
        id:
          type: string
          description: Company ID
          example: com-xyz789
        name:
          type: string
          description: Company name
          example: Acme Corp
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            request_id:
              type: string
            retry_after_seconds:
              type: integer
              nullable: true
  responses:
    ApiUnauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiConflict:
      description: Conflict with existing resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiValidationError:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiRateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````