HappyFox
Create and update support tickets and contacts in HappyFox via the HappyFox REST API v1.1.
What it does
Provides eight operations against the HappyFox helpdesk:
| Operation | Description |
|---|---|
list_tickets |
Retrieve the first page of tickets (up to 10, default page size) |
get_ticket |
Fetch full details for a single ticket by ticket number |
create_ticket |
Open a new ticket for a contact (creates the contact if new) |
update_ticket |
Post a staff reply or change status/priority on an existing ticket |
list_contacts |
Retrieve the first page of contacts |
get_contact |
Fetch a single contact by numeric ID or email address |
create_contact |
Create a new contact with name, email, and optional phone |
update_contact |
Update name, email, or phone on an existing contact |
API key setup
- Log in to HappyFox as an admin.
- Go to Apps > Goodies > API.
- Click New API Key, give it a name, and save.
- Copy both the API Key and the Auth Code that appear — you need both.
Authentication
HappyFox uses HTTP Basic authentication. The API key is the username and the auth code is the password. The tool encodes them automatically; you supply them as plain strings.
Base URL
https://{subdomain}.happyfox.com/api/1.1/json/
EU-hosted accounts use .happyfox.net — supply the full host as the subdomain input and the tool normalizes it.
Inputs
| Input | Required | Description |
|---|---|---|
apiKey |
Yes | HappyFox API key |
authCode |
Yes | HappyFox auth code |
subdomain |
Yes | Your HappyFox subdomain (e.g. acme from acme.happyfox.com) |
operation |
Yes | One of the eight operations listed above |
ticketNumber |
For ticket ops | Ticket number (e.g. 42) |
subject |
create_ticket | Ticket subject line |
text |
create/update_ticket | Message body (plain text; stored as HTML by HappyFox) |
email |
create_ticket, create/update_contact | Contact email address |
name |
create_ticket, create/update_contact | Contact display name |
categoryId |
create_ticket | Category ID (integer; required by HappyFox) |
priorityId |
create/update_ticket | Priority ID (integer) |
staffId |
update_ticket | Agent/staff ID performing the update |
statusId |
update_ticket | New status ID |
contactId |
get/update_contact | Numeric contact ID or email address |
phone |
create/update_contact | Contact phone number |
Examples
Create a ticket
[
{
"name": "open_ticket",
"tool": "happyfox",
"input": {
"apiKey": "{{credential.happyfox_api_key}}",
"authCode": "{{credential.happyfox_auth_code}}",
"subdomain": "acme",
"operation": "create_ticket",
"name": "Jane Smith",
"email": "[email protected]",
"subject": "Cannot log in to my account",
"text": "I've been locked out since this morning. Please help.",
"categoryId": "3"
}
}
]
Get ticket details
[
{
"name": "fetch_ticket",
"tool": "happyfox",
"input": {
"apiKey": "{{credential.happyfox_api_key}}",
"authCode": "{{credential.happyfox_auth_code}}",
"subdomain": "acme",
"operation": "get_ticket",
"ticketNumber": "42"
}
}
]
Update a ticket (staff reply + status change)
[
{
"name": "reply_ticket",
"tool": "happyfox",
"input": {
"apiKey": "{{credential.happyfox_api_key}}",
"authCode": "{{credential.happyfox_auth_code}}",
"subdomain": "acme",
"operation": "update_ticket",
"ticketNumber": "42",
"staffId": "7",
"text": "We've reset your password. Please try logging in again.",
"statusId": "2"
}
}
]
Create a contact
[
{
"name": "add_contact",
"tool": "happyfox",
"input": {
"apiKey": "{{credential.happyfox_api_key}}",
"authCode": "{{credential.happyfox_auth_code}}",
"subdomain": "acme",
"operation": "create_contact",
"name": "Jane Smith",
"email": "[email protected]",
"phone": "+15550001234"
}
}
]
Notes
categoryId,priorityId,staffId, andstatusIdare numeric IDs. Find them in the HappyFox admin UI or by callinglist_tickets/GET /api/1.1/json/categories/directly.- The
resultoutput contains the raw JSON response body from HappyFox. statuscontains the HTTP status code (e.g.200,201,400).- List endpoints return 10 results per page by default (HappyFox maximum is 50). Pagination is not automated; use the raw API for bulk retrieval.
- Rate limiting: HappyFox enforces per-account API rate limits. See the HappyFox knowledge base article on rate limiting for current thresholds.
Publishes
The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.
errorresultstatus
Input Properties
Every property this tool accepts, from its own tool.iml.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
apiKey |
string | yes | — | DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change. |
authCode |
string | yes | — | HappyFox auth code. Generated alongside the API key in Apps > Goodies > API. |
subdomain |
string | yes | — | Your HappyFox subdomain (the {subdomain} in https://{subdomain}.happyfox.com). |
operation |
string | yes | — | One of: list_tickets, get_ticket, create_ticket, update_ticket, list_contacts, get_contact, create_contact, update_contact |
ticketNumber |
string | no | — | Ticket number for get_ticket or update_ticket. |
subject |
string | no | — | Ticket subject for create_ticket. |
text |
string | no | — | Message body for create_ticket or reply text for update_ticket. |
email |
string | no | — | Contact email for create_ticket or create_contact. |
name |
string | no | — | Contact name for create_ticket or create_contact. |
categoryId |
string | no | — | Category ID for create_ticket (required). Use list_tickets response or the HappyFox admin UI to find IDs. |
priorityId |
string | no | — | Priority ID for create_ticket or update_ticket. |
staffId |
string | no | — | Agent/staff ID for update_ticket (the agent performing the update). |
statusId |
string | no | — | Status ID for update_ticket. |
contactId |
string | no | — | Contact ID or email address for get_contact or update_contact. |
phone |
string | no | — | Contact phone number for create_contact or update_contact. |