Capability library / Application package

Freshdesk package v1.0.0

Read Freshdesk tickets, contacts, and agents; reply to tickets and add notes. Replies reach the requester, and notes can be public or trigger email notifications.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

The endpoint host 'your-domain.freshdesk.invalid' is a reserved .invalid placeholder that fails closed until you substitute the real host in both the endpoint URLs and the egress allowlist.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (5)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/freshdesk.json and embeds a copy in the release binary.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

freshdesk.tickets.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://your-domain.freshdesk.invalid/api/v2/tickets
Connector
http
Custody
customer_vault
Credential ref
secret-ref-freshdesk-api-key
Data class
pii

Read tickets.

List all tickets: subjects, descriptions, requester and responder ids, statuses and cc lists, which identify individuals and carry their correspondence. The registered path covers the collection read only — single-ticket reads (GET /api/v2/tickets/[id]), search/filter and conversation or time-entry listings are not registered by this pack.

freshdesk.contacts.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://your-domain.freshdesk.invalid/api/v2/contacts
Connector
http
Custody
customer_vault
Credential ref
secret-ref-freshdesk-api-key
Data class
pii

Read contacts.

List all contacts: names, email addresses, phone numbers, job titles and addresses, which are personal data. The registered path covers the collection read only — single-contact reads (GET /api/v2/contacts/[id]), contact search/filter and autocomplete are not registered by this pack.

freshdesk.agents.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://your-domain.freshdesk.invalid/api/v2/agents
Connector
http
Custody
customer_vault
Credential ref
secret-ref-freshdesk-api-key
Data class
pii

Read agents.

List the helpdesk's agents: names, email addresses, roles, and group memberships. This staff directory is classified as pii (personal data), just as customer contact data is. Single-agent reads (GET /api/v2/agents/[id]) and /api/v2/agents/me are not registered.

freshdesk.tickets.reply.create v1.0.0R3

Kind
tool
Actions
create, send
Endpoint
POST https://your-domain.freshdesk.invalid/api/v2/tickets/TICKET_ID/reply
Connector
http
Custody
customer_vault
Credential ref
secret-ref-freshdesk-api-key
Data class
pii

Reply to tickets.

Create a reply on one ticket (an HTML body, with optional attachments and cc). The declared effect includes send at the minimum R3 tier: a reply is the public, customer-facing response on the ticket and is delivered to the requester on the ticket's channel (typically email) — a reply cannot be recalled after delivery once the requester has it. Send is one of the designated actions requiring human approval.

On supported execution paths mediated by AAES Govern, irreversible actions require approval by an authorized person; this does not prevent calls through bypass or observation-only paths. TICKET_ID is a placeholder the deployment binds to a concrete ticket before enabling.

freshdesk.tickets.notes.create v1.0.0R3

Kind
tool
Actions
create, send
Endpoint
POST https://your-domain.freshdesk.invalid/api/v2/tickets/TICKET_ID/notes
Connector
http
Custody
customer_vault
Credential ref
secret-ref-freshdesk-api-key
Data class
pii

Add ticket notes.

Create a note on a ticket. Notes are private by default, but callers can set private=false to make a note visible to the requester or include notify_emails to send notifications to agents or users. This unrestricted endpoint therefore declares create and send at R3; send requires human approval. Delivered notifications cannot be recalled.

The pack has no private-note-only R2 variant: the registration cannot enforce values for private or notify_emails. Bind TICKET_ID to a concrete ticket before enabling.

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-freshdesk-api-key
Custody
customer_vault
Injection
header (Authorization)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

A Freshdesk API key used as HTTP Basic credentials, held in the client's own secret manager. Freshdesk's documentation authenticates with the API key as the Basic-auth username and any single character (conventionally 'X') as the password ('curl -u apikey:X'), so the stored material must be the complete Authorization header value: the scheme 'Basic', one separating space, then the Base64 encoding of '{api_key}:X' — 'Basic <base64>'.

Key issuance is an external process: each agent finds or regenerates their own API key in their Freshdesk profile settings; the executor performs no credential lifecycle itself and injects the stored value verbatim.

Least privilege: an API key authenticates AS that agent and inherits the agent's full role permissions, so issue the key from a dedicated least-privilege service-account agent whose role covers exactly the registered capabilities (read tickets, contacts and agents; reply and note on tickets) and nothing more.

Expiry and revocation: API keys do not expire on their own; regenerating the key in profile settings invalidates the previous key immediately, and deleting or deactivating the agent disables its key. Because the key is the credential (no separate tokens are issued from it), regeneration is full revocation of this value — no already-issued tokens survive it, because none exist. Review the owning agent's role and the account's key inventory before enabling.

Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • freshdesk-account-tickets (api, pii): https://your-domain.freshdesk.invalid/api/v2/tickets
  • freshdesk-account-contacts (api, pii): https://your-domain.freshdesk.invalid/api/v2/contacts
  • freshdesk-account-agents (api, pii): https://your-domain.freshdesk.invalid/api/v2/agents

Technical package and review record

Complete provider requirements and exclusions

The endpoint host 'your-domain.freshdesk.invalid' is a reserved non-production placeholder (.invalid is an RFC 2606 reserved TLD that can never resolve): substitute the account's own Freshdesk domain (your-domain.freshdesk.com — the account's Freshdesk domain; this review did not find Freshdesk API documentation supporting a custom support URL as an interchangeable API destination, so none is offered) before enabling, in the endpoints, the resource locators and the egress allowlist — the allowlist matches exactly, so all three must be substituted together, and substitution is a required pre-enablement step.

Note that allowlisting the reserved placeholder host does not make an unsubstituted pack safe: an unsubstituted pack has never been bound to the account it claims to govern, and its review says nothing about that account. This pack registers only endpoints the official Freshdesk API documentation (developers.freshdesk.com/api) lists: the tickets, contacts and agents collection reads, and creating a reply or a note on a ticket.

All read capabilities cover the collection read only: single-record reads (GET /api/v2/tickets/[id], /api/v2/contacts/[id], /api/v2/agents/[id]), search and filter endpoints (/api/v2/search/...), autocomplete, and ticket sub-resource listings (conversations, time_entries, watchers, accesses) are not registered by this pack — separate navigation and sub-resource endpoints are not registered unless named. Consequential effects: a Freshdesk reply is the public, customer-facing response on a ticket — it is delivered to the requester on the ticket's channel (typically email), so reply creation declares send at the minimum R3 tier alongside create.

Note creation is judged by the same effect rule: Freshdesk documents notes as private by default, but the same endpoint accepts private=false (a public note the requester can see) and a notify_emails array (email addresses of agents or users 'who need to be notified about this note') — the unrestricted effect of the endpoint includes transmitting to people, so note creation also declares send at the minimum R3 tier. Send is one of the designated actions requiring human approval: a delivered reply or notification cannot be recalled after delivery.

A private-note-only variant is not registered as R2: the private flag and notify_emails are request-body properties of the same endpoint, and a pack registers an endpoint, not a body value, so nothing in the registration would enforce the restriction.

Documented exclusions: this pack does not register ticket create or update (a created ticket can email the requester and would likewise carry send), outbound email tickets (/api/v2/tickets/outbound_email), forward and reply_to_forward, ticket delete/restore, merge, bulk update, canned responses, contact create/update/delete or merge, agent create/update/delete, and the outbound-messages channel API.

Data-class rationale: tickets and contacts identify individuals and carry their correspondence, so both are pii; agents are the helpdesk's own staff directory (names, emails, roles) and are registered pii — staff names and email addresses are personal data whether they identify employees or customers.

The endpoints are verified against the provider documents named in the review block, and the credential-custody review was completed on 2026-09-21 against this pack's custody model (an agent's API key used as HTTP Basic credentials, held in the customer's vault), with these findings, one per gated property.

Issuance authority and delegation: each agent finds or regenerates their own API key in their Freshdesk profile settings, so issuance authority sits with the account's own agents and admins; the key authenticates AS that agent and delegates the agent's full role permissions to every call. Scope: Freshdesk documents no per-key scoping — the key inherits the agent's role permissions, so least privilege is achieved by issuing the key from a dedicated service-account agent whose role covers exactly the registered capabilities and nothing more.

Audience: no audience mechanism is documented — the Basic credential authorizes against the account's freshdesk.com domain, and audience binding beyond that is not established. TTL: API keys do not expire on their own and stay live until regenerated or revoked.

Refresh ownership: there is no refresh — the key is the credential and no tokens are derived from it; re-issuance is an external administrative action, and the executor injects the stored value verbatim and performs no credential lifecycle itself.

Revocation: regenerating the key in profile settings invalidates the previous key immediately, and deleting or deactivating the agent disables its key; because no derived tokens exist, regeneration is full revocation of this value. Executor access and replay/exposure: the executor reads only the vault reference; the credential is replayable with no TTL bound until regenerated, so the vault reference is the only place the value may live.

Alternate access paths: the Freshdesk web UI, other agents' keys and other integrations retain access outside this pack, and regenerating or deleting this key closes only this path. The credential review is complete. Assign accountable owners before deployment.

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-09-22

1 source, retrieved 2026-09-21

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 5037abaa72d63f4157e55349f8568188f4ced352305c66e5d46c2068ee2d782c

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.