Using with n8n
Connect Billy to n8n and other automation platforms using header authentication.
n8n is a workflow automation platform that allows you to connect the Billy API with hundreds of other services.
Basic Configuration
1. Create an HTTP Credential
- In n8n, go to Settings > Credentials
- Click on Add Credential
- Select HTTP Request
- Configure:
- Name: Billy API
- Authentication: Generic Credential Type
- Generic Auth Type: Header Auth
- Name: Authorization
- Value:
Bearer billy:o:your-org-id:your-api-key
2. Configure an HTTP Request Node
To list your events:
Method: GET
URL: https://platform.billyapp.live/v1/events
Authentication: Generic Credential Type
Generic Auth Type: Header Auth
Credential: Billy APIWorkflow Examples
Workflow 1: Daily Ticket Sync to Google Sheets
Schedule Trigger (every day at 8am)
↓
HTTP Request (GET /v1/tickets?per_page=1000)
↓
Function (transform data)
↓
Google Sheets (append or update)Function Node to transform data:
// Input: result from Billy API
const tickets = items[0].json.items;
// Transformation for Google Sheets
const rows = tickets.map((ticket) => ({
json: {
"Ticket ID": ticket.ticketId,
Event: ticket.eventId,
Category: ticket.categoryName,
Price: ticket.finalPricePaid,
"Issue Date": ticket.issuedAt,
Status: ticket.status,
Customer: ticket.customerInfo
? `${ticket.customerInfo.firstName} ${ticket.customerInfo.lastName}`
: "N/A",
Email: ticket.customerInfo?.email || "N/A",
},
}));
return rows;Workflow 2: Weekly Report by Email
Schedule Trigger (every Monday at 9am)
↓
HTTP Request (GET /v1/events)
↓
Split In Batches (for each event)
↓
HTTP Request (GET /v1/tickets?eventIds={event.id})
↓
Aggregate (count tickets)
↓
Function (generate HTML report)
↓
Send EmailError Handling
Add an Error Trigger node to be notified in case of error:
Error Trigger
↓
Slack (message: "Error in Billy workflow: {{$json.error.message}}")Automatic Pagination
Create a sub-workflow to handle pagination:
HTTP Request
↓
IF (response.hasMore)
↓ (yes)
HTTP Request (next page)
↓
Merge (accumulate results)
↓
Loop (back to IF)n8n Best Practices
- Use credentials to store your API key securely
- Enable manual execution to test your workflows
- Configure retries on HTTP nodes (3 attempts with backoff)
- Use the Wait node to respect rate limiting
- Enable logs for debugging