Local services & SaaS
HERO Software
Projects, quotes, invoices, appointments and contacts in HERO.
15 endpoints
Plancraft's API covers only contacts and projects and is not switched on by default (checked 14 Nov 2026). Cotlet runs a hosted Plancraft MCP server with 14 tools that ChatGPT and Claude use in your own Plancraft account. Sent documents, payments and booked hours wait for your OK.
14 tools Read and write
Plancraft has an API and webhooks for contacts and projects. Its Help Center says the feature is in a test phase, is not available by default and needs some technical knowledge. You create a read or a write API key inside Plancraft. Plancraft has no official MCP server, and no official ChatGPT or Claude connector was found.
| What you need | Plancraft API | By hand | Cotlet |
|---|---|---|---|
| Ask ChatGPT or Claude to do the work | No official MCP server | Copy and paste | Hosted MCP server |
| Contacts and projects | Once access is switched on | One screen at a time | Read and create |
| Offers, invoices and reminders | No endpoints | One document at a time | Drafts, sent after your OK |
| Payments and working hours | No endpoints | By hand in each list | Recorded after your OK |
Checked 14 Nov 2026. Sources: Help: API and webhooks for contacts and projects · Help: Create an invoice in a project · Help: Record working hours and absences · Plancraft features · Plancraft prices · bau.bi on Porta, 20 Mar 2026
Once, in a browser we host for you.
One address in its settings.
It drafts the offer in the project; you send it.
Your agent works in your own signed-in Cloud Browser. Documents to customers, recorded payments and booked hours wait for your OK. Who can see your session
Sign in to Plancraft in a Cloud Browser. Open plancraft.com/de-de/login in your Cotlet Cloud Browser and log in with your own office user.
Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.
Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.
Plancraft sits on the shared address https://cotlet.dev/mcp/v1 with every other app you turn on, so one connector does it. Turned on Plancraft after connecting? Refresh the connector and its 14 tools appear.
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: plancraft_read Built from the Plancraft Help Center, in the order a job runs: customer, project, offer, invoice, payment, reminder. Lists read at once; drafts land in the project for you to check.
Find or add the customer, open the project with its site address, and read a project's overview.
Lists the contacts in plancraft as the contact picker shows them, with the details plancraft keeps per contact: salutation, full name, the company it belongs to and addresses. query searches by name. Pass contact_id to create_project to attach a customer.
MCP callplancraft_read → list_contacts
REST endpointGET https://cotlet.dev/api/v1/plancraft/contacts
| Name | Type | Description |
|---|---|---|
| query string | string | Part of the contact or company name. |
{
"contacts": [
{
"contact_id": "con_77b2e4",
"name": "Muster Hausverwaltung GmbH",
"address": "Beispielstrasse 12, 20095 Hamburg"
},
{
"contact_id": "con_5a90c1",
"salutation": "Frau",
"name": "Anna Beispiel",
"company": null,
"address": "Probeweg 3, 22765 Hamburg"
}
]
} Creates one contact in plancraft, as the Kontakt erstellen button does. It reaches no one and you edit or correct it in plancraft, so it needs no confirmation. Put salutation, full name, the company it belongs to and the address in the contact, because documents take their recipient from it.
MCP callplancraft_write → create_contact
REST endpointPOST https://cotlet.dev/api/v1/plancraft/contacts
| Name | Type | Description |
|---|---|---|
| name string required | string | Full name of the person, or the company name. |
| salutation string | string | Salutation as plancraft offers it, e.g. Frau or Herr. |
| company string | string | Company the person belongs to. |
| address string | string | Street, postcode and city on one line. |
{
"name": "Jane Doe"
} {
"contact_id": "con_5a90c1",
"salutation": "Frau",
"name": "Anna Beispiel",
"address": "Probeweg 3, 22765 Hamburg"
} Lists the projects from the Projekte menu, with the project number, name, customer and status. status takes a name from your own list under Projekte > Status verwalten, because plancraft lets every business define its statuses. A project without one shows "Kein Status". Pass project_id to get_project, list_documents or create_offer.
MCP callplancraft_read → list_projects
REST endpointGET https://cotlet.dev/api/v1/plancraft/projects
| Name | Type | Description |
|---|---|---|
| status string | string | A status name as it appears in your Projekte filter, e.g. "In Arbeit". |
| query string | string | Part of the project name, number or customer. |
{
"projects": [
{
"project_id": "prj_8f3a21",
"number": "P-00045",
"name": "Fassade Muster Hausverwaltung",
"customer": "Muster Hausverwaltung GmbH",
"status": "In Arbeit"
},
{
"project_id": "prj_41c9d0",
"number": "P-00046",
"name": "Bad Beispiel",
"customer": "Anna Beispiel",
"status": "Kein Status"
}
]
} Returns what the project overview shows: project number, description, the customer from Kontakte, the site address (Baustellenadresse), the hours booked and the employees assigned to the project. Use it before create_offer to check the recipient the documents will take by default, which is the project's customer.
MCP callplancraft_read → get_project
REST endpointGET https://cotlet.dev/api/v1/plancraft/projects/{project_id}
| Name | Type | Description |
|---|---|---|
| project_id string required | string | Project ID from list_projects. |
{
"project_id": "project_8c41d2"
} {
"project_id": "prj_8f3a21",
"number": "P-00045",
"name": "Fassade Muster Hausverwaltung",
"status": "In Arbeit",
"description": "Fassade Nordseite streichen, Gerüst steht bis 20.11.",
"customer": {
"contact_id": "con_77b2e4",
"name": "Muster Hausverwaltung GmbH"
},
"site_address": "Beispielstrasse 12, 20095 Hamburg",
"employees": [
"Lena Muster",
"Jonas Beispiel"
],
"hours_booked": 16
} Creates a project, as Neues Projekt does. The name is required. If you give no project_number, plancraft assigns the next one from its number sequence. You are assigned to the project; add employees to assign more. It reaches no one until someone is assigned, so it needs no confirmation.
MCP callplancraft_write → create_project
REST endpointPOST https://cotlet.dev/api/v1/plancraft/projects
| Name | Type | Description |
|---|---|---|
| name string required | string | Project name. Plancraft recommends the wording you use as the subject of your offers. |
| contact_id string | string | Customer, from list_contacts or create_contact. |
| project_number string | string | Your own number. Default: next number from plancraft. |
| description string | string | Notes on the job. |
| site_address string | string | Site address (Baustellenadresse), one line. |
| employees array | array | Employee names to assign besides you. |
{
"name": "Jane Doe"
} {
"project_id": "prj_41c9d0",
"number": "P-00046",
"name": "Bad Beispiel",
"customer": "Anna Beispiel",
"employees": [
"Lena Muster"
]
} A blank offer with positions, an invoice made from an offer or order confirmation, and every document in the project folder.
Lists the documents in a project folder with type, document number, date and total. type is one of offer, order_confirmation, delivery_note, invoice, reminder. Pass document_id to create_invoice_from_document or send_document. Documents still in draft have no document number yet.
MCP callplancraft_read → list_documents
REST endpointGET https://cotlet.dev/api/v1/plancraft/projects/{project_id}/documents
| Name | Type | Description |
|---|---|---|
| project_id string required | string | Project ID from list_projects. |
| type string | string | offer, order_confirmation, delivery_note, invoice or reminder. Default: all types. |
{
"project_id": "project_8c41d2"
} {
"documents": [
{
"document_id": "doc_2e71a8",
"type": "offer",
"number": "A-2026-0112",
"date": "2026-10-02",
"net_total": 4250,
"currency": "EUR"
},
{
"document_id": "doc_93b0d4",
"type": "order_confirmation",
"number": "AB-2026-0090",
"date": "2026-10-09",
"net_total": 4250,
"currency": "EUR"
}
]
} Creates an offer in the project as a blank document (Blanko) with the positions you give, each with a title, optional long text, quantity, unit and unit price. It returns the totals plancraft shows. The offer is only created, never sent; open it in plancraft to adjust or finish it, and use send_document to send it. It reaches no one, so it needs no confirmation.
MCP callplancraft_write → create_offer
REST endpointPOST https://cotlet.dev/api/v1/plancraft/projects/{project_id}/offers
| Name | Type | Description |
|---|---|---|
| project_id string required | string | Project ID from list_projects. |
| subject string | string | Subject line of the offer. |
| positions array required | array | Objects with title, quantity, unit, unit_price and optional long_text. |
{
"project_id": "prj_41c9d0",
"subject": "Malerarbeiten Bad",
"positions": [
{
"title": "Untergrund spachteln",
"quantity": 85,
"unit": "m2",
"unit_price": 6.4
},
{
"title": "Waende streichen",
"quantity": 85,
"unit": "m2",
"unit_price": 7.2
},
{
"title": "Decke streichen",
"quantity": 24,
"unit": "m2",
"unit_price": 8.5
}
]
} {
"document_id": "doc_2e71a8",
"type": "offer",
"project": "P-00046",
"subject": "Malerarbeiten Bad",
"positions": [
{
"title": "Untergrund spachteln",
"quantity": 85,
"unit": "m2",
"unit_price": 6.4,
"total": 544
},
{
"title": "Waende streichen",
"quantity": 85,
"unit": "m2",
"unit_price": 7.2,
"total": 612
},
{
"title": "Decke streichen",
"quantity": 24,
"unit": "m2",
"unit_price": 8.5,
"total": 204
}
],
"net_total": 1360,
"vat_total": 258.4,
"gross_total": 1618.4,
"currency": "EUR"
} Does what the Plus button next to a document does when you pick "Rechnung": it creates an invoice in the project from that document, with its positions. The invoice stays a draft (Entwurf) with no document number until you finish it in plancraft, where you check the payment due date and tax. It reaches no one, so it needs no confirmation.
MCP callplancraft_write → create_invoice_from_document
REST endpointPOST https://cotlet.dev/api/v1/plancraft/projects/{project_id}/invoice-from-documents
| Name | Type | Description |
|---|---|---|
| project_id string required | string | Project ID from list_projects. |
| document_id string required | string | The offer, order confirmation or delivery note, from list_documents. |
{
"project_id": "project_8c41d2",
"document_id": "document_8c41d2"
} {
"document_id": "doc_b81c05",
"type": "invoice",
"status": "draft",
"project": "P-00046",
"from_document": "doc_2e71a8",
"net_total": 1360,
"vat_total": 258.4,
"gross_total": 1618.4,
"currency": "EUR"
} Sends one document from plancraft to the recipient on it, which by default is the project's customer. It works for offers, order confirmations, invoices and reminders. A draft invoice has no document number or status yet, so finish it in plancraft first. By default you confirm each call; you can switch that off for this tool.
MCP callplancraft_write → send_document
REST endpointPOST https://cotlet.dev/api/v1/plancraft/projects/{project_id}/documents/{document_id}
| Name | Type | Description |
|---|---|---|
| project_id string required | string | Project ID from list_projects. |
| document_id string required | string | Document ID from list_documents. |
{
"project_id": "project_8c41d2",
"document_id": "document_8c41d2"
} {
"document_id": "doc_d6a2f0",
"status": "sent",
"recipient": "verwaltung@muster-hausverwaltung.example"
} The "Ausgangsrechnungen" list by status, payments with Skonto or retention, and the reminder, then the 1st and 2nd "Mahnung".
Lists the invoices of the Ausgangsrechnungen menu. Only invoices whose invoice date falls in the period are listed; the default is the last 90 days, as in plancraft. status is open, overdue, paid, draft, reminded (Angemahnt), cancelled or none. plancraft sets open, overdue and paid by itself once an invoice is finished, and overdue only works when the invoice shows its payment due date. Invoice corrections appear only when you ask for all statuses.
MCP callplancraft_read → list_invoices
REST endpointGET https://cotlet.dev/api/v1/plancraft/invoices
| Name | Type | Description |
|---|---|---|
| status string | string | open, overdue, paid, draft, reminded, cancelled or none. Default: all. |
| from string | string | Start of the period, YYYY-MM-DD, on the invoice date. Default: 90 days ago. |
| to string | string | End of the period, YYYY-MM-DD. Default: today. |
{
"invoices": [
{
"invoice_id": "inv_c40e19",
"number": "R-2026-0187",
"project": "P-00045",
"customer": "Muster Hausverwaltung GmbH",
"status": "overdue",
"invoice_date": "2026-10-14",
"due_date": "2026-10-28",
"gross_total": 5057.5,
"open_amount": 3057.5,
"currency": "EUR"
},
{
"invoice_id": "inv_7d12f3",
"number": "R-2026-0191",
"project": "P-00046",
"customer": "Anna Beispiel",
"status": "open",
"invoice_date": "2026-11-05",
"due_date": "2026-11-19",
"gross_total": 1190,
"open_amount": 1190,
"currency": "EUR"
}
]
} Adds a payment with its date to an invoice, as the payment entry on the invoice does. plancraft lowers the open amount, and an invoice with 0.00 open becomes paid. You can record several payments on one invoice. Set cash_discount or retention first when the customer took a Skonto or a Sicherheitseinbehalt, so plancraft takes the figures from the invoice. It changes your books. By default you confirm each call; you can switch that off for this tool.
MCP callplancraft_write → record_payment
REST endpointPOST https://cotlet.dev/api/v1/plancraft/invoices/{invoice_id}/payments
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Invoice ID from list_invoices. |
| amount number | number | Amount paid. Default: the whole open amount. |
| date string | string | Payment date, YYYY-MM-DD. Default: today. |
| cash_discount boolean | boolean | The customer deducted a Skonto. |
| retention boolean | boolean | The customer withheld a Sicherheitseinbehalt. |
{
"invoice_id": "invoice_8c41d2"
} {
"invoice_id": "inv_c40e19",
"number": "R-2026-0187",
"payment": {
"amount": 2000,
"date": "2026-11-12"
},
"open_amount": 1057.5,
"status": "overdue",
"currency": "EUR"
} Creates the reminder document in the invoice's project, from the overdue invoice. level is reminder (Zahlungserinnerung), first_dunning (1. Mahnung) or second_dunning (2. Mahnung); plancraft offers the dunning letters only after a reminder exists. The document is created, not sent: it appears in the project and you can edit its text in plancraft. Send it with send_document.
MCP callplancraft_write → create_payment_reminder
REST endpointPOST https://cotlet.dev/api/v1/plancraft/invoices/{invoice_id}/payment-reminders
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Invoice ID from list_invoices. |
| level string required | string | reminder, first_dunning or second_dunning. |
{
"invoice_id": "invoice_8c41d2",
"level": "level"
} {
"document_id": "doc_d6a2f0",
"type": "reminder",
"level": "reminder",
"invoice": "R-2026-0187",
"project": "P-00045",
"open_amount": 3057.5,
"currency": "EUR"
} Work and travel time for one or several employees on a project, and the "Zeiten" list by period, person or project.
Lists the entries of the Zeiten menu: employee, date, start, end, break, project and type. type is work (Arbeitszeit), travel (Fahrtzeit) or an absence such as vacation or sick. Work and travel entries belong to a project; workshop, warehouse or office work has project "none".
MCP callplancraft_read → list_time_entries
REST endpointGET https://cotlet.dev/api/v1/plancraft/time-entries
| Name | Type | Description |
|---|---|---|
| from string | string | Start date, YYYY-MM-DD. |
| to string | string | End date, YYYY-MM-DD. |
| employee string | string | Employee name as plancraft shows it. |
| project_id string | string | Only entries booked to this project. |
{
"entries": [
{
"entry_id": "tim_19a0c7",
"employee": "Lena Muster",
"date": "2026-11-13",
"start": "07:30",
"end": "16:00",
"break_minutes": 30,
"hours": 8,
"type": "work",
"project": "P-00045"
},
{
"entry_id": "tim_19a0c8",
"employee": "Jonas Beispiel",
"date": "2026-11-13",
"start": "07:30",
"end": "16:00",
"break_minutes": 30,
"hours": 8,
"type": "work",
"project": "P-00045"
}
]
} Creates a time entry as Neue Zeit does, for one or more employees, with date, start, end, break and project. Work and travel entries need a project; for workshop, warehouse or office work pass project_id "none". Entries land in your team's time lists and exports. By default you confirm each call; you can switch that off for this tool.
MCP callplancraft_write → create_time_entry
REST endpointPOST https://cotlet.dev/api/v1/plancraft/projects/{project_id}/time-entries
| Name | Type | Description |
|---|---|---|
| employees array required | array | Employee names as plancraft shows them. |
| date string | string | YYYY-MM-DD. Default: today. |
| start string required | string | Start time, HH:MM. |
| end string required | string | End time, HH:MM. |
| break_minutes integer | integer | Break in minutes. Default: 0. |
| project_id string required | string | Project ID from list_projects, or "none". |
| type string | string | work or travel. Default: work. |
| description string | string | Short note on what was done. |
{
"employees": "employees",
"start": "start",
"end": "end",
"project_id": "project_8c41d2"
} {
"entries": [
{
"entry_id": "tim_19a0c7",
"employee": "Lena Muster",
"date": "2026-11-13",
"start": "07:30",
"end": "16:00",
"break_minutes": 30,
"hours": 8,
"type": "work",
"project": "P-00045"
},
{
"entry_id": "tim_19a0c8",
"employee": "Jonas Beispiel",
"date": "2026-11-13",
"start": "07:30",
"end": "16:00",
"break_minutes": 30,
"hours": 8,
"type": "work",
"project": "P-00045"
}
]
} Your signed-in Plancraft browser profile, AES-256-GCM encrypted, in Finland. Never your password.
The 14 Plancraft tools. The session cookie stays in the Cloud Browser.
The projects, documents and hours your Plancraft office user can open, and nothing more.
Your Plancraft plan, users and API keys, the DATEV export, incoming supplier invoices, the "Plantafel" and Porta's phone calls.
You log in again yourself, in the same Cloud Browser.
Disable Plancraft for agents, reset the browser, or change your Plancraft password.
Cotlet never sees or stores your password: you type it into Plancraft yourself, and the agent works from the session that sign-in leaves. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).
The tools work through the Plancraft pages you use yourself, so a new screen does not stop your offers and invoices. Cotlet watches the apps it serves and updates the Plancraft server when a page changes.
New Plancraft features become available to the agent. Project statuses are read from your own list under "Status verwalten", so renamed statuses keep working.
The agent sees only what your office user can see. If Plancraft logs you out, one click in the Cotlet console reopens the Cloud Browser so you can log in again.
| Action | How to put it right |
|---|---|
| Offer or reminder created | Still unsent: edit or delete it in the project |
| Invoice made from an offer | Stays an "Entwurf" with no number until you finish it in Plancraft |
| Payment recorded | Correct the payment on the invoice in Plancraft |
| Hours booked | Correct the entry under "Zeiten" before your export |
| Document sent | Already with your customer: follow up with them directly |
3 of the 8 write tools ask first: send_document, record_payment, create_time_entry. By default you confirm each call, and you can switch that off per tool. The other writes only add contacts, projects and drafts that reach no one. The 6 read tools run at once.
{
"name": "create_offer",
"arguments": {
"project_id": "prj_41c9d0",
"subject": "Malerarbeiten Bad",
"positions": [
{
"title": "Untergrund spachteln",
"quantity": 85,
"unit": "m2",
"unit_price": 6.4
},
{
"title": "Waende streichen",
"quantity": 85,
"unit": "m2",
"unit_price": 7.2
},
{
"title": "Decke streichen",
"quantity": 24,
"unit": "m2",
"unit_price": 8.5
}
]
}
} curl -X POST https://cotlet.dev/api/v1/plancraft/projects/prj_41c9d0/offers \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"subject":"Malerarbeiten Bad","positions":[{"title":"Untergrund spachteln","quantity":85,"unit":"m2","unit_price":6.4},{"title":"Waende streichen","quantity":85,"unit":"m2","unit_price":7.2},{"title":"Decke streichen","quantity":24,"unit":"m2","unit_price":8.5}]}' {
"document_id": "doc_2e71a8",
"type": "offer",
"project": "P-00046",
"subject": "Malerarbeiten Bad",
"positions": [
{
"title": "Untergrund spachteln",
"quantity": 85,
"unit": "m2",
"unit_price": 6.4,
"total": 544
},
{
"title": "Waende streichen",
"quantity": 85,
"unit": "m2",
"unit_price": 7.2,
"total": 612
},
{
"title": "Decke streichen",
"quantity": 24,
"unit": "m2",
"unit_price": 8.5,
"total": 204
}
],
"net_total": 1360,
"vat_total": 258.4,
"gross_total": 1618.4,
"currency": "EUR"
} The example drafts a bathroom offer: 85 m2 of filling at 6.40, 85 m2 of walls at 7.20 and 24 m2 of ceiling at 8.50 make 1,360.00 EUR net, 1,618.40 EUR with 19% VAT. A cron job or n8n flow can make the same call over REST at /api/v1/plancraft with the same key and price, in JSON. Failed calls are free.
About $18 a monthfor a painting business with a crew of three and about ten offers a month, 3,080 credits. Your Plancraft plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| New customers and projects | 3 × 6 | 180 |
| Offers drafted from site notes | 2 × 10 | 200 |
| Invoice drafts from accepted offers | 2 × 10 | 200 |
| Offers and invoices sent | 1 × 20 | 200 |
| Crew hours booked, every workday | 1 × 20 | 200 |
| Hours checked before invoicing | 2 × 8 | 160 |
| Bank payments recorded | 2 × 12 | 240 |
| Weekly overdue check | 1 × 4 | 40 |
| Reminders created and sent | 2 × 8 | 160 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 158 calls | 3,080 |
The $29 pack covers a typical month for most owners. A bigger crew or more jobs a month means more calls.
Credit packs are one-time purchases, not a subscription. The month above is our own example, not measured customer usage.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Porta, Plancraft's AI | Answers phone calls, records what the customer wants and adds new contacts; 60 call minutes a month free. | Takes calls; it does not write offers, record payments or book hours. |
| Plancraft API | Reads and creates contacts and projects with a key you make in Plancraft, and sends webhooks. | Not on by default; no offers, invoices, payments or hours. |
| Make or n8n | Plancraft names both for flows on its API; neither has a Plancraft app. | Only what the API covers, and Plancraft gives no setup support. |
| Zapier | No Plancraft app in the Zapier directory. | Nothing to connect. |
| DATEV export, GAEB and DATANORM | Invoices to your tax adviser; material catalogs and bills of quantities in. | Files moved, no work done in the project. |
| By hand | Open each project, document and list in Plancraft. | One screen at a time, only while you are at the desk. |
If your job is keeping contacts and projects in step with another system, the Plancraft API with Make or n8n is the vendor's own route. Only Cotlet lets your agent do the daily Plancraft office work on every screen you use, reading and writing offers, invoices, payments and hours, from ChatGPT, Claude or any MCP client, with no Plancraft API key and on your current plan.
Cotlet belongs to Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273), in business since 2019. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Plancraft tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev/signup?app=plancraft, turn on Plancraft under Integrations in the console and log in at https://plancraft.com/de-de/login in your Cloud Browser. Then connect your AI agent and ask it for this month's overdue invoices. The trial needs no card.
An Office account. Plancraft says documents and project planning are done in the browser application, and mobile users only get the mobile app. You sign in once with your email and password at plancraft.com/de-de/login, in your own Cloud Browser.
The agent can only do what your plan allows. Plancraft sells Business, Pro and Premium, and Pro adds things such as the GAEB interface and post-calculation. After the 7-day trial, an account without a subscription drops to a free plan with fewer features, and your data stays.
As you like. Plancraft's screens stay in German and the agent works on them as they are; you can ask in English or German, and offers keep the position texts you give.
Only in how it is called. Both carry the same 14 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.
No. Cotlet is independent and not affiliated with Plancraft GmbH.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy