Package Information
Documentation
n8n-nodes-nookal
This is an n8n community node that provides integration with the Nookal practice management system via their GraphQL API using OAuth 2.0 client credentials flow.

Installation
Follow the installation guide in the n8n community nodes documentation.
Community Nodes (Recommended)
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-nookalin Enter npm package name - Agree to the risks of using community nodes
- Select Install
After installation, the Nookal node will be available in your n8n instance.
Manual Installation
To install the node locally, you can use npm:
npm install n8n-nodes-nookal
For Docker installations, add the package to your n8n Docker image or use environment variables.
Prerequisites
Before using this node, you need:
- Nookal Account: Access to a Nookal practice management system
- API Credentials: Client ID and Client Secret from Nookal
- Contact Nookal support or your system administrator to obtain these credentials
- Ensure your account has the necessary API permissions
Configuration
1. Set up Credentials
- In n8n, go to Credentials
- Click Add Credential
- Search for and select Nookal OAuth2 API
- Fill in the required fields:
- Client ID: Your Nookal-provided Client ID
- Client Secret: Your Nookal-provided Client Secret
- Scope: (Optional) Specific scopes if required by your Nookal setup
- Authentication: Choose "Header" (recommended) or "Body"
2. Test the Connection
After saving your credentials, use the Test button to verify the connection to Nookal's API.
Supported Operations
Patient Operations
- Get: Retrieve a specific patient by ID
- Get All: Retrieve all patients (with pagination)
- Create: Create a new patient record
- Update: Update an existing patient record
Appointment Operations
- Get: Retrieve a specific appointment by ID
- Get All: Retrieve all appointments (with pagination)
- Create: Create a new appointment
- Update: Update an existing appointment
- Cancel: Cancel an appointment
Practitioner Operations
- Get: Retrieve a specific practitioner by ID
- Get All: Retrieve all practitioners (with pagination)
Location Operations
- Get: Retrieve a specific location by ID
- Get All: Retrieve all locations (with pagination)
Custom Query
- Execute: Run custom GraphQL queries against the Nookal API
Usage Examples
Example 1: Get All Patients
- Add a Nookal node to your workflow
- Select Patient as the resource
- Select Get All as the operation
- Set the limit (e.g., 50)
- Configure your Nookal OAuth2 API credentials
Example 2: Create a New Patient
- Add a Nookal node to your workflow
- Select Patient as the resource
- Select Create as the operation
- Fill in the patient data:
- First Name: "John"
- Last Name: "Doe"
- Email: "john.doe@example.com"
- Phone: "+1234567890"
- Date of Birth: "1990-01-01"
- Gender: "MALE"
Example 3: Custom GraphQL Query
- Add a Nookal node to your workflow
- Select Custom Query as the resource
- Select Execute as the operation
- Enter your GraphQL query:
query GetPatientsWithAppointments {
patients(first: 10) {
edges {
node {
id
firstName
lastName
email
appointments(first: 5) {
edges {
node {
id
startTime
endTime
status
}
}
}
}
}
}
}
- Add variables if needed (JSON format):
{
"startDate": "2024-01-01",
"endDate": "2024-12-31"
}
GraphQL Schema
The node is designed to work with Nookal's GraphQL API. Common fields include:
Patient Fields
id: Unique identifierfirstName: Patient's first namelastName: Patient's last nameemail: Email addressphone: Phone numberdateOfBirth: Date of birthgender: Gender (MALE, FEMALE, OTHER)address: Address informationcreatedAt: Creation timestampupdatedAt: Last update timestamp
Appointment Fields
id: Unique identifierstartTime: Appointment start timeendTime: Appointment end timetype: Appointment typestatus: Appointment statusnotes: Appointment notespatient: Associated patient informationpractitioner: Associated practitioner informationlocation: Associated location information
Error Handling
The node includes comprehensive error handling:
- Authentication Errors: Invalid credentials or expired tokens
- GraphQL Errors: Invalid queries or missing fields
- Network Errors: Connection issues or timeouts
- Validation Errors: Invalid input data
Errors are returned with descriptive messages to help with troubleshooting.
Rate Limiting
Be aware of Nookal's API rate limits. The node doesn't implement automatic rate limiting, so consider:
- Adding delays between requests in high-volume workflows
- Using pagination for large data sets
- Implementing retry logic for rate-limited requests
Troubleshooting
Common Issues
Authentication Failed
- Verify your Client ID and Client Secret
- Check that your Nookal account has API access
- Ensure the credentials are saved correctly in n8n
GraphQL Errors
- Verify your query syntax
- Check that all required fields are included
- Ensure you have permissions for the requested data
Connection Timeout
- Check your network connectivity
- Verify Nookal's API endpoint is accessible
- Consider increasing timeout settings if needed
Getting Help
- Check the Nookal API documentation
- Review n8n's community nodes documentation
- Open an issue on the project's GitHub repository
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
Version 1.0.0
- Initial release
- Support for Patient, Appointment, Practitioner, and Location operations
- OAuth 2.0 client credentials authentication
- Custom GraphQL query support
- Comprehensive error handling
Support
For support with this community node:
- Check the documentation above
- Review the Nookal API documentation
- Open an issue on GitHub
- Contact the n8n community for general n8n questions