Pro Doen — Documentatie · Gebruik AI-tools

Projectaanbod importeren met MCP

Met de projectaanbod-tools kan een AI een bestaand aanbod uit bijvoorbeeld een document of spreadsheet omzetten naar een conceptaanbod in Pro Doen. De import verstuurt niets naar de klant. Je controleert en bewerkt het resultaat eerst zelf.

Beschikbare tools

prodoen_company_projects_list

Zoekt binnen de projecten van het ingelogde bedrijf. De tool geeft onder andere projectId, projectnaam, klantnaam, plaats en een link terug. Dit is een losse zoektool; voor de import van referentieaanbiedingen hoeft de AI geen bestaand project te kiezen.

prodoen_company_project_offer_import

Maakt in één handeling aan:

  • een gearchiveerd referentieproject met de naam Example <korte titel>, of hergebruik van het bestaande project met precies die naam;
  • één nieuw conceptaanbod onder dat referentieproject;
  • één of meer projecttaken onder het aanbod;
  • nul of meer specificatieregels onder iedere taak;
  • eerder geüploade afbeeldingen op de offerte of een taak.

Alle prijzen worden exclusief btw aangeleverd. Pro Doen berekent de taak- en aanbodtotalen. Als een ID, bedrag, eenheid of afbeelding ongeldig is, wordt de volledige import teruggedraaid. Er blijft dan geen half aanbod achter.

prodoen_company_project_offers_list

Geeft een compacte lijst van projectaanbiedingen terug met onder andere projectOfferId, projectnaam, archiefstatus, bedragen, aantallen taken en specificatieregels, vakgebieden, specialisaties en projectOfferHref.

Je kunt filteren met:

  • exampleProjectTitle — de korte titel zonder de prefix Example ;
  • projectId — het exacte project-ID;
  • query — zoeken in aanbodtitel, omschrijving of projectnaam;
  • limit — maximaal 1–100 resultaten (standaard 50).

MCP-calls

Projectaanbod importeren

Zoek vóór de import naar passende prijslijstregels:

{
  "name": "prodoen_company_pricelist_items_list",
  "arguments": {
    "query": "sanitair"
  }
}

Controleer een mogelijke match vervolgens met prodoen_company_pricelist_items_get. Gebruik het teruggegeven id als companyPriceItemId op een taak of specificatieregel.

Call:

{
  "name": "prodoen_company_project_offer_import",
  "arguments": {
    "exampleProjectTitle": "Badkamers 2026",
    "title": "Complete badkamerrenovatie",
    "description": "Referentieaanbod voor een complete renovatie.",
    "tasks": [
      {
        "title": "Bestaande badkamer verwijderen",
        "trade": "DEMOLITION",
        "tradeSpecialization": "SELECTIVE_DEMOLITION",
        "items": [
          {
            "unitType": "h",
            "unitDescription": "Sloopwerkzaamheden",
            "unitCost": 65,
            "unitQuantity": 8,
            "vatPercentage": 21
          }
        ]
      },
      {
        "title": "Sanitair installeren",
        "trade": "PLUMBING",
        "tradeSpecialization": "BATHROOMS",
        "companyPriceItemId": "price-item-id"
      }
    ]
  }
}

Bij companyPriceItemId gebruikt Pro Doen de eenheid, omschrijving, prijs, standaardhoeveelheid en btw uit de prijslijst. Zijn die waarden in het bronaanbod gelijk, laat ze dan weg. Wijkt bijvoorbeeld alleen de prijs af, stuur dan uitsluitend de overschrijving mee:

{
  "companyPriceItemId": "price-item-id",
  "unitCost": 1200
}

De expliciete unitCost van 1200 wordt dan gebruikt in plaats van de prijslijstprijs. De prijslijstregel zelf wordt niet aangepast.

Verkort resultaat:

{
  "ok": true,
  "projectId": "project-id",
  "projectName": "Example Badkamers 2026",
  "projectCreated": true,
  "projectArchived": true,
  "projectOfferId": "offer-id",
  "taskCount": 2,
  "itemCount": 1,
  "draft": true,
  "sent": false,
  "projectOfferHref": "/klus/project-id?highlight-offer=offer-id"
}

Geïmporteerde projectaanbiedingen opvragen

Call:

{
  "name": "prodoen_company_project_offers_list",
  "arguments": {
    "exampleProjectTitle": "Badkamers 2026",
    "limit": 50
  }
}

Verkort resultaat:

{
  "count": 1,
  "items": [
    {
      "projectOfferId": "offer-id",
      "projectId": "project-id",
      "projectName": "Example Badkamers 2026",
      "projectArchived": true,
      "title": "Complete badkamerrenovatie",
      "taskCount": 2,
      "itemCount": 1,
      "trades": ["DEMOLITION", "PLUMBING"],
      "tradeSpecializations": ["SELECTIVE_DEMOLITION", "BATHROOMS"],
      "projectOfferHref": "/klus/project-id?highlight-offer=offer-id"
    }
  ]
}

Aanbevolen werkwijze

  1. Laat de AI het bronaanbod uitlezen en eerst een overzicht van aanbod, taken, regels, aantallen, prijzen en btw tonen.
  2. Zoek met prodoen_company_pricelist_items_list naar passende prijslijstregels en controleer matches met prodoen_company_pricelist_items_get.
  3. Neem een gevonden companyPriceItemId over. Laat dezelfde prijs weg; geef unitCost alleen mee wanneer de prijs uit het bronaanbod afwijkt.
  4. Kies een korte, herkenbare exampleProjectTitle, bijvoorbeeld Badkamers 2026. Pro Doen maakt of hergebruikt dan het gearchiveerde project Example Badkamers 2026.
  5. Geef iedere taak een geldig trade (vakgebied) en een daarbij horende tradeSpecialization. Specificatieregels erven deze waarden van hun taak, tenzij beide waarden bewust worden overschreven.
  6. Upload afbeeldingen met prodoen_company_media_upload_prepare en bevestig ze met prodoen_company_media_upload_confirm.
  7. Roep prodoen_company_project_offer_import één keer aan met de volledige structuur.
  8. Controleer de import met prodoen_company_project_offers_list en open daarna de teruggegeven projectOfferHref.

Voorbeeldinstructie aan je AI-client:

Importeer dit aanbod als referentie in Pro Doen. Zoek eerst passende prijslijstregels op en controleer iedere match via het ID. Hergebruik een match met companyPriceItemId; laat de prijs weg wanneer die gelijk is en geef unitCost alleen mee als de voorbeeldaanbieding een afwijkende prijs gebruikt. Gebruik een korte herkenbare titel voor het gearchiveerde Example-project. Toon mij eerst de herkende taken, specificatieregels, vakgebieden, specialisaties, aantallen, prijzen exclusief btw en btw-percentages. Upload daarna de bijbehorende afbeeldingen en maak na mijn akkoord het volledige conceptaanbod aan. Verstuur het aanbod niet.

Afbeeldingen

Een bevestigde upload kan tijdens één import aan het projectaanbod of aan precies één taak worden gekoppeld. Een afbeelding die al aan een project, taak of aanbod hangt wordt niet opnieuw gekoppeld. Zo kan een AI niet per ongeluk bestaande media verplaatsen.

Beveiliging

De tools gebruiken de ingelogde browsersessie. Het Example-project hoort bij hetzelfde bedrijf, staat altijd op archived: true en verschijnt daardoor niet op het dashboard. Prijslijstregels moeten bij hetzelfde bedrijf horen. Afbeeldingen moeten door de ingelogde gebruiker zijn geüpload en bevestigd. De import maakt uitsluitend een conceptaanbod aan; verzenden is geen onderdeel van deze tool.