> For the complete documentation index, see [llms.txt](https://docs.bird.com/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bird.com/api/channels-api/supported-channels/programmable-whatsapp/customer-service-window.md).

# Customer service window

If you’re sending a message to a customer to initiate a conversation, you’ll need to use a message template. You’ll also need to do this if you’re replying to a customer after the 24-hour care window has closed.

### What is the WhatsApp customer service window?

A [customer service window](https://developers.facebook.com/docs/whatsapp/conversation-types#customer-service-window) is a period of time during which a business can send any type of message to a recipient (user). This window lasts for 24 hours and it can be initiated by either the business or by the customer.

When a customer sends any type of message to a business, and the business replies to it, the customer service window starts. This is known as user-initiated conversation and no prior opt-in is required. When a business sends a template message to a recipient (user), then the customer service window starts. This is known as business-initiated conversation and prior opt-in is required.

## Check if customer service window is open

For some channels it is only possible to send non template messages if the customer service window is open. The following endpoint will return the expiry time for any active service windows

## Get channel details for a contact

> Retrieve channel information for a given contact.

```json
{"openapi":"3.0.3","info":{"title":"Channels","version":"v1"},"tags":[{"name":"channel","description":"Channels are the installation of a platform for a workspace."}],"servers":[{"url":"https://api.bird.com","description":"Production API"}],"security":[{"accessKey":[]}],"components":{"securitySchemes":{"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"parameters":{"queryContactIdentifierValue":{"name":"contactIdentifierValue","description":"The receiver identifier value.","in":"query","allowEmptyValue":true,"schema":{"type":"string"}}},"schemas":{"ChannelContactInformation":{"type":"object","additionalProperties":false,"required":["serviceWindowExpireAt"],"properties":{"serviceWindowExpireAt":{"nullable":true,"type":"string","format":"date-time"},"isPermanentSession":{"nullable":true,"type":"boolean"},"metadata":{"nullable":true,"type":"object","additionalProperties":{"type":"string"}}}},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}},"responses":{"requestError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"An error"}}},"paths":{"/workspaces/{workspaceId}/channels/{channelId}/contacts/{contactId}":{"get":{"summary":"Get channel details for a contact","operationId":"getChannelContactInformation","description":"Retrieve channel information for a given contact.","tags":["channel"],"parameters":[{"$ref":"#/components/parameters/queryContactIdentifierValue"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelContactInformation"}}}},"404":{"$ref":"#/components/responses/requestError"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bird.com/api/channels-api/supported-channels/programmable-whatsapp/customer-service-window.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
