Integrate Qminder with your CRM of choice.
This is a template for quick-starting your own integration.
When a visitor checks in at any of your Qminder locations, this integration:
- Receives the visitor's information in real-time
- Checks your CRM to see if they're a VIP customer
- Automatically adds a "VIP" label to their ticket in Qminder
Your staff instantly sees which visitors deserve special attention.
- Docker
- A Qminder API key (get one here)
git clone https://github.com/qminder/crm-integration-template.git
cd crm-integration-template
docker build -t crm-integration .
docker run -e API_KEY=your_qminder_api_key crm-integrationYou should see:
Example of integrating Qminder with a CRM
Listening for new visitors from all locations
git clone https://github.com/qminder/crm-integration-template.git
cd crm-integration-template
yarn install
export API_KEY=your_qminder_api_key
yarn startRequires Node.js 20+ and Yarn.
| Environment Variable | Description | Required |
|---|---|---|
API_KEY |
Your Qminder API key | Yes |
This template includes a placeholder CRM check. To connect your actual CRM, edit src/crm.ts:
export async function isVIP(ticket: Ticket): Promise<boolean> {
// Replace with your CRM logic
const customer = await yourCrmClient.findByName(
ticket.firstName,
ticket.lastName
);
return customer?.vipStatus === true;
}Salesforce:
const contact = await salesforce.sobject('Contact')
.findOne({ FirstName: ticket.firstName, LastName: ticket.lastName });
return contact?.VIP__c === true;HubSpot:
const contact = await hubspot.contacts.search({
query: `${ticket.firstName} ${ticket.lastName}`
});
return contact?.properties?.vip_status === 'true';src/
├── app.ts # Main entry point - listens for new visitors
├── crm.ts # CRM integration logic (customize this!)
└── model/
└── ticket.ts # Visitor data types
yarn install # Install dependencies
yarn start # Build and run
yarn lint # Run linter
yarn build # Build TypeScript only