An open dental google sheets integration allows you to automatically pull data from your practice management software into a spreadsheet. If you find yourself manually exporting reports from the Reports module to analyze production, collections, or patient trends, this integration can automate that process, saving your team hours of manual data entry every week.
By using the official Open Dental API, you can securely fetch data and populate a Google Sheet, creating a live dashboard that updates without you needing to touch the software.
Prerequisites
Before you begin, ensure you have the following requirements met:
- API Access: You must have an active eServices subscription. API access is a paid feature; contact Open Dental to confirm your tier and enable the necessary permissions.
- Developer Portal Access: You need a Developer API Key. If you are hiring a developer or using a third-party service, they must obtain this by contacting
vendor.relations@opendental.com. - eConnector: Your office must have the eConnector service installed and running on your server.
- Enable API: In Open Dental, go to Setup > Advanced Setup > API. Ensure the Enabled checkbox is checked. You will also generate a Customer API Key here, which is required for authentication.
Implementation
To connect to Google Sheets, you will need a small script (typically running in a cloud environment like Google Apps Script or a Node.js server) to act as the bridge. The script will request data from the Open Dental API and then push it to your Google Sheet.
The Open Dental API uses Basic Authentication. You must include your Developer API Key and Customer API Key in the request header.
Here is a simplified example using Node.js to fetch patient data:
const axios = require('axios');
// Replace with your actual keys and server details
const devKey = 'YOUR_DEVELOPER_KEY';
const custKey = 'YOUR_CUSTOMER_KEY';
const baseUrl = 'https://{serverIP}:{port}/api/v1/';
async function getPatients() {
try {
const response = await axios.get(`${baseUrl}patients`, {
headers: {
'Authorization': `ODFHIR ${devKey}/${custKey}`,
'Content-Type': 'application/json'
}
});
console.log(response.data);
} catch (error) {
console.error('Error fetching data:', error.message);
}
}
getPatients();
Once you have the data, you can use the Google Sheets API to append these rows to your spreadsheet.
Common Errors
- 401 Unauthorized: This usually means your API keys are incorrect, expired, or not properly formatted in the
Authorizationheader. Double-check that you are using theODFHIRprefix. - 400 Bad Request: This often occurs if you are requesting a resource that does not exist or if your query parameters (like
LimitorOffset) are formatted incorrectly. - 504 Gateway Time-out: The request took longer than 60 seconds. If you are pulling a large dataset, use pagination (
LimitandOffset) to break the request into smaller chunks.
Limitations
- Rate Limits: Depending on your API tier, your requests may be throttled. Avoid polling the API every few seconds.
- Data Restrictions: The API is designed for safe interaction. You cannot perform raw SQL queries. You must use the specific endpoints provided in the API documentation.
- Security: Never hardcode your API keys in a public repository. Use environment variables to store your credentials securely.
Don't want to build your own dashboard? DentalCanvas already connects to your Open Dental data and shows you everything in a visual interface.
This article is provided by opendentalsupport.com, an independent community resource. We are not affiliated with Open Dental Software, Inc.