Make.com Integration Guide
Step-by-step instructions for integrating the Novus API with Make.com HTTP modules, including token management, error handling, and best practices.
Prerequisites
Before beginning your integration, ensure you have all required components and access.
Required Access
✅ Make.com account with HTTP module access
✅ Novus API credentials (Username and Password)
✅ Whitelisted IP address for API access
✅ Access to QA and/or Production environments
✅ Understanding of JSON and API authentication
Environment Information
Environment | Purpose | Base URL Pattern |
---|---|---|
QA | Development & Testing | https://[CLIENT_URL]/[API_PATH]/WAEPANYL |
Production | Live Operations | https://[CLIENT_URL]/[API_PATH] |
Integration Overview
The Novus API integration follows a two-step authentication process with specific considerations for Make.com workflows.
Workflow Architecture
1. Request Authentication Token
├── POST /WAEPANYL/Token
├── Headers: UserName, Password
└── Response: Token (expires in 5 minutes)
2. Retrieve Member Information
├── POST /WAEPANYL/GetMemberInfo
├── Headers: UserName, Password, Token
├── Body: Member identification data
└── Response: Member details and policies
3. Process Response Data
├── Parse JSON response
├── Handle empty responses
└── Extract required information
HTTP Module Selection
The Novus API requires specific Make.com HTTP module configuration due to its custom authentication method.
Correct Module Selection
HTTP Action | Compatible | Reason |
---|---|---|
Make a request |
✅ YES | Allows custom header configuration |
Make a Basic Auth request |
❌ NO | Uses HTTP Basic Auth (not Novus method) |
Make an API Key Auth request |
❌ NO | Different authentication pattern |
Make an OAuth 2.0 request |
❌ NO | Novus doesn't use OAuth 2.0 |
Token Request Setup
Configure your first HTTP module to request an authentication token from the Novus API.
Module Configuration
Basic Settings
Setting | Value | Notes |
---|---|---|
URL | https://[CLIENT_URL]/[API_PATH]/WAEPANYL/Token |
Same for QA and Production |
Method | POST |
Required |
Body type | Raw |
Leave body empty |
Content type | application/json |
Standard JSON content type |
Required Headers
Add the following headers to your HTTP module:
Header 1:
Name: UserName
Value: [YOUR_USERNAME]
Header 2:
Name: Password
Value: [YOUR_PASSWORD]
Testing Your Configuration
- Save your HTTP module configuration
- Run the module manually to test the connection
- Verify you receive a token in the response
- Check that the token is properly formatted (JWT-style)
Expected Response
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 300,
"token_type": "Bearer"
}
Member Info Request Setup
Configure your second HTTP module to retrieve member information using the authentication token.
/WAEPANYL/
in the path.
Module Configuration
Environment-Specific URLs
Environment | URL |
---|---|
QA | https://[CLIENT_URL]/[API_PATH]/WAEPANYL/GetMemberInfo |
Production | https://[CLIENT_URL]/[API_PATH]/GetMemberInfo |
Other Settings
Setting | Value |
---|---|
Method | POST |
Body type | Raw |
Content type | application/json |
Required Headers
Include all three headers for member information requests:
Header 1:
Name: UserName
Value: [YOUR_USERNAME]
Header 2:
Name: Password
Value: [YOUR_PASSWORD]
Header 3:
Name: Token
Value: {{token_from_previous_module}}
{{1.data.token}}
or similar.
Request Body Format
{
"MembershipID": "{{membershipId}}",
"MemberSSN": "{{memberSSN}}",
"DateOfBirth": "{{dateOfBirth}}",
"FirstName": "{{firstName}}",
"LastName": "{{lastName}}"
}
Field Requirements
Field | Format | Example | Notes |
---|---|---|---|
MembershipID |
String | "123456" |
Exact member ID |
MemberSSN |
String | "123-45-6789" |
Include dashes |
DateOfBirth |
YYYY-MM-DD | "1990-01-15" |
ISO date format |
FirstName |
String | "Jane" |
Exact spelling |
LastName |
String | "Doe" |
Exact spelling |
Response Parsing
Configure JSON parsing and response handling for the API responses.
Add JSON Parse Modules
- After Token Request: Add a "JSON > Parse JSON" module to extract the token
- After Member Request: Add another "JSON > Parse JSON" module to process member data
Response Handling Strategies
Processing Successful Responses
When the API returns member data, you'll receive an array of covered persons:
[
{
"coveredPersonType": "Member",
"demographics": { /* member details */ },
"Products": [ /* policy information */ ]
},
{
"coveredPersonType": "Spouse",
"demographics": null,
"Products": null
}
]
Make.com Processing
- Use Iterator module to process each person in the array
- Use Router to handle different person types (Member, Spouse)
- Use Filter to process only records with data
Handling Empty Responses
The API returns an empty array []
in these scenarios:
- No Record Found: Member doesn't exist in the system
- Multiple Records: Ambiguous match (multiple members with same data)
Make.com Handling
// In a Filter or Router module
{{if(length(response) > 0; "has_data"; "no_data")}}
Error Response Handling
Handle various error scenarios with appropriate Make.com error handlers:
Status Code | Scenario | Make.com Action |
---|---|---|
401 |
Expired token | Refresh token and retry |
403 |
IP not whitelisted | Send alert notification |
500 |
Server error | Retry after delay |
Token Management
Implement smart token management to handle the 5-minute expiration efficiently.
Token Management Strategies
Strategy 1: Fresh Token Per Request
Best for: Simple workflows, single member lookups
For each member:
1. HTTP: Request Token
2. JSON: Parse Token
3. HTTP: Get Member Info (use fresh token)
4. JSON: Parse Member Response
5. Process member data
Pros: Simple, always works
Cons: More API calls, slower performance
Strategy 2: Smart Token Caching
Best for: Multiple member processing, batch operations
// Check if cached token is still valid (4-minute buffer)
{{if(and(
length(get("cached_token")) > 0;
((formatDate(now; "X")) - get("token_timestamp")) < 240
); "use_cached"; "get_new")}}
Implementation Steps:
- Check Cache: Use "Get Variable" to check for existing token
- Validate Age: Use "Switch" to check if token is < 4 minutes old
- Use or Refresh: Route to either use cached token or get new one
- Store Token: Use "Set Variable" to cache new tokens with timestamp
Strategy 3: Automatic Refresh on Error
Best for: Long-running workflows, high reliability needed
Member Info HTTP Module:
1. Add Error Handler
2. Filter: Status Code = 401
3. HTTP: Get New Token
4. Set Variable: Update cached token
5. Resume: Retry original request
This approach automatically recovers from token expiration without manual intervention.
Error Handling
Implement comprehensive error handling for robust Make.com workflows.
Common Error Scenarios
Authentication Errors
401/403Causes: Invalid credentials, expired token, IP not whitelisted
Solution: Add error handlers to refresh tokens and send alerts
Data Issues
Empty ResponseCauses: Member not found, multiple matches, invalid data
Solution: Use filters and routers to handle empty responses gracefully
Network Issues
Timeout/500Causes: Server errors, network timeouts, service unavailable
Solution: Implement retry logic with exponential backoff
Error Handler Implementation
1. Right-click HTTP module → "Add error handler"
2. Add "HTTP Status Code" filter
3. Configure handling based on error type:
- 401: Refresh token and retry
- 403: Send notification about IP restriction
- 500: Wait and retry (max 3 attempts)
- Other: Log error and continue
Best Practices
Follow these recommendations for production-ready Make.com integrations.
Security & Credentials
- Use Data Stores: Store API credentials in Make.com Data Stores, not hardcoded in scenarios
- Environment Variables: Use different credentials for QA vs Production
- IP Monitoring: Monitor for IP changes that might affect whitelisting
- Credential Rotation: Plan for regular credential updates
Performance Optimization
- Token Caching: Implement smart token caching to reduce API calls
- Batch Processing: Process multiple members with same token when possible
- Parallel Processing: Use Router for independent operations
- Rate Limiting: Add delays between requests if processing large volumes
Monitoring & Logging
Add logging modules to track:
✅ API request/response times
✅ Token refresh events
✅ Error occurrences and types
✅ Empty response rates
✅ Daily usage statistics
Data Validation
- Input Validation: Validate member data format before API calls
- Date Formatting: Ensure dates are in YYYY-MM-DD format
- SSN Formatting: Include dashes in SSN format
- Name Accuracy: Verify exact spelling of names
Troubleshooting
Common issues and their solutions for Make.com + Novus API integration.
Quick Diagnostic Checklist
✅ Verify API credentials are correct
✅ Check IP address is whitelisted
✅ Confirm using correct environment URLs
✅ Test token generation manually
✅ Validate request body JSON format
✅ Check Make.com scenario execution history
✅ Review error logs for specific error codes
Common Issues
Issue | Symptoms | Solution |
---|---|---|
Token expires too quickly | 401 errors during batch processing | Implement token caching with 4-minute refresh |
Empty responses for valid members | API returns [] for known members | Check data accuracy, try partial matches |
Connection timeouts | Requests fail after 40+ seconds | Increase timeout settings, check network |
Wrong endpoint URL | 404 errors on API calls | Verify QA vs Prod URL differences |
Getting Help
- Check this documentation and troubleshooting guide
- Review Make.com HTTP module documentation
- Contact Novus API support with detailed error information
- Engage Make.com support for platform-specific issues