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

# Fallback Data

> Retrieve sample client data for testing Zapier triggers and previewing data structures.

## Overview

The fallback endpoint provides sample client data for Zapier trigger testing and configuration. When setting up a "New Client" trigger, Zapier uses this endpoint to show users the expected data structure, making it easier to configure workflows before activating live webhook subscriptions.

<Note>
  This endpoint intelligently returns your most recent client data when available, or consistent sample data for testing when your workspace has no clients yet.
</Note>

## Authentication

All requests require a valid API key in the Authorization header:

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Get Sample Data

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET 'https://app.timetracker.in/api/integrations/zapier/triggers/clients/fallback' \
    -H 'Authorization: Bearer YOUR_API_KEY'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://app.timetracker.in/api/integrations/zapier/triggers/clients/fallback', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  });

  const data = await response.json();
  console.log(data[0]); // First (and typically only) client object
  ```

  ```python Python theme={null}
  import requests

  url = "https://app.timetracker.in/api/integrations/zapier/triggers/clients/fallback"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY"
  }

  response = requests.get(url, headers=headers)
  client_data = response.json()[0]  # First client object
  ```
</CodeGroup>

## Response

### Success Response

Returns an array containing one client object - either your most recent client or sample data:

```json theme={null}
[
  {
    "id": "c1a2b3c4-d5e6-7890-abcd-ef1234567890",
    "name": "Acme Corporation",
    "email": "info@acmecorp.com",
    "phone": "+1-800-555-0199",
    "address": "456 Innovation Drive, Silicon Valley, CA 94043",
    "status": "active",
    "type": "company",
    "workspace": {
      "id": "w1b2c3d4-e5f6-7890-abcd-ef0987654321",
      "name": "Acme Main Workspace"
    },
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T10:30:00Z"
  }
]
```

### Data Fields

<ResponseField name="id" type="string">
  Unique client identifier (UUID format)
</ResponseField>

<ResponseField name="name" type="string">
  Client or company name
</ResponseField>

<ResponseField name="email" type="string">
  Primary contact email address
</ResponseField>

<ResponseField name="phone" type="string">
  Contact phone number with country code
</ResponseField>

<ResponseField name="address" type="string">
  Complete business or mailing address
</ResponseField>

<ResponseField name="status" type="string">
  Current client status

  * `active` - Client is currently active
  * `inactive` - Client is temporarily inactive
</ResponseField>

<ResponseField name="type" type="string">
  Client classification

  * `company` - Business or organization
  * `individual` - Individual person
</ResponseField>

<ResponseField name="workspace" type="object">
  Associated workspace information

  <Expandable title="Workspace Object">
    <ResponseField name="id" type="string">
      Unique workspace identifier
    </ResponseField>

    <ResponseField name="name" type="string">
      Human-readable workspace name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp when client was created
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp when client was last modified
</ResponseField>

### Error Responses

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    ```json theme={null}
    {
      "error": "Unauthorized"
    }
    ```

    **Cause**: Invalid or missing API key\
    **Solution**: Verify your API key is correct and properly formatted
  </Accordion>

  <Accordion title="500 Internal Server Error">
    ```json theme={null}
    {
      "error": "Failed to fetch clients"
    }
    ```

    **Cause**: Server-side error during data retrieval\
    **Solution**: Retry the request or contact support if the issue persists
  </Accordion>
</AccordionGroup>

### Sample Data Format

When your workspace has no clients, you'll receive this consistent sample data:

```json theme={null}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "Sample Tech Startup Inc.",
  "email": "contact@sample.com",
  "phone": "+1-555-0123",
  "address": "123 Sample Street, Sample City, SC 12345",
  "status": "active",
  "type": "company",
  "workspace": {
    "id": "456e7890-e89b-12d3-a456-426614174001",
    "name": "Sample Workspace"
  },
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}
```

## Zapier Integration Workflow

### How Zapier Uses This Endpoint

<Steps>
  <Step title="Trigger Configuration">
    When you set up a "New Client" trigger in Zapier, it automatically calls this endpoint to fetch sample data.
  </Step>

  <Step title="Data Structure Display">
    Zapier shows you the returned client data structure, including all available fields and their formats.
  </Step>

  <Step title="Field Mapping Setup">
    You can map specific client fields (like `name`, `email`, `phone`) to actions in your workflow.
  </Step>

  <Step title="Testing & Validation">
    Use the sample data to test your workflow logic before activating live webhook notifications.
  </Step>

  <Step title="Production Activation">
    Once configured, Zapier switches to receiving real-time data via webhook subscriptions.
  </Step>
</Steps>

<Tip>
  **Pro Tip**: The data structure shown during setup matches exactly what you'll receive in live webhook payloads, so you can confidently design your workflows around the sample data.
</Tip>

## Use Cases

<AccordionGroup>
  <Accordion title="Zapier Trigger Setup">
    **Primary Use**: Zapier automatically calls this endpoint when users configure "New Client" triggers to show them what data will be available.
  </Accordion>

  <Accordion title="Integration Development">
    **Development Use**: Test your integration logic with consistent, predictable data structures before connecting to live client creation events.
  </Accordion>

  <Accordion title="Documentation & Training">
    **Reference Use**: Use the returned data structure to document what fields are available in your client management workflows.
  </Accordion>

  <Accordion title="Workflow Validation">
    **Testing Use**: Validate that your automation workflows can handle all the client data fields before going live.
  </Accordion>
</AccordionGroup>

## Important Notes

<Warning>
  **Data Consistency Guarantee**: The structure returned by this endpoint exactly matches the webhook payload format, ensuring seamless transition from testing to production.
</Warning>

<Info>
  **Workspace Isolation**: Only returns real client data from your authenticated workspace. Cross-workspace data access is prevented for security.
</Info>

<Check>
  **Integration Best Practices**:

  * Always test your workflows with this sample data first
  * The endpoint returns an array, so access the first element: `data[0]`
  * All dates use ISO 8601 format for consistent parsing
  * Client IDs are always UUIDs for reliable identification
  * Phone numbers include country codes when available
</Check>

## Testing Your Integration

To test how your application handles client data:

1. **Call the endpoint** with your API credentials
2. **Parse the response** and extract the first client object
3. **Validate data types** match your expected formats
4. **Test field mapping** for your specific use case
5. **Handle edge cases** like missing optional fields

This ensures your integration works smoothly when real client data starts flowing through webhooks.
