---
title: Wiwink API Integration on Truto
slug: wiwink
category: CRM
canonical: "https://truto.one/integrations/detail/wiwink/"
---

# Wiwink API Integration on Truto



**Category:** CRM  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 100 tools for Wiwink that AI agents can call directly.

- **list_all_wiwink_countries** — List countries in wiwink. Returns: id, name, iso. Optionally filter results by name or ISO code, or include related states by passing 'states' via the with[] parameter.
- **get_single_wiwink_country_by_id** — Get a single wiwink country by id. Returns: id, name, iso. Optionally include related states via the with[] parameter. Required: id.
- **list_all_wiwink_states** — List states in wiwink. Returns: id, country_id, name for each state. Optionally filter by country_id or name, and include the related country object by passing 'country' via with[].
- **get_single_wiwink_state_by_id** — Get a single wiwink state by id. Returns: id, country_id, name. Optionally include the related country object via with[]. Required: id.
- **list_all_wiwink_sources** — List all lead sources in wiwink. Returns: id, name, color, owned per source. Optionally filter results by name.
- **get_single_wiwink_source_by_id** — Get a single wiwink lead source by id. Returns: id, name, color, owned. Required: id.
- **create_a_wiwink_source** — Create a new lead source in wiwink. Returns: id, name, color, owned of the created source. Required: name, color.
- **update_a_wiwink_source_by_id** — Update an existing wiwink lead source by id. Returns: id, name, color, owned of the updated source. Required: id.
- **delete_a_wiwink_source_by_id** — Delete a wiwink lead source by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_contacts** — List wiwink contacts with optional field-level filters. Returns: id, status_id, source_id, corporate_name, trade_name, email, phone, vat, iban, bic, date.
- **get_single_wiwink_contact_by_id** — Get a single wiwink contact by id. Returns: id, status_id, source_id, name, corporate_name, trade_name, email, phone, city, zipcode, body, date. Required: id.
- **create_a_wiwink_contact** — Create a new contact in wiwink. Returns: id, status_id, source_id, name, employment, office, corporate_name, trade_name, email, phone, vat, description, date, extra_fields. Required: name.
- **update_a_wiwink_contact_by_id** — Update an existing wiwink contact by id. Returns: id, status_id, source_id, corporate_name, trade_name, email, phone, vat, iban, bic, date. Required: id.
- **delete_a_wiwink_contact_by_id** — Delete a wiwink contact by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_statuses** — List work statuses in wiwink. Returns: id, name, color, owned. Optionally filter results by name.
- **get_single_wiwink_status_by_id** — Get a single wiwink work status by id. Returns: id, name, color, owned. Required: id.
- **create_a_wiwink_status** — Create a new work status in wiwink. Returns: id, name, color, owned. Required: name, color.
- **update_a_wiwink_status_by_id** — Update an existing work status in wiwink. Returns: id, name, color, owned. Required: id.
- **delete_a_wiwink_status_by_id** — Delete a work status in wiwink by id. Returns an empty 204 response on success. Required: id.
- **delete_a_wiwink_contact_status_by_id** — Delete a contact status in wiwink by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_contact_statuses** — List all contact statuses in wiwink. Returns: id, name, color, owned. Optionally filter results by name.
- **get_single_wiwink_contact_status_by_id** — Get a single contact status in wiwink by id. Returns: id, name, color, owned. Required: id.
- **create_a_wiwink_contact_status** — Create a new contact status in wiwink. Returns: id, name, color, owned.
- **update_a_wiwink_contact_status_by_id** — Update an existing contact status in wiwink by id. Returns: id, name, color, owned. Required: id.
- **list_all_wiwink_forms** — List wiwink forms, optionally filtered by contact, source, body, or office. Returns: id, status_id, source_id, name, date, phone, email, address, city, and body.
- **get_single_wiwink_form_by_id** — Get a single wiwink form by id. Returns: id, status_id, source_id, name, date, phone, email, address, city, and body. Required: id.
- **create_a_wiwink_form** — Create a new wiwink form linked to an existing contact. Returns: id, status_id, source_id, name, date, phone, email, address, city, and body. Required: contact_id.
- **update_a_wiwink_form_by_id** — Update an existing wiwink form by id. Returns: id, status_id, source_id, name, date, phone, email, address, city, and body. Required: id.
- **delete_a_wiwink_form_by_id** — Delete a wiwink form by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_customers** — List wiwink customers with optional filters by status, source, email, phone, date range, and more. Returns: id, corporate_name, email, phone, status_id, source_id, date.
- **get_single_wiwink_customer_by_id** — Get a single wiwink customer by id. Returns: id, corporate_name, email, phone, status_id, source_id, country_id, state_id, date. Required: id.
- **create_a_wiwink_customer** — Create a new wiwink customer. Returns: id, corporate_name, email, phone, status_id, source_id, date. Required: corporate_name.
- **update_a_wiwink_customer_by_id** — Update an existing wiwink customer by id. Returns: id, corporate_name, email, phone, status_id, source_id, date. Required: id.
- **delete_a_wiwink_customer_by_id** — Delete a wiwink customer by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_customer_statuses** — List customer statuses in wiwink. Returns: id, name, color, owned. Optionally filter results by name.
- **get_single_wiwink_customer_status_by_id** — Get a single customer status by id in wiwink. Returns: id, name, color, owned. Required: id.
- **create_a_wiwink_customer_status** — Create a new customer status in wiwink. Returns: id, name, color, owned.
- **update_a_wiwink_customer_status_by_id** — Update an existing customer status by id in wiwink. Returns: id, name, color, owned. Required: id.
- **delete_a_wiwink_customer_status_by_id** — Delete a customer status by id in wiwink. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_products** — List wiwink products, optionally filtered by name or retail price range. Returns: id, name, tax_percent, price_retail, price_retail_final, price_reduced, price_reduced_final, price_cost, price_cost_final, excerpt, description, reference, code_ean13, code_upc, and code_isbn.
- **get_single_wiwink_product_by_id** — Get a single wiwink product by id. Returns the full product record including id, name, tax_percent, price_retail, price_retail_final, price_reduced, price_reduced_final, price_cost, price_cost_final, excerpt, description, reference, code_ean13, code_upc, and code_isbn. Required: id.
- **create_a_wiwink_product** — Create a new product in wiwink. Returns the created product including id, name, tax_percent, price_retail, price_retail_final, price_reduced, price_reduced_final, price_cost, price_cost_final, excerpt, description, reference, and product codes. Required: name.
- **update_a_wiwink_product_by_id** — Update an existing wiwink product by id. Returns the updated product including id, name, tax_percent, price_retail, price_retail_final, price_reduced, price_reduced_final, price_cost, price_cost_final, excerpt, description, reference, and product codes. Required: id.
- **delete_a_wiwink_product_by_id** — Delete a wiwink product by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_proposals** — List proposals in wiwink. Returns: id, customer_id, status_id, full_number, date, sub_amount, discount_amount, taxable_amount, tax_amount, full_amount, prefix, suffix, number, comments. Optionally filter by customer_id[], status_id[], or date range (since/until); sort by number or date.
- **get_single_wiwink_proposal_by_id** — Get a single wiwink proposal by id. Returns: id, customer_id, status_id, full_number, date, sub_amount, discount_amount, taxable_amount, tax_amount, full_amount, prefix, suffix, number, comments. Required: id.
- **create_a_wiwink_proposal** — Create a new proposal in wiwink. Returns: id, customer_id, status_id, full_number, date, sub_amount, discount_amount, taxable_amount, tax_amount, full_amount, prefix, suffix, number, comments. Required: customer_id.
- **update_a_wiwink_proposal_by_id** — Update an existing wiwink proposal by id. Returns: id, customer_id, status_id, full_number, date, sub_amount, discount_amount, taxable_amount, tax_amount, full_amount, prefix, suffix, number, comments. Required: id.
- **delete_a_wiwink_proposal_by_id** — Delete a wiwink proposal by id. Returns an empty 204 response on success. Required: id.
- **create_a_wiwink_proposal_product** — Create a proposal product in wiwink. Returns: id, proposal_id, name, quantity, price, sub_amount, discount_amount, taxable_amount, tax_percent, tax_amount, full_amount. Required: proposal_id, name, price.
- **update_a_wiwink_proposal_product_by_id** — Update a proposal product in wiwink by id. Returns: id, proposal_id, name, quantity, price, sub_amount, discount_amount, taxable_amount, tax_percent, tax_amount, full_amount. Required: id.
- **delete_a_wiwink_proposal_product_by_id** — Delete a proposal product in wiwink by id. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_proposal_statuses** — List proposal statuses in wiwink. Returns: id, name, color, owned per status record. Optionally filter results by name.
- **get_single_wiwink_proposal_status_by_id** — Get a single proposal status by id in wiwink. Returns: id, name, color, owned. Required: id.
- **update_a_wiwink_proposal_status_by_id** — Update a proposal status by id in wiwink. Returns the updated status including id, name, color, and owned. Required: id.
- **delete_a_wiwink_proposal_status_by_id** — Delete a proposal status by id in wiwink. Returns an empty 204 response on success. Required: id.
- **create_a_wiwink_proposal_status** — Create a new proposal status in wiwink. Returns the created status including id, name, color, and owned. Required: name.
- **list_all_wiwink_installers** — List installers in wiwink. Returns: id, name, email, phone, corporate_name, country_id, state_id, address, zipcode, city. Supports optional filters by name, email, phone, city, zipcode, address, corporate_name, country_id, and state_id.
- **get_single_wiwink_installer_by_id** — Get a single wiwink installer by id. Returns: id, name, email, phone, corporate_name, country_id, state_id, address, zipcode, city. Required: id.
- **create_a_wiwink_installer** — Create a new installer in wiwink. Returns: id, name, email, phone, corporate_name, country_id, state_id, address, zipcode, city. Required: name.
- **update_a_wiwink_installer_by_id** — Update an existing wiwink installer by id. Returns: id, name, email, phone, corporate_name, country_id, state_id, address, zipcode, city. Required: id.
- **delete_a_wiwink_installer_by_id** — Delete a wiwink installer by id. Returns an empty 204 response on success. Required: id.
- **get_single_wiwink_account_by_id** — Get the remaining works available on the wiwink account. Returns: works (the remaining works count as an integer).
- **list_all_wiwink_works** — List works in wiwink. Returns: id, customer_id, status_id, number, full_number, from, to, sub_amount, tax_amount, full_amount, and comments per record. Supports filtering by customer, status, and type ids, date range (since/until), sideloading relations (with[]), and sorting by number or from.
- **get_single_wiwink_work_by_id** — Get a single wiwink work by id. Returns: id, customer_id, status_id, number, full_number, from, to, sub_amount, tax_amount, full_amount, and comments. Optionally sideload relations via with[]. Required: id.
- **create_a_wiwink_work** — Create a new work in wiwink. Returns the created work including id, customer_id, status_id, number, full_number, from, to, sub_amount, tax_amount, full_amount, and comments. Required: customer_id.
- **update_a_wiwink_work_by_id** — Update an existing wiwink work by id. Returns the updated work including id, customer_id, status_id, number, full_number, from, to, sub_amount, tax_amount, full_amount, and comments. Required: id.
- **delete_a_wiwink_work_by_id** — Delete a wiwink work by id. Returns an empty 204 response on success. Required: id.
- **create_a_wiwink_work_installer** — Sync installers for a wiwink work, replacing the current installer assignment. Returns the updated work object including id, customer_id, status_id, number, full_number, from, to, sub_amount, tax_amount, full_amount, and the synced installers array. Required: work_id.
- **create_a_wiwink_work_product** — Create a work product in Wiwink linked to an existing work. Returns: id, work_id, name, price, sub_amount, taxable_amount, tax_percent, tax_amount, full_amount. Required: work_id, name, price.
- **update_a_wiwink_work_product_by_id** — Update an existing work product in Wiwink by id. Returns the updated product including id, work_id, name, price, sub_amount, taxable_amount, tax_percent, tax_amount, and full_amount. Required: id.
- **delete_a_wiwink_work_product_by_id** — Delete a work product in Wiwink by id. Returns an empty 204 response on success. Required: id.
- **get_single_wiwink_works_status_by_id** — Get a single work status by id in wiwink. Returns: id, name, color, owned. Required: id.
- **list_all_wiwink_works_types** — List work types in wiwink, optionally filtered by name. Returns: id, name.
- **update_a_wiwink_works_type_by_id** — Update a work type in wiwink by id. Returns: id, name. Required: id.
- **get_single_wiwink_type_by_id** — Get a wiwink work type by id. Returns: id, name. Required: id.
- **create_a_wiwink_type** — Create a new work type in wiwink. Returns: id, name. Required: name.
- **delete_a_wiwink_type_by_id** — Delete a wiwink work type by id. Returns an empty 204 response on success. Required: id.
- **get_single_wiwink_signature_by_id** — Get a single wiwink signature by id. Returns: id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, and document. Required: id.
- **list_all_wiwink_signatures** — List wiwink signatures with optional filters by type, send method, sender address, or date range. Returns: id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, and document per record.
- **create_a_wiwink_signature** — Create a new wiwink signature. Returns: id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, and document. Required: type, send_by.
- **delete_a_wiwink_signature_by_id** — Cancel a wiwink signature by id. Returns the cancelled signature including id, uuid, type, send_by, sent_at, cancelled_at, and document. Required: id. Only signatures that have been sent and not yet completed can be cancelled.
- **create_a_wiwink_signer** — Create a signer for a wiwink signature. Returns: id, signature_id, uuid, send_to, verify_to, and configuration. Required: signature_id, send_to.
- **create_a_wiwink_certification** — Upload a PDF document for certification in wiwink. Sends the raw binary PDF content to the certifications endpoint. Returns an empty 204 response on success. Required: RAW_BODY.
- **list_all_wiwink_work_statuses** — List all work statuses in Wiwink. Returns: id, name.
- **get_single_wiwink_work_status_by_id** — Get a single work status by id in Wiwink. Returns: id, name. Required: id.
- **create_a_wiwink_work_status** — Create a new work status in Wiwink. Returns: id, name. Required: name.
- **update_a_wiwink_work_status_by_id** — Update an existing work status by id in Wiwink. Returns: id, name. Required: id.
- **delete_a_wiwink_work_status_by_id** — Delete a work status by id in Wiwink. Returns an empty 204 response on success. Required: id.
- **list_all_wiwink_work_types** — List work types in wiwink. Returns: id, name. Optionally filter by name.
- **get_single_wiwink_work_type_by_id** — Get a single wiwink work type by id. Returns: id, name. Required: id.
- **create_a_wiwink_work_type** — Create a new work type in wiwink. Returns: id, name. Required: name.
- **update_a_wiwink_work_type_by_id** — Update a wiwink work type by id. Returns: id, name. Required: id.
- **delete_a_wiwink_work_type_by_id** — Delete a wiwink work type by id. Returns an empty 204 response on success. Required: id.
- **create_a_wiwink_signature_document** — Upload a raw document file to an existing wiwink signature. Returns the updated signature object including id, uuid, type, send_by, send_from, and document metadata (size, crc32, md5, sha1). Required: signature_id.
- **create_a_wiwink_signature_send** — Send a wiwink signature request by its ID. Returns the sent signature object including id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, and document checksum data (size, crc32, md5, sha1). Required: signature_id. Only signatures that already have a document and signers attached can be sent.
- **create_a_wiwink_signature_cancellation** — Cancel a wiwink signature by its ID. Returns the updated signature object including id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, and document details. Required: signature_id.
- **get_single_wiwink_signature_account_by_id** — Get the wiwink signature account settings. Returns: id, uuid, type, send_by, send_from, sent_at, completed_at, cancelled_at, document.
- **get_single_wiwink_work_account_by_id** — Get the work account record in wiwink. Returns the account data object; the full set of account-level fields is not enumerated in the available source documentation. Returns: id, attributes.
- **get_single_wiwink_certification_account_by_id** — Get the wiwink account certification summary. Returns: certifications (the total number of certifications available on the account).

## How it works

1. **Link your customer's Wiwink account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Wiwink.** The Proxy API is a 1-to-1 mapping of the Wiwink API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync designs and estimates into Wiwink proposals** — Quoting, CAD, or design SaaS (solar, roofing, HVAC) can push generated material lists into Wiwink as proposals with line-item pricing, letting end users send for e-signature and invoice without leaving their workflow.
- **Pipe marketing leads directly into Wiwink CRM** — Lead gen platforms, ad tools, and form builders can offer a native Wiwink destination so home services and SMB customers see new contacts appear in their CRM tagged with the correct source and form responses.
- **Power field service dispatch and route optimization** — Mobile workforce, scheduling, or routing apps can read scheduled works and installer assignments from Wiwink, optimize them externally, and write back updated work statuses when jobs complete.
- **Automate e-signature flows for contracts and proposals** — Document and contract SaaS can leverage Wiwink's native signature engine — uploading PDFs, assigning signers, and triggering sends — so customers don't need a separate DocuSign-style subscription.
- **Trigger invoicing the moment a technician finishes a job** — Time-tracking and payroll apps for field technicians can update Wiwink work records to completed status when crews clock out, so back-office staff can immediately convert finished jobs into billable invoices.

## What you can build

- **One-click proposal creation with line items** — Generate a Wiwink proposal from your app and push proposal_products with taxable amounts, tax percentages, and discounts intact for EU-compliant quoting.
- **Contact and customer ingestion with source attribution** — Create or update Wiwink contacts from inbound leads, ensuring the right source_id exists first and optionally attaching a form to capture qualification answers.
- **Field works scheduler and dispatcher** — List, create, and update Wiwink works, assign installers via work_installer, and manage line items through work_products from inside your scheduling UI.
- **Embedded e-signature sending** — Upload signature documents, add signers, and fire the signature send call from your product so users complete contract workflows without context switching.
- **Pipeline and status automation** — Manage contact_statuses, customer_statuses, proposal_statuses, and work_statuses programmatically to keep Wiwink stages in sync with your product's state machine.
- **Signed document archiving** — Listen for completed signatures and pull certifications to push signed PDFs into cloud storage or compliance archives for your customers.

## FAQs

### What authentication does the Wiwink integration use?

Truto handles Wiwink's authentication on your behalf — your end users connect their Wiwink account once through Truto's connect flow, and Truto manages credentials, refresh, and token storage so you only call Truto's API.

### Can I create both contacts (leads) and customers separately?

Yes. Wiwink cleanly separates top-of-funnel contacts from won customers, and both have dedicated create, list, update, and delete operations. This lets you mirror lead-to-customer handoffs without polluting accounting records.

### Does the integration support Wiwink's native e-signature workflow?

Yes. You can create signatures, upload signature documents (PDFs), add signers, trigger a signature send, and cancel pending signature requests — covering the full lifecycle without a third-party e-signature provider.

### Can I manage field service jobs and technician assignments through the API?

Yes. The integration exposes works (jobs), work products (line items with tax and discount logic), work installers (technician assignments), and work statuses, so you can build full dispatch and field service experiences.

### How do I handle Wiwink's pipeline stages and statuses?

Wiwink models statuses as first-class entities. The integration supports contact statuses, customer statuses, proposal statuses, and work statuses — all with full CRUD — so you can read existing stages or create new ones to match your customer's pipeline.

### Does the integration support proposals with detailed financial line items?

Yes. You can create and update proposals and manage proposal_products with the full financial structure Wiwink requires for EU compliance, including taxable amount, tax percent, discount amount, and final retail price per line.

### Are reference data like countries and states accessible?

Yes. The integration exposes list and get operations for Wiwink countries and states, which is useful for populating address fields and validating localization on contacts, customers, and works.
