The Kindertales CRM+ API enables organizations to integrate their existing systems with Kindertales, automating the creation of inquiries and adding families to the waitlist.
The Kindertales CRM+ API is a premium feature available to CRM+ subscribers.
Key Features:
- Create Inquiries: Automatically send new inquiry data to Kindertales, reducing manual entry and ensuring leads are captured efficiently.
- Add Families to the Waitlist: Submit waitlist requests programmatically, ensuring families are placed in the appropriate queue for enrollment consideration.
Getting Started:
- Request API Access: To use the API, your organization must be subscribed to CRM+. If you are interested in enabling API access, please contact Kindertales support.
- Obtain API Credentials: Once API access is granted, you will receive uuid's for your organization and locations. These credentials are required to authenticate requests to the API.
- Integrate with Your System: Use the provided API endpoint to connect your system with Kindertales. You will be able to send inquiry and waitlist data directly from your CRM or website into Kindertales.
API Usage Guidelines:
- Authentication: API authentication requires a valid uuid for both client and location, which must be included in all requests.
- Data Formatting: Ensure that inquiry and waitlist data follow the required format outlined in the API documentation.
- Monitoring: Regularly monitor API responses to confirm successful data submission.
Example: Creating an Inquiry
Base URL: https://crm-api.kindertales.com/
To create an inquiry, send a POST request to the /public/crm/inquiries
endpoint with the following parameters:
Headers
Key | Required | Type | Description |
client_id | Yes | UUID | UUID for Organization, provided by Kindertales |
Payload
Key | Required | Type | Description |
waitlist | Yes | Object | The inquiry data for the waitlist inquiry |
metaData | Optional | Object | The additional custom metadata from the inquiry form |
Waitlist Object Structure
The waitList data passed in the API contains the details of the user and the children submitting the inquiry. Each location is a separate entry in the list.
Key | Required | Type | Description |
parentFirstName | Yes | String | The parent / user’s first name |
parentLastName | Yes | String | The parent / user’s last name |
relationship | Yes | String |
The user’s relationship to the child(ren) Accepted values:
|
Yes | String | The user’s email address | |
phone | Yes | String | The user’s phone number |
locationIds | Yes | Array | The selected locationId(s) for inquiry |
children | Yes | Array | The child(ren) being signed up |
Child Object Structure
The user can submit information for multiple children in the inquiry form.
Key | Required | Type | Description |
firstName | Yes | String | Child first name |
lastName | Yes | String | Child last name |
dob | Yes | String | Child’s Date of Birth (YYYY-MM-DD) |
gender | Yes | String |
The child’s gender. Accepted values:
|
requestedStartDate | Yes | String | Requested start date for the child (YYYY-MM-DD) |
Example Request:
Example Responses:
A successful response (2xx) will return a boolean:
{
"success": true
}
A Validation Error Response (4xx) will return its code and an array of error messages, helping your troubleshoot:
{
"statusCode": 400,
"message": [
"waitList.parentLastName should not be empty",
"waitList.parentLastName must be a string",
"waitList.email must be an email",
"waitList.children.0.requestedStartDate must be a valid ISO 8601 date string",
"waitList.Relationship must be one of the following values: Father, Mother, Grandfather, Grandmother, Guardian, Joint Custody, Other"
],
"timestamp": "2025-02-04T15:34:08.003Z",
"path": "/crm/inquiries",
"method": "POST"
}
An Internal Server Error (5xx) will return a boolean:
{
"success": false
}