Integration
Connect Frihet to NetHunt CRM
When something happens in Frihet, your agent does the next thing in NetHunt CRM. Describe it in plain language and the automation is built, tested on every branch and kept running.
Build it
What do you want Frihet and NetHunt CRM to do together?
Describe it and your agent reads both APIs, builds the automation, tests every branch and ships it. The list below is what exists today, not the limit.
Ask the assistant
You'll sign in before anything runs. What you typed comes with you.
Or work from Claude Code
Install the APIANT plugin for Claude Code and build, edit, test and read run history from your terminal. Every plan gets this, including free, and it spends no assistant credits.
Connect Claude CodeEverything your agent can do with Frihet and NetHunt CRM
Triggers and actions 9 triggers · 45 actions
Trigger
New ExpenseFires when a new expense is created. Backed by vendor webhook registration (POST /v1/webhooks, event=expense.created).
Action
Add ClientCreate a client. POST /v1/clients
Action
Add DepositCreate a deposit. POST /v1/deposits
Action
Add ExpenseCreate an expense. POST /v1/expenses
Action
Add InvoiceCreate an invoice. POST /v1/invoices
Action
Add ProductCreate a product. POST /v1/products
Action
Add QuoteCreate a quote. POST /v1/quotes
Action
Add VendorCreate a vendor. POST /v1/vendors
Action
Apply deposit to invoiceApply a deposit balance to an invoice. POST /v1/deposits/{depositId}/apply
Action
Delete ClientDelete a client. DELETE /v1/clients/{clientId}
Action
Delete ExpenseDelete an expense. DELETE /v1/expenses/{expenseId}
Action
Delete InvoiceDelete an invoice. DELETE /v1/invoices/{invoiceId}
Action
Delete ProductDelete a product. DELETE /v1/products/{productId}
Action
Delete QuoteDelete a quote. DELETE /v1/quotes/{quoteId}
Action
Delete VendorDelete a vendor. DELETE /v1/vendors/{vendorId}
Action
Get ClientRetrieve a client by id. GET /v1/clients/{clientId}
Action
Get DepositRetrieve a deposit by id. GET /v1/deposits/{depositId}
Action
Get ExpenseRetrieve an expense by id. GET /v1/expenses/{expenseId}
Action
Get InvoiceRetrieve an invoice by id. GET /v1/invoices/{invoiceId}
Action
Get ProductRetrieve a product by id. GET /v1/products/{productId}
Action
Get QuoteRetrieve a quote by id. GET /v1/quotes/{quoteId}
Action
Get VendorRetrieve a vendor by id. GET /v1/vendors/{vendorId}
Action
List ClientsList clients. GET /v1/clients
Action
List DepositsList deposits. GET /v1/deposits
Action
List ExpensesList expenses. GET /v1/expenses
Action
List InvoicesList invoices. GET /v1/invoices
Action
List ProductsList products. GET /v1/products
Action
List QuotesList quotes. GET /v1/quotes
Action
List VendorsList vendors. GET /v1/vendors
Action
Mark invoice as paidMark an invoice as paid. POST /v1/invoices/{invoiceId}/paid
Action
Send InvoiceSend invoice by email to the client. POST /v1/invoices/{invoiceId}/send
Action
Send QuoteSend quote by email to the client. POST /v1/quotes/{quoteId}/send
Action
Update ClientPartial update a client. PATCH /v1/clients/{clientId}
Action
Update ExpensePartial update an expense. PATCH /v1/expenses/{expenseId}
Action
Update InvoicePartial update an invoice. PATCH /v1/invoices/{invoiceId}
Action
Update ProductPartial update a product. PATCH /v1/products/{productId}
Action
Update QuotePartial update a quote. PATCH /v1/quotes/{quoteId}
Action
Update VendorPartial update a vendor. PATCH /v1/vendors/{vendorId}
Trigger
New Call LogTriggered when a new call log is added to a record in the specified folder.
Trigger
New CommentTriggered when a new comment is added to a record in the specified folder.
Trigger
New folderTriggered when a new folder is added.
Trigger
New Google Drive File in FolderPolls a NetHunt folder for newly attached Google Drive files linked to its records. Input: folder_id. Returns the list of new Google Drive file attachments.
Trigger
New or Updated Record in FolderTriggered when a record is created or updated in the specified folder.
Trigger
New Record in FolderTriggered when a record is created in the specified folder.
Trigger
Two-way sync new or updated records in folderA trigger for two-way syncing new and updated records in a specified folder, with enhanced on-the-fly mapping. Can only be used with enhanced two-way sync actions that support on-the-fly mapping.
Trigger
Updated Record in FolderTriggered when a record is updated in the specified folder.
Action
Add Call LogAdd a call log to the specified record.
Action
Add CommentAdd a comment to the specified record.
Action
Delete RecordDelete a record by ID.
Action
Find RecordSearch records in a folder by ID or text query.
Action
Find record by field valueFinds one record in a NetHunt folder by matching a field value, and projects the record's fields map alongside record_id / id / created_at. DYNAMIC OUTPUT — DOCUMENTED EXCEPTION TO THE DESIGN RULE (2026-07-20). The standing rule puts FIND ops in the IDs-only bucket: GET enriches output with a field picker, FIND/LIST return IDs only. This op is a deliberate exception because NetHunt exposes NO get-by-id endpoint, so there is no GET op that could carry the picker. Re-confirmed against live data: ?query=<recordId> returns [] for a record that demonstrably exists in that folder (record 6a48901d931c9b3a9bbfb83c in Contacts), recordId:x 400s, and find-record-by-id 404s. The choice was therefore FIND-or-nothing, and a NetHunt user with no output picker has no way to map folder fields at all. If NetHunt ever ships a get-by-id endpoint, move the picker to a proper GET op and revert this op to IDs-only. Field values are projected under `fields`, a flat object keyed by field NAME, matching the house convention of a dynamic map beside the record's own top-level keys (cf. Agile/Cliniko/Capsule/MINDBODY `custom_fields`). NetHunt has no standard-vs-custom split — every folder field is user-defined — so the whole `fields` object is the dynamic surface and the container keeps the accurate name `fields` rather than `custom_fields`. The picker is parameterized per folder: `folder_id` is a SETTING (not an input) because dynamic-schema resolution binds only against step settings, so an input-sourced folder could never resolve the discovery at automation-load time. TYPE BLINDNESS (inherent, not fixable here): the backing schema endpoint returns only {name} with no type, so the picker advertises every field as String. Live reads return numbers and lists — e.g. Deal amount 100000 and Probability 0.9 are numbers, and Company / Contact person / Manager / Email / Label are ARRAYS (link fields carry record-id arrays). Mapping one of these as a scalar fails at runtime with no design-time signal.
Action
List Folder FieldsList the fields of a folder.
Action
List Readable FoldersList all folders the user can read.
Action
List Writable FoldersList folders the user can create records in.
No trigger or action matches that. Ask your agent to add it: it reads the API documentation and builds what you describe.