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

# Send Card

> Sends a personalized card to a recipient via email

Sends a personalized card to a recipient via email. This is the core action endpoint that delivers your cards with dynamic content based on merge tags.

## Key Features

* **Personalization**: Replace merge tags with recipient-specific data
* **Email Delivery**: Send via your configured email accounts or CardClan's default
* **Tracking**: Get unique tracking URLs for engagement analytics
* **Error Handling**: Robust validation and error reporting

## Request Parameters

<ParamField body="card" type="string" required>
  The ID of the card you want to send. Get available cards using the [Get Cards](/api-reference/data/get-cards) endpoint.
</ParamField>

<ParamField body="integrationId" type="string" required>
  Integration configuration ID that links your card to workflow settings. Create one using the [Create Integration
  Config](/api-reference/config/create-integration-config) endpoint.
</ParamField>

<ParamField body="mergeTags" type="array" required>
  Array containing recipient data for personalization. Must contain at least one object with `name` and `email` fields.

  <Expandable title="mergeTags structure">
    <ParamField body="mergeTags[0].name" type="string" required>
      Recipient's full name for personalization
    </ParamField>

    <ParamField body="mergeTags[0].email" type="string" required>
      Valid email address for card delivery
    </ParamField>

    <ParamField body="mergeTags[0].company" type="string">
      Company name for business personalization
    </ParamField>

    <ParamField body="mergeTags[0].position" type="string">
      Job title or position
    </ParamField>

    <ParamField body="mergeTags[0].*" type="string">
      Any custom merge tag fields used in your card template
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="emailAccount" type="string">
  Email account to send from. Use `"CardClan"` for default CardClan email, or provide an email account ID from [Get Email
  Accounts](/api-reference/data/get-email-accounts).
</ParamField>

## Response Details

<ResponseField name="message" type="string">
  Human-readable success or failure message
</ResponseField>

<ResponseField name="status" type="boolean">
  `true` if card was sent successfully, `false` if sending failed
</ResponseField>

<ResponseField name="recipient_id" type="string">
  Unique identifier for this card delivery instance, used for tracking
</ResponseField>

<ResponseField name="tracking_url" type="string">
  URL that tracks when the recipient opens the card email
</ResponseField>

## Response Example

### Success Response

```json theme={null}
{
  "message": "Card sent successfully!",
  "status": true,
  "recipient_id": "60f7b2b5b8f4a20015a4f5a9",
  "tracking_url": "https://app.cardclan.io/track/email/abc123def456"
}
```

### Error Response

```json theme={null}
{
  "message": "Card sending failed: Invalid email address",
  "status": false
}
```


## OpenAPI

````yaml POST /integration/send-card
openapi: 3.1.0
info:
  title: CardClan Integration API
  description: >-
    The CardClan Integration API enables third-party applications and automation
    platforms to send personalized digital cards, manage workflows, and
    integrate CardClan's functionality into existing systems.
  version: 1.0.0
  license:
    name: MIT
servers:
  - url: https://app.cardclan.io/api
security:
  - bearerAuth: []
paths:
  /integration/send-card:
    post:
      tags:
        - Actions
      summary: Send Card
      description: Sends a personalized card to a recipient via email
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendCardRequest'
      responses:
        '201':
          description: Card sent successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendCardResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SendCardRequest:
      type: object
      required:
        - card
        - integrationId
        - mergeTags
      properties:
        card:
          type: string
          description: Card ID to send
          example: 60f7b2b5b8f4a20015a4f5a5
        emailAccount:
          type: string
          description: Email account ID or 'CardClan' for default
          example: CardClan
        integrationId:
          type: string
          description: Integration configuration ID
          example: 60f7b2b5b8f4a20015a4f5a7
        mergeTags:
          type: array
          description: Array of merge tag objects with recipient data
          items:
            $ref: '#/components/schemas/MergeTags'
          minItems: 1
    SendCardResponse:
      type: object
      properties:
        message:
          type: string
          example: 'Card successfully sent to recipient: john@example.com'
        status:
          type: boolean
          example: true
        recipient_id:
          type: string
          example: 60f7b2b5b8f4a20015a4f5a8
        tracking_url:
          type: string
          example: >-
            https://cardclan.com/api/analytics/fetchImage/60f7b2b5b8f4a20015a4f5a8
    Error:
      type: object
      properties:
        error:
          type: string
          example: Bad Request
        message:
          type: string
          example: Card ID is required
        statusCode:
          type: number
          example: 400
        timestamp:
          type: string
          format: date-time
          example: '2024-01-15T10:30:00.000Z'
    MergeTags:
      type: object
      required:
        - name
        - email
      properties:
        name:
          type: string
          description: Recipient's full name
          example: John Doe
        email:
          type: string
          format: email
          description: Recipient's email address
          example: john@example.com
        company:
          type: string
          description: Company name
          example: Acme Corp
        position:
          type: string
          description: Job title/position
          example: Marketing Manager
      additionalProperties:
        type: string
        description: Additional custom merge tag fields
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Enter your CardClan integration key

````