MCP-server

Anslut AI-verktyg till Flowtly via Model Context Protocol på mcp.flowtly.eu.

Anslut

claude mcp add --transport http flowtly https://mcp.flowtly.eu/mcp

På denna sida

Agreements_get

Verktyg

agreements_getHämta ett anställningsavtal via id — typ, variant, tidsfönstret dateFrom/dateTo, hoursPerWeek samt de härledda `calculable`, `active` och `status`. agreements_list ger id:t. Kräver ROLE_AGREEMENTS_MANAGER eller ROLE_MEETING_MANAGER. Skrivskyddad.

Agreements_list

Verktyg

agreements_listLista anställningsavtal — filtrera på anställd (IRI), isActive, typ eller variant. DETTA är sättet att svara på "varför säger people_list att den här personen är inaktiv": varje rad har `calculable` och `active`, och en person är aktiv exakt när de har ett avtal som är båda. Även platsen att läsa av vilka `type`-koder organisationen faktiskt använder innan agreements_create anropas, eftersom en organisation kan lägga till egna. Kräver ROLE_AGREEMENTS_MANAGER eller ROLE_MEETING_MANAGER. Skrivskyddad.

Agreement Types_get

Verktyg

agreementTypes_getHämta en avtalstyp via id — dess name eller translationKey, `calculable`, `isActive`, `position` och `builtIn`. Id:t ÄR koden, så detta läser tillbaka en typ med samma sträng som ett avtal lagrar i `type`. Använd den för att bekräfta att en typ sparades efter agreementTypes_create, och för att kontrollera `calculable` innan någon läggs på den. Kräver ROLE_USER. Skrivskyddad.

Agreement Types_list

Verktyg

agreementTypes_listLista de avtalstyper DENNA organisation kan sätta på ett avtal — värdena bakom `Ludzie > <person> > Umowy > Edytuj umowę`. Läs detta innan agreements_create eller agreements_import, eftersom listan är per-tenant: fem inbyggda typer levereras ("agreement", "annex", "termination", "list-of-intent", "work-experience") och en organisation kan lägga till egna, så en `type` som är giltig i en organisation ger 422 i en annan. ID:T ÄR KODEN — `id` på varje rad är exakt den sträng `agreements_create` förväntar sig i `type`, inte en numerisk nyckel att slå upp. `calculable` är fältet som avgör om innehav av denna typ gör någon AKTIV och räknar in dem i resursbemanningen, semesterintjäningen och kostnadsbasen; en typ som inte är calculable lämnar personen inaktiv utan något fel någonstans, vilket är avsett för en typ som "list-of-intent" och en tyst bugg om den valdes av misstag. `builtIn`-rader har en translationKey och ett null-namn; egna rader har ett namn som visas ordagrant och en null translationKey. Kräver ROLE_USER. Skrivskyddad.

Allocations_get

Verktyg

allocations_getEn allokering via id — en enskild persons bokning på ett projekt, med datum och procentandel. allocations_list hittar id:t; den här läser hela posten. En allokering utan anställd är en ÖPPEN roll (obesatt behov), inte en bokning. Kräver resursmodulen. Skrivskyddad.

Allocations_list

Verktyg

allocations_listLista resursallokeringar — datumavgränsade tilldelningar av en position på ett projekt till en anställd (eller till ingen än, en öppen roll). Inga filter; bläddra med cursor. Varje post har employeeId/employeeName och projectId/projectName redan uppslagna (null employeeId betyder en öppen roll); positionId är obearbetad — slå upp namnet via positions_list. source skiljer mellan rader importerade från ark och sådana som skapats direkt i Flowtly. Använd den här för att stämma av en resursarksimport: läs av vad som landade och jämför mot vad som skickades in.

Asset Bookings_get

Verktyg

assetBookings_getHämta en tillgångsbokning via id — tillgången, dess innehavare, datumen och om den har avbokats. Skrivskyddad.

Asset Bookings_list

Verktyg

assetBookings_listLista tillgångsbokningar — vem eller vad som just nu innehar varje tillgång, vilket är den tilldelning skärmen Tillgångar visar och den enda platsen en koppling mellan tillgång och person faktiskt finns. Varje rad har tillgången, innehavaren (`relationName` employee | project plus `relationId`), start-/slutdatum och, när den är frisläppt, `cancelReason` och `cancelledAt`. Filtrera på `property` för att se en tillgångs historik, eller på `employee` för att se allt en person innehar — det senare är vad man ska köra innan någon slutar. Observera att `employee` här är det NUMERISKA id:t, inte den /people-IRI som assetBookings_create tar emot. Lägg till `exists.cancelledAt: false` för att bara se det som fortfarande innehas; utan det inkluderar listan även frisläppta bokningar. Skrivskyddad.

Asset Meter Readings_get

Verktyg

assetMeterReadings_getHämta en mätaravläsning via id — dess mätare, datum och värde. Skrivskyddad.

Asset Meter Readings_list

Verktyg

assetMeterReadings_listLista mätaravläsningar — de daterade värden som registrerats mot en tillgångsmätare, rådata som den mätarbaserade faktureringsuppdelningen läser. Varje rad har mätaren, datumet och värdet. Använd den för att läsa en mätares historik: ett värde som aldrig ändras mellan perioder (en mätare som fastnat eller delas) fakturerar noll, och en mätare utan nya rader är en som ingen läser av. Skrivskyddad.

Asset Meters_get

Verktyg

assetMeters_getHämta en tillgångsmätare via id — tillgången den sitter på, mediatyp, enhet och externt/QR-id, med dess avläsningar. Skrivskyddad.

Asset Meters_list

Verktyg

assetMeters_listLista organisationens tillgångsmätare — media-/förbrukningsmätarna som är kopplade till tillgångar (el, vatten, gas, värme). Varje rad har tillgången den sitter på, mediatyp och enhet, samt dess avläsningar. Filtrera på `property` (tillgången den tillhör) och `utilityType`. Använd den för att slå upp det mätar-id som avläsningar behöver, och för att hitta mätare som visar noll, har fastnat på ett värde eller sitter på en delad/kollektiv mätare. Skrivskyddad.

Assets_get

Verktyg

assets_getHämta en tillgång via id — namn, status, kategori (attributeSet), överordnad post, assetCode, serienummer, inköps- och garantidatum, plats och bokningsinställningar. Skrivskyddad.

Assets_list

Verktyg

assets_listLista organisationens tillgångar — registret över fysiska saker den äger eller säljer, från bärbara datorer och skrivbord till lägenheter, parkeringsplatser och förråd. Filtrera på status (in-stock | damaged | sold), attributeSet (kategorin tillgångslistan grupperas efter), bookingAllowed, eller en del av ett namn eller serialNumber; sortera på name, status, serialNumber, boughtAt eller warrantyTo. INTE SIDINDELAD — hela mängden kommer tillbaka i ett enda svar, så ett stort register blir en enda stor nyttolast snarare än en första sida. Använd den för att slå upp det tillgångs-id som tillgångsbokningar och tillgångsdokument behöver. Skrivskyddad.

Attribute Entity Values_list

Verktyg

attributeEntityValues_listLista attributVÄRDEN — vad en specifik tillgång, projekt, budget eller kund faktiskt har för ett bundet attribut. Varje rad har attributet, värdet och `relationId` som anger vilken entitet det tillhör. Skrivskyddad.

Attributes_get

Verktyg

attributes_getHämta en attributdefinition via id — namn, typ, om det är obligatoriskt eller flerval, standardvärde och formatmönster. Skrivskyddad.

Attributes_list

Verktyg

attributes_listLista attributDEFINITIONER — de namngivna fälten (yta, våning, pris) som kategorier binder och tillgångar bär värden för. Varje definition har en typ: number | string | date | state | period. Skrivskyddad.

Attribute Set Attributes_list

Verktyg

attributeSetAttributes_listLista bindningarna mellan kategorier och attributdefinitioner — vilka fält som visas på vilken kategori. Skrivskyddad.

Attribute Sets_get

Verktyg

attributeSets_getHämta en attributuppsättning via id — dess namn, relationName, ikon och de attribut som är bundna till den. Skrivskyddad.

Attribute Sets_list

Verktyg

attributeSets_listLista organisationens attributuppsättningar — de KATEGORIER en tillgång, ett projekt, en budget eller en kund arkiveras under. Filtrera på relationName: "property" för tillgångskategorier (det gränssnittet kallar Typ zasobu och som tillgångslistan grupperas efter), samt "project", "budget" och "client". Använd denna innan en ny skapas: en kategori som duplicerats på grund av stavning eller skiftläge delar tyst upp listan den grupperar, utan att gränssnittet förklarar varför. Skrivskyddad.

Bank Accounts_get

Verktyg

bankAccounts_getHämta ett bankkonto via id — namn, valuta, bank och formatet dess kontoutdrag importeras i.

Bank Accounts_list

Verktyg

bankAccounts_listLista organisationens bankkonton. Filtrera på bank, eller sätt hidden för att inkludera arkiverade. Använd den för att slå upp det bankAccount-id som transactions_list filtrerar på.

Banks_get

Verktyg

banks_getHämta en bank via id — institutionen, inte ett konto som hålls där. Använd bankAccounts_get för kontot.

Banks_list

Verktyg

banks_listLista de banker organisationens konton hålls hos. Dolda banker INKLUDERAS som standard — skicka hidden=false för väljarnas vy, eller hidden=true för att hitta de pensionerade. Använd den för att slå upp det bank-id som bankAccounts_list filtrerar på och som bankAccounts_create behöver.

Budgets_employee Pnl

Verktyg

budgets_employeePnlResultaträkning per anställd för en budget — vad varje persons tid gav i intäkt jämfört med vad de kostade. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Budgets_get

Verktyg

budgets_getHämta en budget via id — dess period, omfattning och inställningar. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Budgets_list

Verktyg

budgets_listLista organisationens budgetar — de perioder som intäkter och kostnader planeras och jämförs mot. Använd den för att slå upp det budget-id som varje pnl-verktyg tar emot. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Budgets_pnl By Tags

Verktyg

budgets_pnlByTagsResultaträkning för en budget, uppdelad EFTER TAGG — income, costsByTag, costsByProject och netByTag över budgetens perioder. Taggaxeln är det som gör detta läsbart för en verksamhet vars kostnader inte naturligt är per projekt: tagga dokumenten så följer uppdelningen med. Har med displayPricePerSqm när organisationen har aktiverat pris-per-kvm och namngivit ett yta-attribut, vilket förvandlar detta till en per-kvadratmeter-vy för en fastighetsutvecklare. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Budgets_pnl By Tags Drilldown

Verktyg

budgets_pnlByTagsDrilldownDokumenten bakom en cell i budgets_pnlByTags. Använd den när en taggsumma ser fel ut — den anger de transaktioner som utgör summan i stället för att lämna dig att gissa. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Clients_get

Verktyg

clients_getHämta en klient via id — namn, land, valuta, skatte-id och status.

Clients_list

Verktyg

clients_listLista klienter (organisationens kunder). Filtrera på status, eller på externalPaymentCustomerId för att hitta klienten bakom ett betalningsleverantörs-id. Använd den för att slå upp det klient-id som invoices_list, deals_list, projects_list och contracts_list alla filtrerar på.

Config Keys_catalog

Verktyg

configKeys_catalogLista varje organisationskonfigurationsnyckel som backend känner igen, med dess typ och tillåtna värden. Detta är katalogen över vad som är konfigurerbart — läs den innan configs_get eller configs_update i stället för att gissa ett nyckelnamn. Behörighet kontrolleras per nyckel av backend, så att en nyckel förekommer här garanterar inte att den anslutna användaren får skriva till den.

Configs_get

Verktyg

configs_getLäs ett organisationskonfigurationsvärde via id, där id:t är en nyckel från configKeys_catalog (t.ex. organization-logo-url, organization-icon-url).

Contracts_get

Verktyg

contracts_getHämta ett avtal via id — parter, riktning, värde, cykliska villkor och datum.

Contracts_list

Verktyg

contracts_listLista avtal. Filtrera på direction — de lagrade värdena är "out" (vi säljer/utfärdar) och "in" (vi köper/tar emot), plus "unknown" — ett riktigt, filtrerbart tillstånd snarare än ett fel. Ett avtal som skapats genom att ladda upp ett dokument börjar som "unknown" och förblir så tills extraktion eller en person avgör det, så utelämna filtret för att få alla tre: "in" och "out" frågade separat SUMMERAR INTE till hela mängden (flowtly-mcp#130). INTE "outgoing"/"incoming": de matchar ingenting och kommer tillbaka som en tom lista i stället för ett fel. Filtrerar även på counterparty, project, cyclic, name eller tags. Använd den för att slå upp det avtals-id som contracts_paymentScheduleLines läser och som deals_win kan koppla en vunnen affär till.

Contracts_payment Schedule Lines

Verktyg

contracts_paymentScheduleLinesLista ett avtals betalningsplan — de delbetalningar det förväntas faktureras eller betalas i. Skicka contractId från contracts_list. Detta är planen, inte utfallet: jämför den mot transactions_list för att se vad som faktiskt har betalats. Beloppet på varje rad anges i MINDRE ENHETER — grosze, inte złoty: "530000" är 5 300,00, så dividera med 100 innan en siffra rapporteras till någon.

Cost Groups_list

Verktyg

costGroups_listLista kostnadsgrupper / kostnadsställen — de kategorier som kostnader, leverantörer och inkommande fakturor bokförs under. Använd den för att slå upp det costGroup-id som suppliers_create kräver och som förslag för inkommande fakturor föreslår.

Counterparties_get

Verktyg

counterparties_getHämta en motpart via id.

Counterparties_list

Verktyg

counterparties_listLista motparter — alla parter organisationen har transaktioner med. Flaggorna supplier och client anger vilken/vilka roller en motpart har, och en post kan vara båda. Detta är parten på en banktransaktion, så det är vad inkommande fakturor och transaktioner matchas mot. Filtrera på type, supplier, client, cyclic eller budgetNeutral.

CRM Notes_get

Verktyg

crmNotes_getHämta en CRM-anteckning via id.

CRM Notes_list

Verktyg

crmNotes_listLista anteckningar skrivna på leads och affärer. Filtrera på lead eller deal för att läsa den löpande kommentaren på en post.

Deal Lost Reasons_get

Verktyg

dealLostReasons_getHämta en anledning till förlorad affär via id.

Deal Lost Reasons_list

Verktyg

dealLostReasons_listLista skälen till att en affär kan markeras som förlorad, i ordning. deals_lose kräver ett lostReasonId härifrån.

Deals_get

Verktyg

deals_getHämta en affär via id — titel, klient, steg, belopp, ägare, kontakt, förväntat och faktiskt avslutsdatum.

Deals_list

Verktyg

deals_listLista affärer/möjligheter — säljpipelinen. Filtrera på status (open/won/lost), steg, ägare, klient, lead, eller på intervall för expectedCloseDate/closedAt. Belopp anges i minsta valutaenhet med en explicit valuta; anta inte organisationens standardvaluta.

Deal Stage Histories_get

Verktyg

dealStageHistories_getHämta en post om affärsstegändring via id.

Deal Stage Histories_list

Verktyg

dealStageHistories_listLista en affärs stegövergångar, nyaste först. Filtrera på affär. Varje deals_update som flyttar steget loggas automatiskt här, så det är så här du rekonstruerar hur länge en affär låg i varje steg — själva affären bär bara sitt aktuella steg.

Departments_list

Verktyg

departments_listOrganisationens avdelningar, med det numeriska id varje avdelning refereras med. LÄS DETTA INNAN people_create ELLER people_update: båda tar emot en `department`-IRI och det finns inget annat sätt att hitta en giltig sådan. Samlingen är osidindelad och sorterad på namn, så ett enda anrop returnerar varje avdelning organisationen har. Filtrera på `name` (delvis matchning) eller `code` (exakt). Raderna har id, name och code; `manager` är en relation och ingår inte i listrader — läs den med people_list från andra hållet om du behöver den. Kräver ROLE_EMPLOYEES_VIEWER. Skrivskyddad.

Holiday Days Limits_get

Verktyg

holidayDaysLimits_getEn rättighetsrad via id — beloppet, typen, avtalsvarianten och datumet den träder i kraft. holidayDaysLimits_list hittar id:t. Belopp anges i SEKUNDER (#3763). Skrivskyddad.

Holiday Days Limits_list

Verktyg

holidayDaysLimits_listHur mycket ledighet varje person har RÄTT till, per typ — inte hur mycket de har tagit ut, vilket är holidays_list. Filtrera på employee. En person kan ha flera rader för en och samma typ över tid, eftersom ett saldo fylls på eller korrigeras: raden som GÄLLER är den med det senaste dateFrom som redan har inträffat, och rader daterade framåt i tiden ignoreras medvetet tills dess. Belopp anges i SEKUNDER (#3763) — en ledighetsdag på 8 timmar är 28800. Kräver ROLE_HOLIDAYS_MANAGER. Skrivskyddad.

Holiday Requests_list

Verktyg

holidayRequests_listLedighets-BEGÄRANDEN och var de står — väntande, godkända, avslagna. Skiljer sig från holidays_list, som är bokad ledighet: en begäran som väntar på beslut är ännu inte en frånvaro, så planera mot holidays_list och använd den här för att se vad som väntar på någon. Tillhandahåller det holidayRequestId som holidays_approve och holidays_bulkApprove tar. Skrivskyddad.

Holidays_active

Verktyg

holidays_activeVem som är ledig JUST NU — all pågående ledighet, organisationsövergripande, för alla. Det här är verktyget för 'vem är borta idag', och det du bör stämma av mot innan du behandlar resourcingBench_get:s freePercent som tillgänglighet, eftersom bänken inte drar av ledighet. Till skillnad från holidays_list tillämpar den ingen projektavgränsning och kräver ingen behörighet utöver att vara inloggad, så svaret täcker hela organisationen. Returnerar varje frånvaro med dess typ och datum. Skrivskyddad.

Holidays_get

Verktyg

holidays_getEn ledighetspost via id, med dess typ, datum och varaktighet. Hämta id:t från holidays_list eller holidays_active. Skrivskyddad.

Holidays_list

Verktyg

holidays_listBokad ledighet över en period — planeringsvyn, där holidays_active bara svarar om idag. Filtrera på anställd, datumintervall eller projekt. VAD DU SER BEROR PÅ DINA BEHÖRIGHETER, och en kort lista är inget bevis på att ingen är ledig: en ledighetsansvarig eller ekonomivisare får hela organisationen, medan en projektledare eller -visare MÅSTE ange ett projektfilter (eller fråga om sig själv) och nekas rakt av utan ett sådant — det avslaget är en behörighetsgräns, inte en tom kalender. Skrivskyddad.

Holiday Types_list

Verktyg

holidayTypes_listDe ledighetstyper organisationen använder, med det id varje typ refereras med. Läs detta innan holidayDaysLimits_create/update, som behöver en holidayType-IRI som annars måste gissas fram. Den typ som inte är en ledighet i vanlig mening är `pick-up-day` — ledig tid som kompensation för redan utfört övertidsarbete (polska *odbior nadgodzin*), vilket är ett BEVILJAT saldo snarare än en årlig rättighet. Skrivskyddad.

Incoming Invoices_get

Verktyg

incomingInvoices_getHämta en inkommande (leverantörs)faktura eller underlagsdokument via id, med dess OCR-tolkade fält och nuvarande matchningsstatus.

Incoming Invoices_list

Verktyg

incomingInvoices_listLista inkommande (leverantörs-) fakturor och underlagsdokument — ekonomiavdelningens inkorg. En inkommande faktura ÄR ett dokument kopplat till en banktransaktion, så exists.transaction=false är hur du hittar dokument som ännu inte matchats mot en betalning. Filtrera även på status, relatedMonth, motpart, projekt, taggar eller hasDetectedProblems. Varje dokument fingeravtrycks som externalId 'upload_sha256:<sha256 av bytesen>' — hasha en fil och sök efter det externalId:t här INNAN incomingInvoices_create, annars bokför du en dubblett.

Incoming Invoices_match Candidates

Verktyg

incomingInvoices_matchCandidatesLista de banktransaktioner som skulle kunna vara betalningen för denna inkommande faktura, rangordnade av backendens egen matchare. Använd den när ett dokument saknar kopplad transaktion och du behöver välja en; föredra dessa kandidater framför att gissa på belopp själv.

Incoming Invoices_suggestions

Verktyg

incomingInvoices_suggestionsLäs Flowtlys egna förslag för en inkommande faktura — leverantörsmatchning, kostnadsgrupp, matchande banktransaktion, dublettvarning. Detta är precis de förslag en människa ser i appen. Läs dem först och applicera sedan ett via id med incomingInvoices_applySuggestion, eller ta alla med acceptAllSuggestions. Skicka refresh för att räkna om i stället för att servera den cachade uppsättningen.

Incoming Invoices_suggestions Debug

Verktyg

incomingInvoices_suggestionsDebugFörklara VARFÖR en inkommande fakturas förslag blev som de blev — matcharens poängsättning, för att diagnostisera ett saknat eller felaktigt förslag. Endast diagnostik; använd incomingInvoices_suggestions för normalt arbete.

Initial Budget Items_list

Verktyg

initialBudgetItems_listLista radposter i ursprungsbudgeten — de planerade beloppen, per tagg, som contractComparison jämför mot. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Initial Budgets_contract Comparison

Verktyg

initialBudgets_contractComparisonPLANERAT jämfört med KONTRAKTERAT, per tagg — ursprungsbudgetens planerade belopp mot summan av de avtalsvärden som faktiskt tecknats för projektet. Detta är frågan "har vi förbundit oss till mer än vi budgeterat, och var", och den läses direkt av de avtal som redan finns i organisationen, så att importera avtal gör frågan besvarbar utan ytterligare arbete. Belopp anges i grosze; ett projekt med blandad valuta ger en notis i stället för en tyst felaktig summa. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Initial Budgets_get

Verktyg

initialBudgets_getHämta en ursprungsbudget via id, med dess poster. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Initial Budgets_list

Verktyg

initialBudgets_listLista ursprungsbudgetar — den URSPRUNGLIGA planen för ett projekt eller en investering, till skillnad från den löpande budget den mäts mot. Kräver ROLE_BUDGETS_VIEWER. Skrivskyddad.

Invoices_get

Verktyg

invoices_getHämta en utgående (försäljnings)faktura via id — klient, rader, totalbelopp, försäljnings- och utfärdandedatum, status.

Invoices_list

Verktyg

invoices_listLista utgående (försäljnings-) fakturor. Filtrera på klient, taggar, sökning eller ett saleDate-intervall. Observera att saleDate — inte utfärdandedatum och inte skapandedatum — är fältet som invoices_export filtrerar på, så använd samma fält här vid avstämning av en export.

Lead Activities_get

Verktyg

leadActivities_getHämta en lead-aktivitet (kontaktpunkt) via id.

Lead Activities_list

Verktyg

leadActivities_listLista en leads kontaktpunkter — dess aktivitetstidslinje (inbjudan skickad, svar, samtal, uppföljningar). Filtrera på lead för att läsa en prospekts historik. Detta är den strukturerade motsvarigheten till crmNotes_list: aktiviteter är den typade, daterade kontaktloggen; anteckningar är fri kommentar.

Lead Contacts_get

Verktyg

leadContacts_getHämta en leadkontakt via id.

Lead Contacts_list

Verktyg

leadContacts_listLista de kontaktpersoner som är kopplade till leads. Filtrera på lead för att läsa en prospekts kontakter, eller på email för att hitta vilken lead ett meddelande kom från.

Lead List Memberships_get

Verktyg

leadListMemberships_getHämta ett lead-till-lista-medlemskap via id. Dess status och lastContactedAt är en ögonblicksbild skriven av anroparen, inte ett levande tillstånd — se leadListMemberships_list.

Lead List Memberships_list

Verktyg

leadListMemberships_listLista vilka leads som finns på vilka utgående prospekteringslistor. Filtrera på list, lead eller status. VARNING: status och lastContactedAt är en ÖGONBLICKSBILD skriven av den som senast importerade eller uppdaterade medlemskapet. De härleds inte, och ingenting flyttar dem fram när en aktivitet registreras — att logga en våg av 529 uppföljningar rör inget av fälten — så de kan ligga godtyckligt långt efter. För att svara på "när hade vi senast kontakt med detta prospekt", läs i stället aktivitetsloggen: leadActivities_list för ett enskilt lead, leadActivities_byList för en hel kampanj. leadListMemberships_syncFromActivities rapporterar avvikelsen och kan täppa till den.

Lead Lists_get

Verktyg

leadLists_getHämta en utgående prospekteringslista via id.

Lead Lists_list

Verktyg

leadLists_listLista utgående prospekteringslistor. Använd den för att slå upp det list-id som leadListMemberships_create tar.

Lead Lost Reasons_get

Verktyg

leadLostReasons_getHämta en anledning till förlorad lead via id.

Lead Lost Reasons_list

Verktyg

leadLostReasons_listLista anledningarna en lead kan markeras som förlorad, i ordning.

Leads_dedupe Check

Verktyg

leads_dedupeCheckKontrollera om en prospekt redan finns i CRM:et, med samma filter som leads_list (companyName, source, owner, …). Anropa den här INNAN leads_create: en dubblettlead delar upp kontakthistoriken på två poster, och inget nedströms kommer att slå ihop dem åt dig.

Leads_get

Verktyg

leads_getHämta en lead via id — företag, webbplats, källa, status, ägare och den klient den konverterades till, om någon.

Leads_list

Verktyg

leads_listLista leads — prospektmål, före kvalificering. Filtrera på status, källa, ägare, klient, companyName eller createdAt/closedAt-intervall. En kvalificerad lead blir en klient plus en öppen affär via leads_convert; fram till dess finns den bara här, inte i clients_list.

Lead Stages_get

Verktyg

leadStages_getHämta ett leadsteg via id.

Lead Stages_list

Verktyg

leadStages_listLista de steg en lead går igenom, i ordning. Leads har sin egen uppsättning steg — affärer använder stages_list, vilket är en annan sak.

Locations_get

Verktyg

locations_getHämta en plats via id — dess namn och öppettider. Skrivskyddad.

Locations_list

Verktyg

locations_listLista organisationens platser — de fysiska ställen tillgångar befinner sig på, visas i gränssnittet som Lokalizacja. Kräver ROLE_LOCATIONS_MANAGER, vilket ovanligt nog styr både LÄSNING och skrivning. Skrivskyddad.

Organization Addresses_get

Verktyg

organizationAddresses_getHämta en prenumerationsadresspost via id — name, street, city, postCode, country och skattefälten. `street` innehåller husnumret när det matats in för hand, men inte när det kommer från NIP/GUS-uppslaget. Skrivskyddad.

Organization Addresses_list

Verktyg

organizationAddresses_listLista organisationens prenumerationsadressposter — adressen kopplad till Flowtly-prenumerationen, och källan mejlfoten {{organizationAddress}} renderas från. Normalt exakt en rad. Detta är INTE säljaradressen på fakturor, som finns i config-nycklarna organization-billing-* (configs_get) och som fakturor och KSeF läser; de två underhålls separat och skiljer sig ofta åt. Läs båda innan slutsatsen dras om vilken en kund faktiskt redigerade. Skrivskyddad.

Organization Mail Footer_get

Verktyg

organizationMailFooter_getLäs organisationens sidfotstext för utgående e-post (blocket som läggs till i e-post Flowtly skickar för organisationens räkning).

Organizations_get

Verktyg

organizations_getHämta en organisation via id. VARNING — detta talar INTE om vilken organisation du är ansluten till. En OAuth-anslutning är knuten till exakt en organisation (tokenbunden), men den här slutpunkten returnerar vilken organisation som helst som den anslutna ANVÄNDAREN är medlem i, så en lyckad läsning här kan se ut som en bekräftelse på att du arbetar i den organisationen även om det inte är fallet. För att verifiera vilken klient du faktiskt arbetar mot, läs klientavgränsad data i stället — people_list eller clients_list — och påbörja aldrig en massiv skrivning enbart på grund av det här anropet.

People_get

Verktyg

people_getHämta en person-/medarbetarpost via id — namn, e-postadresser, telefon, chef och om personen är aktiv.

People_list

Verktyg

people_listLista personer/medarbetare. Filtrera på isActive, reportsTo (en chefs id), projectMembers.project, eller search; sidnumrera med cursor. Personer och medarbetare delar samma id, så det är så du slår upp det employee-id som arbetstid, ansvarsområden, projektmedlemskap och behörighetsverktyg alla förväntar sig.

Permission Groups_get

Verktyg

permissionGroups_getHämta en behörighetsgrupp via id, inklusive de ROLE_*-strängar den beviljar.

Permission Groups_list

Verktyg

permissionGroups_listLista organisationens behörighetsgrupper och de roller varje grupp beviljar — t.ex. beviljar gruppen "Business Owner" ROLE_ADMIN. Läs den här innan people_setPermissionGroups: rollerna i svaret är facit för vad en grupp faktiskt tillåter, så du behöver aldrig gissa utifrån dess namn.

Pipelines_get

Verktyg

pipelines_getHämta en säljpipeline via id.

Pipelines_list

Verktyg

pipelines_listLista säljpipelines. En pipeline äger en ordnad uppsättning steg — läs dem med stages_list filtrerat på pipeline.

Positions_list

Verktyg

positions_listLista positioner — de namngivna roller (t.ex. "Backend Engineer") som en projektallokering fyller. Inga filter; Position har paginering avaktiverad, så den här returnerar alltid organisationens hela rollkatalog i ett anrop. Varje post är {id, name, roles}. Använd den för att slå upp positionsnamnet bakom positionId i en allocations_list-rad, och för att hitta det position-id en resursimport måste matchas mot.

Project Members_get

Verktyg

projectMembers_getHämta ett projektmedlemskap via id — dess employee, project och position. Id:n kommer från projectMembers_list eller arrayen projectMembers i projects_get.

Project Members_list

Verktyg

projectMembers_listLista projektmedlemskap — VEM KAN SE VILKET PROJEKT. Filtrera på project (`/projects/{id}`) för att läsa ett projekts medlemslista, eller på employee för att läsa varje projekt en person kan nå; varje rad har sitt eget id, employee, project och position (employee|tech-lead|account-manager|viewer). Använd denna först när någon rapporterar att ett projekt saknas i deras projektlista eller att de inte kan logga tid mot det: en tom medlemslista, eller en medlemslista utan dem i, ÄR förklaringen — synlighet är medlemskap. Den är också id-källan för projectMembers_update och projectMembers_delete. Observera att samma person kan förekomma flera gånger på ett projekt, en gång per position.

Projects_cost Allocations

Verktyg

projects_costAllocationsHur kostnader fördelades PÅ detta projekt — vilka transaktioner och fakturarader som attribuerats till det, och i vilken andel. Använd den för att förklara ett lönsamhetstal i stället för att bara citera det: här spåras ett oväntat resultat tillbaka till dokumentet som orsakade det. Kräver ROLE_TRANSACTIONS_MANAGER. Skrivskyddad.

Projects_folder Counts

Verktyg

projects_folderCountsHur många projekt som ligger i varje projektMAPP, som folderId + total + active. folderId är ett tagDefinition-id — slå upp namn med tagDefinitions_list och ta reda på vilka grupper som är mappgrupper med tagGroups_list (allowedRelations innehåller "project"). Ett tomt folderId är hinken för okategoriserade. Räknar endast rotprojekt, eftersom mappar grupperar rötter och faser följer sin förälder. Skrivskyddad.

Projects_get

Verktyg

projects_getHämta ett projekt via id — namn, typ, klient, datum, beskrivning och pris.

Projects_list

Verktyg

projects_listLista projekt. Filtrera på type (fixed-price | time-and-material | non-billable | internal), client.name, employee, name, eller intervall för dateFrom/dateTo. Använd den för att slå upp det project-id som uppgifter, tidrapportering, budgetar och avtal alla tar emot.

Projects_profitability

Verktyg

projects_profitabilityRESULTATET PER PROJEKT — vad ett projekt gav i intäkt jämfört med vad det kostade. Detta är den siffra en tjänste- eller utvecklingsverksamhet vanligtvis vill se, och den som varje annat projektverktyg matas av. Skicka projektets id från projects_list. Kräver ROLE_ACCOUNT_MANAGER. Skrivskyddad.

Project Templates_get

Verktyg

projectTemplates_getHämta en projektmall via id, inklusive dess fullständiga strukturdokument. projectTemplates_list hittar id:t. Läs detta innan projectTemplates_update — strukturen skrivs i SIN HELHET, så en uppdatering måste skicka hela dokumentet, inte ett fragment. Skrivskyddad.

Project Templates_list

Verktyg

projectTemplates_listLista organisationens projektmallar — återanvändbara ritningar för ett projekt, dess faser, dess uppgiftslistor och dess uppgifter. Använd denna FÖRE projects_create när samma typ av projekt sätts upp om och om igen (en uppdragstyp, en revision, en onboarding): att instansiera en mall bygger hela trädet i ett enda anrop, medan projects_create skapar ett tomt projekt som sedan måste fyllas i för hand. Raden märkt isDefault är organisationens inbyggda mall, som tillämpas på ett projekt skapat utan vald mall. Skrivskyddad.

Resource Request Candidates_get

Verktyg

resourceRequestCandidates_getEn rekryteringskandidat via id. Id:t kommer från resourceRequestCandidates_list. Kräver ROLE_HR_MANAGER. Skrivskyddad.

Resource Request Candidates_list

Verktyg

resourceRequestCandidates_listDe kandidater som föreslagits mot anställningsbegäranden — personer i en rekryteringspipeline, inte anställda tillgängliga för allokering. Filtrera på begärans-id från resourceRequests_list. Kräver ROLE_HR_MANAGER. Skrivskyddad.

Resource Requests_get

Verktyg

resourceRequests_getEn anställningsbegäran via id, med dess position och status. Hämta id:t från resourceRequests_list. HR/rekrytering, inte resursallokering. Kräver ROLE_HR_MANAGER. Skrivskyddad.

Resource Requests_list

Verktyg

resourceRequests_listÖppna anställningsbegäranden — en begäran om att rekrytera till en position, inom HR-domänen. Trots namnet är detta INTE ett behov av resursallokering: det är rekrytering. Returnerar samlingen; resourceRequests_get läser en, och resourceRequestCandidates_list ger personerna som föreslagits för den. Kräver ROLE_HR_MANAGER. Skrivskyddad.

Resourcing Requests_list

Verktyg

resourcingRequests_listÖppna resursbegäranden — någon som ber om att en person allokeras till ett projekt, vilket är efterfrågesidan av resursplaneringen. Detta är flödet som Resursplaneringens Requests-vy renderar. Blanda INTE ihop den med resourceRequests_list: den är HR-REKRYTERING (anställning till en position). Kombinera den med resourcingRequestsHistory_list för vad som redan beslutats, och resourcingBench_get för vem som skulle kunna tillgodose en begäran. Kräver resursmodulen och ROLE_RESOURCING_MANAGER. Skrivskyddad.

Resourcing Requests History_list

Verktyg

resourcingRequestsHistory_listVad som redan har hänt med resursbegäranden — beslutsspåret (bekräftad, avslagen, ändrad) bakom de öppna begäranden i resourcingRequests_list. Använd den för att besvara 'har det här redan efterfrågats och avslagits?' innan du föreslår samma allokering igen. Kräver resursmodulen och ROLE_RESOURCING_MANAGER. Skrivskyddad.

Responsibilities_get

Verktyg

responsibilities_getHämta ett ansvarsområde via id.

Responsibilities_list

Verktyg

responsibilities_listLista ansvarsområden inom en RACI-grupp. Filtrera på responsibilityGroup. Ansvarsområden kan nästlas via parent; personer tilldelas dem via responsibilityEmployees, inte direkt.

Responsibility Employees_get

Verktyg

responsibilityEmployees_getHämta en ansvarstilldelning via id.

Responsibility Employees_list

Verktyg

responsibilityEmployees_listLista vem som är tilldelad vilket ansvarsområde, och till hur många procent. Filtrera på employee för att läsa en persons hela RACI-belastning över alla grupper.

Responsibility Groups_get

Verktyg

responsibilityGroups_getHämta en ansvarsgrupp via id.

Responsibility Groups_list

Verktyg

responsibilityGroups_listLista ansvarsgrupper/RACI-områden — toppnivåposterna "Odpowiedzialności", var och en med en ansvarig person. Enskilda ansvarsområden ligger under dem.

Schedule Employees_get

Verktyg

scheduleEmployees_getEn schema-till-anställd-tilldelning via id. Id:t kommer från scheduleEmployees_list. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Schedule Employees_list

Verktyg

scheduleEmployees_listVilka anställda som är tilldelade vilka arbetstidsscheman. Använd den för att gå från ett schema (schedules_list) till dess personer, eller för att hitta det schema en given anställd följer. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Schedule Plan_list

Verktyg

schedulePlan_listDe scheman som gäller på ETT givet datum — skicka datumet i sökvägen. Använd den för att besvara 'vem arbetar idag / detta datum' utan att läsa varje schema och räkna ut dess intervall själv. Till skillnad från de andra schemaläsningarna kräver den bara ROLE_USER, så det är den som är tillgänglig för en vanlig anställd. Skrivskyddad.

Schedule Ranges_get

Verktyg

scheduleRanges_getEtt schematidsintervall via id. Id:t kommer från scheduleRanges_list. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Schedule Ranges_list

Verktyg

scheduleRanges_listDe tidsintervall som utgör arbetstidsscheman — de faktiska timmar ett schema täcker. Läs föräldern med schedules_get först; den här expanderar dess intervall. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Schedules_get

Verktyg

schedules_getEtt arbetstidsschema via id, med dess intervall och tilldelade anställda. Id:t kommer från schedules_list; scheduleRanges_list och scheduleEmployees_list läser dess delar. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Schedules_list

Verktyg

schedules_listArbetstidsscheman — de skift-/arbetsmönster en organisation definierar, INTE projektallokering. Använd resourcingSchedule_get för vem som är bokad på vad; använd den här för själva arbetsmönstren. schedules_get läser ett via id. Kräver ROLE_SCHEDULES_MANAGER. Skrivskyddad.

Stages_get

Verktyg

stages_getHämta ett affärssteg via id.

Stages_list

Verktyg

stages_listLista affärssteg, i ordning. Filtrera på pipeline. deals_create kräver ett steg-id härifrån, och att flytta en affär mellan steg är vad dealStageHistories registrerar.

Suppliers_list

Verktyg

suppliers_listLista leverantörer/underleverantörer — serveras från /contractors, så "supplier" och "contractor" är samma post. Filtrera på cyclic för återkommande leverantörer. Använd den för att slå upp den leverantör en kostnad, ett avtal eller en inkommande faktura bokförs mot.

Tag Definitions_list

Verktyg

tagDefinitions_listLista taggdefinitioner — de taggar som kan kopplas till poster, var och en inom en tagggrupp. tags_create tar ett tagDefinition-id härifrån plus posten den ska kopplas till.

Tag Groups_list

Verktyg

tagGroups_listLista tagggrupper — behållarna som organiserar taggdefinitioner.

Task Comments_list

Verktyg

taskComments_listLista kommentarer på projektuppgifter, äldsta först. Filtrera på task för att läsa en uppgifts diskussion.

Task Lists_list

Verktyg

taskLists_listLista uppgiftslistor — de tavelkolumner/sektioner uppgifter bokförs i. Filtrera på projekt. tasks_create tar ett list-id härifrån.

Tasks_get

Verktyg

tasks_getHämta en projektuppgift via id — titel, projekt, status, lista, tilldelade personer, datum och återkommande mönster.

Tasks_list

Verktyg

tasks_listLista projektuppgifter. Filtrera på projekt, lista, status, tilldelade, isTemplate eller startAt/dueAt-intervall. Återkommande uppgifter exponerar recurrenceParent och recurrenceRule, så en genererad förekomst kan spåras tillbaka till regeln som skapade den. För att avgöra om en uppgift är KLAR, jämför dess status mot taskStatuses_list (isClosed) i stället för att matcha på statusnamnet.

Task Statuses_list

Verktyg

taskStatuses_listLista projektuppgifternas statusar, i tavelordning. isClosed markerar de avslutade tillstånden och isDefault den status en ny uppgift får. Läs denna innan du tolkar en uppgifts status — namnen är konfigurerbara per organisation, så "Done" är ingen pålitlig sträng att matcha på.

Tax Groups_list

Verktyg

taxGroups_listLista skattegrupper. Använd den för att slå upp det taxGroup-id som taxRules_list filtrerar på och som fakturarader bär.

Tax Rules_list

Verktyg

taxRules_listLista skatteregler — satserna och de perioder de gäller för. Filtrera på taxGroup.

Transactions_list

Verktyg

transactions_listLista banktransaktioner — bankflödet som inkommande fakturor matchas mot. Filtrera på bankAccount, counterpartyRole, cost, ignored, hasDetectedProblems, ett intervall för orderDate/execDate, eller amount.between. Observera att orderDate och execDate är olika: en betalning kan ordras en månad och exekveras nästa.

Transactions_suggestions

Verktyg

transactions_suggestionsLäs Flowtlys förslag för en banktransaktion — vilken motpart, kostnadsgrupp eller vilket dokument den bör bokföras mot. Spegelbilden av incomingInvoices_suggestions, från penningsidan.

Work Times_get

Verktyg

workTimes_getHämta en enskild tidrapportspost via id — datum, minuter, projekt, anteckningar och medarbetaren den tillhör.

Work Times_list

Verktyg

workTimes_listLista tidrapportsposter (loggade timmar). Filtrera på datumintervall (date.after/date.before, YYYY-MM-DD) och valfritt på employee eller project; sidnumrera med cursor. Varje rad bär employeeId/employeeName och projectId/projectName, så det är så du exporterar alla loggade timmar för en period. VIKTIGT: organisationsomfattande resultat kräver ROLE_WORKING_HOURS_VIEWER. Utan den ger backend INGET fel — den returnerar tyst bara den anslutna användarens egna poster, så en export av "allas timmar" kan komma tillbaka med bara en person och se helt korrekt ut. Om varje rad tillhör en och samma medarbetare och du inte filtrerade på employee, bär svaret en scopeWarning som säger det — lyft fram den för användaren i stället för att presentera resultatet som organisationsomfattande.

Agreements_create

Verktyg

agreements_createSkapa ett anställningsavtal för en person. DETTA ÄR STEGET SOM GÖR NÅGON AKTIV: people_create skapar bara posten, och en person utan avtal rapporterar isActive false för alltid — en massimport landar därför på 100 % inaktiva tills detta körs för var och en av dem. TVÅ SAKER MÅSTE BÅDA STÄMMA annars förblir de inaktiva utan något fel: `type` måste vara en typ som är CALCULABLE (de inbyggda "agreement", "annex", "termination" är det; "list-of-intent" och "work-experience" är det inte), och tidsfönstret dateFrom/dateTo måste täcka dagens datum (skicka dateTo null för ett pågående avtal i stället för ett datum långt fram i tiden). `employee` är en IRI — /people/<id> från people_list. Typer kan utökas av organisationen, så kör agreements_list på någon som redan är aktiv för att se vilka koder organisationen faktiskt använder. Kräver ROLE_AGREEMENTS_MANAGER. Skrivåtgärd.

Agreements_update

Verktyg

agreements_updateÄndra ett befintligt anställningsavtal — sättet ett avtal AVSLUTAS på, eftersom backend inte exponerar någon delete för denna resurs: sätt `dateTo` till sista dagen det gäller, så slutar personen vara aktiv från och med då, med posten och dess historik intakt. Det är rätt åtgärd för en löneanknuten rad; det finns inget sätt att få en att försvinna, och så ska det vara. Även sättet att korrigera en felaktig `type`, `variant` eller `positionName` på plats i stället för att stapla ett andra avtal på personen — TVÅ avtal tar inte ut varandra, det som är calculable håller dem aktiva, så "lägg till ett korrekt bredvid" lämnar tyst det felaktiga i kraft. `amount`, `amountType` och `billingType` accepteras men returneras aldrig av API:et, så det går inte att läsa tillbaka vad som skrevs. Kräver ROLE_AGREEMENTS_MANAGER. Skrivåtgärd.

Agreement Types_create

Verktyg

agreementTypes_createLägg till en avtalstyp i DENNA organisations lista, så att ett avtal kan registreras mot något de fem inbyggda typerna inte täcker — "Umowa zlecenie", "Kontrakt B2B", "Użytkownik funkcyjny". Detta är konfiguration, inte en kodändring: listan är en per-tenant-tabell, och en egen typ behöver ingen översättningspost eftersom dess `name` visas ordagrant i alla sju lokaler. SKICKA INTE `id`: koden slugifieras från namnet på serversidan med diakritiska tecken normaliserade ("Użytkownik funkcyjny" blir "uzytkownik-funkcyjny"), och att skicka ett id avvisas med 422 "Update is not allowed for this operation". Posta namnet och läs den tilldelade koden i svaret. `calculable` HAR SOM STANDARD FALSE OCH ÄR TYST: det avgör vem som räknas som anställd — resursbemanningen, semesterintjäningen, kostnads- och budgetbasen — så en typ avsedd för personer som INTE ska tjäna in ledighet eller uppta en heltidstjänst är korrekt satt till false, och en typ avsedd för riktig anställning MÅSTE sätta den till true annars rapporterar alla på den inaktiva utan något fel. Ingenting talar om för dig vilket du fick. `position` styr ordningen i rullgardinsmenyn; `isActive` har som standard true. Det finns avsiktligt ingen update eller delete över MCP — `agreement.type` lagrar denna rads id som en ren sträng med…

Attribute Sets_create

Verktyg

attributeSets_createSkapa en kategori (name + relationName krävs; relationName är en av property | project | budget | client, och för en tillgångskategori är det den enkla strängen "property" — INTE en IRI). Valfri icon från en fast lista (room, parking, building, office, local, desk, monitor med flera) som gränssnittet visar bredvid kategorin. LISTA FÖRST: namn är inte unika, så en andra "Mieszkanie" accepteras och delar tyst upp tillgångslistan i två. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Sets_update

Verktyg

attributeSets_updateByt namn på en kategori, ändra dess ikon, eller flytta den till en annan relationName. Så här rättas en kategori som skapats med ett stavfel, i stället för att dupliceras. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attributes_create

Verktyg

attributes_createSkapa en attributdefinition (name + type krävs; type är number | string | date | state | period). TYPEN ÄR DET AVGÖRANDE VALET: den delas av varje entitet som bär detta attribut, så ett fält skapat som `string` kan inte senare summeras eller sorteras som ett tal utan att varje befintligt värde skrivs om. Bestäm den utifrån de värden som faktiskt finns, inte det första du ser. En definition gör ingenting på egen hand — bind den till en kategori med attributeSetAttributes_create, annars visas den aldrig någonstans. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attributes_update

Verktyg

attributes_updateUppdatera en attributdefinition — name, type, required, multiple, default eller format. Att ändra `type` på en definition som redan har värden är den riskabla ändringen: befintliga värden konverteras inte. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Set Attributes_create

Verktyg

attributeSetAttributes_createBind en attributdefinition till en kategori (attributeSet + attribute, båda IRI:er). DETTA ÄR VAD SOM FÅR ETT ATTRIBUT ATT VISAS: utan bindningen kan ett värde skrivas framgångsrikt mot en entitet men aldrig visas i gränssnittet — ett fel utan symptom. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Set Attributes_delete

Verktyg

attributeSetAttributes_deleteTa bort bindningen mellan ett attribut och en kategori. Definitionen och eventuella värden finns kvar; de slutar bara visas för den kategorin, vilket kan se ut som dataförlust fast det inte är det. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Entity Values_create

Verktyg

attributeEntityValues_createSätt ett attributvärde på en entitet (attribute + value krävs). `relation` ÄR EN IRI — "/properties/7", inte ordet "property": backend löser upp den och härleder relationsnamnet från resursklassen, så att skicka ett rent namn ger ett fel. (`relationId` tar emot ett rent id och fungerar fortfarande, men det är utfasat till förmån för IRI:n.) Attributet måste redan vara BUNDET till entitetens kategori, annars lagras värdet men visas aldrig. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Entity Values_update

Verktyg

attributeEntityValues_updateÄndra ett attributvärde på plats, via dess id. Använd detta i stället för att skapa ett andra värde för samma (entitet, attribut)-par — inget tvingar fram unikhet, så en duplicering accepteras och gränssnittet visar en av dem. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Attribute Entity Values_delete

Verktyg

attributeEntityValues_deleteTa bort ett attributvärde från en entitet. Definitionen och bindningen finns kvar; bara denna entitets värde försvinner. Kräver ROLE_ATTRIBUTES_MANAGER. Skrivåtgärd.

Departments_create

Verktyg

departments_createLägg till en avdelning, så att personer kan arkiveras under den. `name` krävs (upp till 128 tecken) och är UNIKT inom organisationen; `code` är valfritt (upp till 64) och är ÄVEN det unikt — den korta formen en organisation redan använder i sina egna kalkylblad (CEO, TECH, PROC). `manager` är en valfri employee-IRI från people_list. LISTA FÖRST OCH RÄKNA MED KOLLISIONER: eftersom både name och code är unika MISSLYCKAS det att posta en avdelning som redan finns, i stället för att vara idempotent, så en import som förutsätter create per rad kör fast första gången den möter en avdelning organisationen redan har — vanligtvis en kvarlämnad från en testperiod. Reglera den raden med departments_update i stället för att skapa runt den. DET FINNS INGEN DELETE: backend exponerar ingen delete för en avdelning, så ett felaktigt namn eller kod korrigeras på plats med departments_update och kan aldrig tas bort. Kräver ROLE_EMPLOYEES_MANAGER. Skrivåtgärd.

Departments_update

Verktyg

departments_updateByt namn på en avdelning, ge den en kod, eller sätt dess chef. Detta är verktyget som gör en avdelningsimport möjlig snarare än bara bekväm: `name` och `code` är båda unika, så en avdelning organisationen redan har — den enda "HR"-raden ett proof-of-concept ofta lämnar efter sig — kan inte skapas igen, och den riktiga listan nås genom att KORRIGERA den raden i stället för att kollidera med den. Bara de fält som skickas ändras, så att skicka enbart `code` lämnar namnet intakt. `id` är det numeriska id:t från departments_list; `manager` är en employee-IRI från people_list. DET FINNS INGEN DELETE, vilket gör detta till hela reparationshistorien: en avdelning skapad med ett stavfel rättas här, och en som inte borde finnas kan bara döpas om, inte tas bort. Kräver ROLE_EMPLOYEES_MANAGER. Skrivåtgärd.

Locations_create

Verktyg

locations_createSkapa en plats (name krävs; valfria officeOpenHour/officeCloseHour som sekunder efter midnatt). Använd den verkliga adressen i stället för ett projekt- eller investeringsnamn — det är vad någon som står framför tillgången behöver, och projektnamnet bärs redan någon annanstans. Kräver ROLE_LOCATIONS_MANAGER. Skrivåtgärd.

Locations_update

Verktyg

locations_updateByt namn på en plats eller ändra dess öppettider. Kräver ROLE_LOCATIONS_MANAGER. Skrivåtgärd.

Clients_import

Verktyg

clients_importLäs in MÅNGA kunder i ett enda anrop, nyckel `externalRef` — verktyget för att föra över en kund- eller köparlista från ett annat system, där clients_create skulle innebära en rundresa per person. Raderna stäms av mot organisationen: en okänd externalRef skapar, en känd uppdaterar på plats, en identisk rad hoppas över, så att köra om ändrar ingenting. Referensen lagras som `externalPaymentCustomerId`, den enda externreferenskolumn en kund har, och `clients_list` filtrerar på den. MATCHA INTE kunder på namn i stället — en köparlista är full av delade efternamn och gemensamma köp. Varje resultat har `counterpartyId`, vilket är vad contracts_import och contracts_create behöver. Två fallgropar schemat inte kan uttrycka: en `tin` AVVISAS utan en `tinCountry`, och en kontaktrad behöver en e-postadress, så ett telefonnummer ensamt kan inte skapa en. SKICKA dryRun:true FÖRST vid en riktig onboarding-inläsning. Max 500 rader. Kräver ROLE_CLIENTS_MANAGER. Skrivåtgärd.

Contracts_import

Verktyg

contracts_importLäs in MÅNGA avtal i ett enda anrop, nyckel `name` — avtalsnumret. Till skillnad från en kund eller en tillgång har ett avtal INGEN externreferenskolumn, så namnet ÄR idempotensnyckeln; en batch som innehåller samma namn två gånger AVVISAS I SIN HELHET i stället för att uppdatera ett avtal två gånger, eftersom ett dubblerat nummer betyder att källan är fel. `counterpartyExternalRef` löser upp köparen via samma referens som clients_import fick, så de två sammansätts: importera kunderna, sedan avtalen, utan att någonsin hantera ett numeriskt counterparty-id — en referens som inte matchar någon kund gör att den raden misslyckas i stället för att skapa ett avtal utan part. `direction` är "out" (vi säljer) eller "in" (vi köper); kolumnen har ingen begränsning på serversidan, så ett felaktigt ord lagras och avtalet matchar sedan inget filter någonstans. SKICKA dryRun:true FÖRST. Max 500 rader. Kräver ROLE_CONTRACTS_MANAGER. Skrivåtgärd.

Assets_import

Verktyg

assets_importLäs in MÅNGA tillgångar i ett enda anrop, nyckel `assetCode` — verktyget för att föra över ett inventarium från ett annat system, där assets_create skulle innebära en rundresa per post. Raderna stäms av mot organisationen: en okänd assetCode skapar, en känd uppdaterar på plats, en identisk rad hoppas över, så att köra om ändrar ingenting och en halvfärdig körning är säker att upprepa. `parentAssetCode` nästlar en rad under en annan VIA DESS KOD, upplöst mot organisationen och mot tidigare rader i samma batch; en överordnad post som aldrig löses upp gör att den raden misslyckas i stället för att tyst bli föräldralös. TRE FÄLT GÖR POSTEN LÄSBAR i stället för bara ett rent namn: `attributeSetName` är kategorin gränssnittet visar som Typ zasobu och som listan grupperas efter, `locationName` är var saken fysiskt befinner sig, och `attributes` är en {name: value}-karta för yta, våning, pris och allt annat källan bär med sig. Alla tre löses upp VIA NAMN — kategorin, platsen, attributdefinitionerna och deras bindningar hittas eller skapas åt dig, så en anropare hanterar aldrig någon av dessa IRI:er, och namn matchas skiftlägesokänsligt så att "Mieszkanie" och "mieszkanie " inte kan dela upp listan i två. `attributes` behöver en kategori att hänga på,…

Assets_create

Verktyg

assets_createSkapa en tillgång (name + status + bookingType krävs; status = in-stock | damaged | sold, bookingType = minutes | days | single-days | permanently). bookingType krävs även när tillgången aldrig bokas — skicka "permanently" för något som inte lånas ut, och lämna bookingAllowed false. Två fält bär strukturen: `parent` nästlar en tillgång under en annan (en enhet under en byggnad, en skärm under ett skrivbord), och `attributeSet` sätter den kategori tillgångslistan grupperas efter, vilket också är där egna attribut som yta eller våning finns. `assetCode` är en UNIK systemövergripande identifierare — använd den för att hålla det id tillgången har i källsystemet den importerades från, så att en återimport uppdaterar i stället för att duplicera. Kräver ROLE_PROPERTIES_MANAGER. Skrivåtgärd.

Assets_update

Verktyg

assets_updateUppdatera en tillgång via id — name, status, kategori, överordnad post, assetCode, serienummer, datum, plats eller bokningsinställningar. Så här flyttas en tillgång från in-stock till sold. Observera att statusordförrådet är in-stock | damaged | sold och saknar ett reserverat tillstånd, så en reservation måste modelleras på något annat sätt. Kräver ROLE_PROPERTIES_MANAGER. Skrivåtgärd.

Asset Meters_update

Verktyg

assetMeters_updateUppdatera en tillgångsmätare — dess etikett, mediatyp, enhet eller aktiva tillstånd. Använd den för att ta en mätare ur bruk (t.ex. en förbrukning som nu faktureras direkt) utan att radera dess avläsningshistorik. Kräver ROLE_PROPERTIES_MANAGER. Skrivåtgärd.

Asset Bookings_create

Verktyg

assetBookings_createTilldela en tillgång till en person eller ett projekt. `property` är tillgångens IRI (/assets/{id}) och krävs. Ange innehavaren på ETT av tre sätt: `relation` med en enda IRI (/people/{id} för en person, /projects/{id} för ett projekt), eller `relationName` (employee | project) plus `relationId`, eller fältet `employee`/`project`-IRI direkt. Exakt en innehavare måste kunna lösas upp — att ange ingen avvisas med "Employee or Project must be set." och att ange båda med "Employee and Project cannot be set at the same time." TVÅ SAKER SOM INTE FINNS I SCHEMAT OCH SOM GER DIG 422: tillgången måste redan vara bokningsbar (`bookingAllowed: true` — sätt den med assets_update), en affärsregel som gäller för VARJE anropare inklusive en manager, avvisas med "This asset is not reservable."; och tillgångens egen `bookingType` (minutes | days | single-days | permanently) är det som ger mening åt `duration`/`endDate` — en plats som tilldelas en person på obestämd tid är `permanently` med ett `startDate` och inget slutdatum. Samtidiga bokningar på en tillgång serialiseras på serversidan, så en överlappning avvisas i stället för att dubbelbokas. Kräver ROLE_PROPERTY_BOOKINGS_MANAGER för att boka å någon annans vägnar. Skrivåtgärd.

Asset Bookings_update

Verktyg

assetBookings_updateUppdatera en befintlig tillgångsbokning — dess datum, längd, faktureringsbelopp/valuta eller andel av mätarförbrukning. `relationName` och `relationId` krävs av innehållet, så skicka den innehavare bokningen redan har om den inte medvetet ska flyttas. För att avsluta en tilldelning, använd assetBookings_cancel, inte ett endDate bakåt i tiden. Kräver ROLE_PROPERTY_BOOKINGS_MANAGER. Skrivåtgärd.

Asset Bookings_cancel

Verktyg

assetBookings_cancelFrisläpp en tillgång — sättet en tilldelning avslutas på, och det närmaste denna resurs kommer en delete (det finns ingen delete-operation). Tar emot bokningens id och en `cancelReason` på 3–255 tecken; bokningen behålls och stämplas med `cancelledAt` så att historiken bevaras, och tillgången blir fri för nästa innehavare. Detta är anropet att göra när en anställd slutar: assetBookings_list filtrerat på `employee` hittar vad de innehar, och detta frisläpper var och en. Kräver ROLE_PROPERTY_BOOKINGS_MANAGER. Skrivåtgärd.

Work Times_log

Verktyg

workTimes_logLogga en tidrapportspost för den anslutna Flowtly-användaren (date, durationMinutes, project, notes). ANTECKNINGEN MÅSTE KLARA SERVERNS KONTROLL AV FÖR TUNN BESKRIVNING, vilket en batch-efterregistrering drabbas av upprepade gånger: den behöver ANTINGEN ungefär 32 tecken (det exakta golvet är en per-organisationsinställning, och en organisation kan sätta det till 0 för att stänga av kontrollen) ELLER en "#"-ärendereferens ELLER en http(s)-länk — vilken som helst av dem räcker. "Flowtly – Scallier" avvisas; "Flowtly – Scallier #FLOW-123" gör det inte. 422:an anger propertyPath `description`, vilket är serverns namn för det fält detta verktyg kallar `notes`. Skrivåtgärd.

Tasks_create

Verktyg

tasks_createSkapa en projektuppgift (title + project krävs; valfritt status, list, assignees, dueAt, priority). Skrivning.

Tasks_update

Verktyg

tasks_updateUppdatera en projektuppgift via id — ändra status (inkl. markera som klar), assignees, dueAt, title osv., eller FLYTTA uppgiften till ett annat projekt genom att skicka `project` (omplacering; uppgiftslistan rensas om du inte samtidigt anger en `list` i målprojektet, eftersom en lista tillhör ett projekt). Skrivåtgärd.

Task Comments_create

Verktyg

taskComments_createLägg till en kommentar på en projektuppgift (task-id + content). Skrivning.

Suppliers_create

Verktyg

suppliers_createSkapa en ny leverantörspost (name, tinType, costGroup krävs). Skrivning.

Suppliers_update

Verktyg

suppliers_updateUppdatera en leverantörs uppgifter (namn, skatte-id, betalningsvillkor, etc.) via id. Skrivning.

People_create

Verktyg

people_createSkapa en person-/medarbetarpost (firstname + lastname krävs; valfritt companyEmail, contactEmail, contactPhone). Skrivning.

People_update

Verktyg

people_updateUppdatera en person-/medarbetarpost via id (name, companyEmail, contactEmail, contactPhone, etc.). Skrivning.

People_delete

Verktyg

people_deleteTa bort en medarbetar-/personpost via id (t.ex. för att ta bort en platshållar-/dummymedarbetare). Kräver ROLE_EMPLOYEES_MANAGER; backend kör en borttagningsprocess som även kopplar loss relaterade poster. Stor påverkan, oåterkalleligt. Skrivning.

Cost Groups_create

Verktyg

costGroups_createSkapa en kostnadsgrupp/kostnadsställe (name + type krävs). Skrivning.

Cost Groups_update

Verktyg

costGroups_updateUppdatera en kostnadsgrupps/kostnadsställes namn eller typ via id. Skrivning.

Tag Groups_create

Verktyg

tagGroups_createSkapar en tagggrupp (namn krävs) för att ordna besläktade taggdefinitioner. Så skapar du också en behållare för en PROJEKTMAPP: skicka allowedRelations: ["project"], så blir gruppens definitioner mappar i projektlistan. En grupp med tomt allowedRelations är universell och behandlas INTE som en mapp. Skrivning.

Tag Definitions_create

Verktyg

tagDefinitions_createSkapar en taggdefinition (name, level, tagGroup krävs) inom en tagggrupp. När gruppens allowedRelations innehåller "project" ÄR varje definition här en projektmapp — det är det här verktyget som skapar en. Skrivning.

Tags_create

Verktyg

tags_createKopplar en taggdefinition till en post (tagDefinition + relationName + relationId; t.ex. relationName "counterparty" för att tagga en leverantör). Använd relationName "project" för att LÄGGA ETT PROJEKT I EN MAPP, där tagDefinition är mappen. Endast rotprojekt (utan förälder) grupperas i mappar — faser följer sin förälder, så placera roten så följer trädet med. Skrivning.

Clients_create

Verktyg

clients_createSkapa en ny klientpost (name, country, currency, status, tinType krävs). Skrivning.

Clients_update

Verktyg

clients_updateUppdatera en klientpost via id. Skrivning.

Client Contacts_create

Verktyg

clientContacts_createSkapa en kontaktperson för en klient (client, type, name, email krävs). Skrivning.

Bank Accounts_create

Verktyg

bankAccounts_createSkapa ett bankkonto (type, name, currency, defaultImportFormat krävs). Skrivning.

Bank Accounts_update

Verktyg

bankAccounts_updateUppdatera ett bankkonto via id. Skrivning.

Banks_create

Verktyg

banks_createSkapa en bank — institutionen ett bankkonto tillhör, inte själva kontot (det är bankAccounts_create). Skrivåtgärd.

Banks_update

Verktyg

banks_updateUppdatera en bank via id. Så här döljs och visas en bank igen: sätt `hidden` till true för att ta bort en från väljarna utan att radera den, false för att ta tillbaka den. Det finns inget separat arkiveringsverktyg eftersom API:et inte har någon arkiveringsåtgärd för en bank — flaggan är mekanismen. Skrivåtgärd.

Counterparty Bank Accounts_create

Verktyg

counterpartyBankAccounts_createKoppla ett bankkonto till en motpart (counterparty + accountNumber). Skrivning.

Contracts_create

Verktyg

contracts_createSkapa ett avtal. Skrivning.

Contracts_update

Verktyg

contracts_updateUppdatera ett avtal via id. Skrivning.

Contracts_delete

Verktyg

contracts_deleteTa bort ett avtal via id. Skrivning.

Tax Groups_create

Verktyg

taxGroups_createSkapa en skattegrupp (name + type krävs). Skrivning.

Tax Groups_update

Verktyg

taxGroups_updateUppdatera en skattegrupps namn eller typ via id. Skrivning.

Tax Rules_create

Verktyg

taxRules_createSkapa en skatteregel. Skrivning.

Tax Rules_update

Verktyg

taxRules_updateUppdatera en skatteregel via id. Skrivning.

Configs_update

Verktyg

configs_updateUppdatera ett organisationskonfigurationsvärde via id (type + name krävs; behörighet kontrolleras per konfigurationsnyckel av backend). Skrivning.

Organization Addresses_update

Verktyg

organizationAddresses_updateUppdatera organisationens PRENUMERATIONSADRESSPOST (id krävs; skicka bara de fält som ändras). DETTA ÄR POSTEN MEJLFOTEN RENDERAS FRÅN: fotens {{organizationAddress}} sätts samman som "street, postCode city" härifrån, INTE från config-nycklarna organization-billing-* som fakturor och KSeF använder som säljaradress. De två lagringarna glider isär, och att foten läser denna är en känd brist — så när en signatur visar en adress kunden svär att de rättat, har de rättat faktureringsnycklarna medan denna post fortfarande håller det gamla värdet. `street` är en enda fritextkolumn som även måste bära husnumret: NIP/GUS-uppslaget fyller bara i gatunamnet och kastar tyst bort hus- och lägenhetsnummer, vilket är varför adresser här läser "ul. Example" utan nummer. Skriv hela "ul. Example 8/12" för att åtgärda det. LÄS FÖRST med organizationAddresses_list och jämför mot configs_get på organization-billing-street innan du skriver, så att du kopierar kundens eget underhållna värde i stället för att hitta på ett. Kräver ROLE_BILLINGS_MANAGER. Skrivåtgärd.

Organization Mail Footer_update

Verktyg

organizationMailFooter_updateUppdatera organisationens sidfotstext för utgående e-post. Skrivning.

Permission Groups_create

Verktyg

permissionGroups_createSkapa en behörighetsgrupp (name krävs; roles = lista med ROLE_*-strängar den beviljar). Skrivning.

Permission Groups_update

Verktyg

permissionGroups_updateUppdatera en behörighetsgrupps namn, beskrivning eller beviljade roller via id. Skrivning.

People_invite

Verktyg

people_inviteGe en befintlig person en INLOGGNING: skapar en väntande organisationsinbjudan och mejlar den till dem, på organisationens konfigurerade gränssnittsspråk. Detta är steget people_create och people_setPermissionGroups INTE gör — en person med behörighetsgrupper kan fortfarande inte logga in förrän de blivit inbjudna och accepterat. Kräver personens e-post; misslyckas om de redan har en inloggning. Onboarding-ordning: people_create (post) -> people_invite (inloggning) -> people_setPermissionGroups (rättigheter). Skrivåtgärd.

People_set Permission Groups

Verktyg

people_setPermissionGroupsSätt (ersätt) en persons HELA uppsättning behörighetsgrupper via numeriska grupp-id:n (se permissionGroups_list — t.ex. ger gruppen "Business Owner" ROLE_ADMIN): skicka varje grupp personen ska ha kvar, och [] tar bort alla. Ger åtkomst; skapar INTE en inloggning eller mejlar personen — det är people_invite. FÄLLAN: att ge någon sin FÖRSTA grupp flyttar dem till den beräknade modellen, där roller kommer från grupper och personbundna undantag, och en roll som getts till dem för hand utanför den modellen försvinner i samma anrop — en ROLE_ADMIN given till en person är precis den typ detta tar bort. Det gäller åt andra hållet också: att rensa deras sista grupp flyttar tillbaka dem från modellen och får de äldre rollerna att återuppstå. Listorna overridesAdded/overridesRemoved säger ingenting om detta; de beskriver undantag och förblir tomma medan den faktiska åtkomsten ändras. Svaret rapporterar i stället skillnaden mellan de roller personen hade före anropet och efter det, som rolesLost och rolesGained — det är paret att läsa när anropet återkommer. rolesLost null (inte []) betyder att ögonblicksbilden tagen före skrivningen inte kunde läsas och att förändringen är OKÄND, med anledningen i roleDeltaUnavailable: den…

People_set Role Overrides

Verktyg

people_setRoleOverridesSätt (ersätt) de roller EN person får utöver — eller fråntas från — sina behörighetsgrupper. Använd en grupp först (people_setPermissionGroups): grupper är den avsedda abstraktionen och skalar till fler än en person, så använd ett undantag bara där en enskild individ verkligen skiljer sig från varje grupp. ERSÄTTER båda listorna i sin helhet, så läs people_getPermissions först och skicka tillbaka varje undantag personen ska behålla; att utelämna en lista rensar den. Roller är ROLE_-konstanter — permissionGroups_list visar de organisationen redan använder. En roll som finns i både added och removed avvisas i stället för att gissas fram. Returnerar samma upplösta ögonblicksbild som people_getPermissions, så resultatet kan bekräftas utan ett andra anrop. Skapar INTE en inloggning — se people_invite. Kräver ROLE_ROLES_MANAGER. Skrivåtgärd.

Holiday Days Limits_create

Verktyg

holidayDaysLimits_createGe en person ett saldo av en ledighetstyp, gällande från ett datum. `seconds`, INTE dagar (#3763): en 8-timmarsdag är 28800, så 21 dagar är 604800 och ett övertidssaldo på 2h30 är 9000 — en siffra som inte hade någonstans att ta vägen så länge detta lagrades i hela dagar. `employee` och `holidayType` är IRI:er (people_list respektive holidayTypes_list ger dem); `variant` är den avtalstyp saldot tillhör (uop, b2b, uz, uod). För att KORRIGERA ett befintligt saldo, lägg till en rad med ett senare dateFrom i stället för att redigera den gamla — raden som gäller är den senaste vars dateFrom har inträffat, så historiken förblir intakt och en korrigering kan läggas in innan den träder i kraft. (employee, holidayType, variant, dateFrom) är unikt, så att posta samma dag igen ersätter ingenting och misslyckas. Kräver ROLE_HOLIDAYS_MANAGER. Skrivåtgärd.

Holiday Days Limits_update

Verktyg

holidayDaysLimits_updateRätta en rad som matats in fel — ett stavfel i beloppet, fel variant. Belopp anges i SEKUNDER (#3763). Detta är INTE hur ett saldo som ÄNDRAS över tid registreras: för det, skapa en ny rad med holidayDaysLimits_create med ett senare dateFrom, vilket bevarar vad det tidigare saldot var och när. Att redigera på plats skriver om historiken och gör den gamla siffran oåterkallelig. holidayDaysLimits_list hittar id:t. Kräver ROLE_HOLIDAYS_MANAGER. Skrivåtgärd.

Holiday Requests_cancel

Verktyg

holidayRequests_cancelAvbryt en ledighetsansökan — använd den för att rensa en ansökan som aldrig ska hanteras, till exempel en rad kvarlämnad av en testperiod, ett test eller någon som slutat. TVÅ SAKER SOM ÖVERRASKAR FOLK. (1) DEN RADERAR INTE RADEN: backend sätter status till `canceled` i stället för att ta bort raden. MEN EN AVBRUTEN ANSÖKAN FÖRSVINNER FRÅN holidayRequests_list — verifierat i produktion: därefter returnerar varken den ofiltrerade listan eller status=canceled den. Så det går inte att läsa tillbaka vad som avbröts och det finns ingen ångra-funktion via MCP; var säker på id:t innan anropet görs. (2) DET ÄR INTE SAMMA SAK SOM ATT AVSLÅ. Att avslå registrerar ett beslut — det skriver en godkännandelogg-post med ditt namn och MEJLAR DEN ANSTÄLLDA att deras ledighet nekades — medan avbryt bara meddelar HR, och bara när `notify-hr-managers-of-leave-activity` är påslaget för organisationen. För en rad som aldrig var en genuin ansökan är avbryt det ärligare och tystare alternativet. FUNGERAR BARA PÅ EN VÄNTANDE (`requested`) ANSÖKAN när du inte är dess ägare: en godkänd ansökan har redan gett upphov till en Holiday som detta inte tar bort, så att avbryta en skulle lämna en bokad frånvaro bakom en ansökan som visar `canceled`. Kräver ROLE_HOLIDAYS_MANAGER för någon…

Holidays_create

Verktyg

holidays_createRegistrera ledighet en person faktiskt tar ut — själva den bokade frånvaron, inte rättigheten (holidayDaysLimits_create) och inte en väntande ansökan (ledighetsansökningar, som fortfarande behöver godkännas). Det detta skriver är redan överenskommen ledig tid, så den visas direkt i holidays_list och behöver inget godkännandesteg. `employee` är en IRI från people_list; `type` är ett id från holidayTypes_list. `dateFrom`/`dateTo` inklusive, och ett anrop täcker ett helt intervall i stället för en rad per dag. Två saker biter: en typ vars `descriptionRequired` är true (läs holidayTypes_list först — `vacations` är det ofta) AVVISAR en create utan `description`; och `pick-up-day` är tid som redan är intjänad, så den FÖRBRUKAR INTE den årliga rätten som `vacations` gör — att registrera en dag som getts tillbaka för en lördaglig helgdag som `vacations` äter tyst upp en dag av någons rättighet. Kontrollera holidays_list för samma person och datum innan skapande: denna slutpunkt registrerar gärna samma frånvaro två gånger. VARJE CREATE MEJLAR DEN ANSTÄLLDA, till deras egen företagsadress, om att frånvaron lagts till — så att ladda in ett års historik någon redan levt igenom kommer in i deras inkorg rad för rad, och för personal som…

Holidays_delete

Verktyg

holidays_deleteTa bort en bokad frånvaro helt och hållet — raden raderas, till skillnad från holidayRequests_cancel som bara växlar en ansökans status. Använd den för att rensa frånvaro som aldrig borde räknats: demo- eller testrader lämnade av en testperiod, eller sådana som blivit föräldralösa när deras anställd raderades (people_delete kopplar loss frånvaro i stället för att ta bort den, så den överlever med ett tomt anställd-namn). DETTA PÅVERKAR RIKTIGA SIFFROR: en bokad frånvaro är `payrollEligible` och förbrukar personens rättighet, så att radera en ändrar deras ledighetssaldo — poängen vid rensning av testdata, och en dataförlustbugg när raden var äkta. Ingen ångra-funktion, ingen avisering. Läs holidays_list först och var säker på att raden inte är riktig historik: en beskrivning på organisationens eget språk, eller datum som matchar en faktisk frånvaro, betyder oftast att den är det. Kräver ROLE_HOLIDAYS_MANAGER. Skrivåtgärd.

Holiday Types_create

Verktyg

holidayTypes_createLägg till en ledighetstyp organisationen ännu inte erbjuder — ett sabbatsår, obetald barnomsorg, en utbildningsdag — så att frånvaro kan bokas mot den med holidays_create och ett saldo beviljas med holidayDaysLimits_create. `name` (3–64 tecken) är vad folk väljer bland vid bokning; `color` och `icon` är hur den visas i kalendern; `reducesWorkingTime` false markerar ledig tid som INTE sänker månadens förväntade timmar; och `descriptionRequired` true gör att typen kräver en anledning, vilket holidays_create sedan upprätthåller — se det verktyget för vad det avvisar. `status` har som standard `active`, så en typ som skapas utan eftertanke erbjuds omedelbart till alla. LÄS holidayTypes_list FÖRST: typer är organisationsövergripande, och DET FINNS INGEN DELETE — en dubblett eller ett felstavat namn kan bara döljas igen genom att sätta status till inactive med holidayTypes_update, och den behåller under tiden varje frånvaro bokad mot den. Kräver ROLE_HOLIDAYS_MANAGER. Skrivåtgärd.

Holiday Types_update

Verktyg

holidayTypes_updateÄndra en ledighetstyp, och framför allt SLÅ PÅ EN IGEN. `status` växlar mellan `active` och `inactive`, och en inaktiv typ avvisas av holidays_create — så att registrera historisk ledighet mot en typ organisationen sedan dess pensionerat börjar här, och detta är det som öppnar en ledighetshistorik-import i stället för att skicka någon in i apphuvudet. ATT AVAKTIVERA ÄR INTE ATT RADERA, och det finns ingen delete: frånvaro som redan bokats behåller en inaktiv typ och läses fortfarande med den i holidays_list, så inaktiv betyder bara "erbjuds inte för nya bokningar". FÄLLAN SOM FÖLJER AV DETTA: återaktivera `vacations` för att ladda in förra årets frånvaro, glöm att sätta tillbaka den till `inactive`, och du har inte bara avslutat en import — du har ändrat vad organisationen erbjuder idag, eftersom varje anställd som bokar ledighet nu ser den typen på listan igen. Sätt tillbaka den i samma session du importerade. `descriptionRequired` griper också in i holidays_create, som avvisar en bokning utan beskrivning när den är påslagen; att slå på den lämnar redan registrerad frånvaro orörd. `id` är sträng-id:t från holidayTypes_list (`vacations`, `not-paid`), och bara de fält som skickas ändras. Kräver ROLE_HOLIDAYS_MANAGER. Skrivåtgärd.

Projects_create

Verktyg

projects_createSkapa ett projekt (name + type krävs; type = fixed-price|time-and-material|non-billable|internal; valfritt dateFrom/dateTo, client, publicDescription, notes, priceNet). Skrivning.

Projects_update

Verktyg

projects_updateUppdatera ett projekt via id (name, type, dates, description, etc.). Skrivning.

Project Members_create

Verktyg

projectMembers_createSätt en person PÅ ett projekt (employee + project-IRI:er krävs, t.ex. "/people/204" och "/projects/243"; valfri position = employee|tech-lead|account-manager|viewer, standard employee). DETTA ÄR ÅTKOMSTKONTROLLEN, inte en etikett: en person som inte är medlem ser inte projektet alls — det saknas i deras projektlista och de kan inte logga tid mot det — så detta är verktyget som återställer någon som är utestängd från ett projekt. POSITION ÄR INTE KOSMETISKT: en användare med en projektbunden roll ser bara de projekt där deras medlemskapsposition matchar den — ROLE_PROJECTS_LEAD matchar tech-lead, ROLE_PROJECTS_VIEWER matchar viewer — så att ge en projektledare en `employee`-rad lämnar dem lika blinda som utan någon rad alls. Medlemskap KASKADERAR INTE: att sätta någon på en överordnad mapp ger dem ingenting på projekten under den, så ett mappträd behöver ett anrop per projekt. Den unika nyckeln är (employee, project, position), vilket betyder att positioner staplas i stället för att ersätta — en person kan ha employee OCH tech-lead på samma projekt som två separata rader, och att lägga till tech-lead till någon som redan är employee där varken tar bort eller uppgraderar employee-raden (använd…

Project Members_update

Verktyg

projectMembers_updateÄndra ett befintligt medlemskaps position via id (employee|tech-lead|account-manager|viewer) — hämta id:t från projectMembers_list eller arrayen projectMembers i projects_get. Använd detta för att befordra eller degradera PÅ PLATS; använd projectMembers_create för att lägga till en andra, ytterligare position vid sidan av den som redan hålls. Att ändra en position kan ÅTERKALLA insynen i projektet för någon vars roll är projektbunden (en ROLE_PROJECTS_LEAD degraderad från tech-lead till employee slutar se det). Kan inte flytta ett medlemskap till en annan person eller ett annat projekt — radera och skapa på nytt för det. Kräver ROLE_PROJECTS_MANAGER. Skrivåtgärd.

Project Members_delete

Verktyg

projectMembers_deleteTa bort en person FRÅN ett projekt via medlemskaps-id — hitta det med projectMembers_list eller i projects_get:s array projectMembers. Detta ÅTERKALLAR ÅTKOMST: när den sista medlemskapsraden för den personen på det projektet är borta försvinner projektet från deras vy och de kan inte längre logga tid mot det, vilket är precis hur ett projekt tyst försvinner för någon. Redan loggade timmar RADERAS INTE och stannar kvar på projektet; personen kan bara inte längre se eller lägga till på dem. Att radera en position lämnar eventuella andra positioner samma person har på samma projekt intakta. Kräver ROLE_PROJECTS_MANAGER. Oåterkalleligt (att skapa på nytt ger en ny rad och skickar en ny avisering), stor påverkan. Skrivåtgärd.

Project Templates_create

Verktyg

projectTemplates_createSkapa en återanvändbar projektritning från ett strukturdokument (version, project, phases och deras lists/tasks). Förskjutningar inuti den är RELATIVA — startOffsetDays och durationDays räknas i dagar från det startDate som anges vid instansiering, så en mall duger för varje framtida start. project.name i strukturen är en platshållare; skriv över den per kund vid instansiering. Strukturen valideras på serversidan mot schemat för sin deklarerade version, och ett brott anger den felande JSON-pekaren. Skrivåtgärd.

Project Templates_update

Verktyg

projectTemplates_updateUppdatera en projektmall via id. Struktur-kolumnen lagras och ersätts I SIN HELHET, aldrig sammanslaget — skicka hela dokumentet, annars försvinner de delar som utelämnas. Läs den aktuella mallen med projectTemplates_get först. Att ändra en mall rör INTE projekt som redan instansierats från den; det finns ingen bakåtspridning. Skrivåtgärd.

Project Templates_delete

Verktyg

projectTemplates_deleteRadera en projektmall via id. Mjuk radering, och den rör INTE projekt som redan skapats från mallen — de är vanliga projekt och lever vidare. Skrivåtgärd.

Project Templates_instantiate

Verktyg

projectTemplates_instantiateBygg ett riktigt projekt från en mall — projektet, dess faser, dess uppgiftslistor och varje uppgift, i ETT atomärt anrop. startDate krävs och är ankaret varje startOffsetDays i mallen räknas mot. Skicka name för att skriva över mallens platshållarnamn, och client för att koppla det nya projektet till en kund: att instansiera två gånger mot SAMMA kund är hur en kund hamnar med flera uppdrag, vart och ett sitt eget projekt. Returnerar det skapade projektet. Skrivåtgärd.

Projects_archive

Verktyg

projects_archiveArkiverar ett projekt via id — sättet att avveckla ett projekt som inte kan raderas för att det har registrerad tid, fakturor eller budgetar kopplade till sig. Går att ångra med projects_unarchive. Bättre än att backdatera dateTo, vilket bara får projektet att se avslutat ut. Skrivning.

Projects_unarchive

Verktyg

projects_unarchiveÅterställer ett arkiverat projekt via id och ångrar projects_archive. Skrivning.

Responsibility Groups_create

Verktyg

responsibilityGroups_createSkapa en ansvarsgrupp / RACI-område (name krävs; valfria description och responsibleEmployee = den ansvariga personen, angiven som ett rent anställnings-id som 6 (från people_list) eller IRI:n /people/6). Detta är toppnivåobjektet 'Odpowiedzialności'. Lägg till enskilda ansvarsområden under den via responsibilities_create. Skrivning.

Responsibility Groups_update

Verktyg

responsibilityGroups_updateUppdatera en ansvarsgrupp via id (name, description, responsibleEmployee = employee-id eller IRI). Skrivning.

Responsibilities_create

Verktyg

responsibilities_createSkapa ett ansvarsområde inom en grupp (responsibilityGroup = grupp-id eller IRI, + name, krävs; valfri description; valfri parent = en annan ansvars-IRI för nästling). Tilldela personer till den via responsibilityEmployees_create. Skrivning.

Responsibilities_update

Verktyg

responsibilities_updateUppdatera ett ansvarsområde via id (name, description, parent, responsibilityGroup = grupp-id eller IRI). Skrivning.

Responsibility Employees_create

Verktyg

responsibilityEmployees_createTilldela en medarbetare till ett ansvarsområde (responsibility = ansvars-id eller IRI, employee = employee-id eller IRI, percentage 0–100, allt krävs; valfritt targets och description). Skrivning.

Responsibility Employees_update

Verktyg

responsibilityEmployees_updateUppdatera en ansvarstilldelning via id (percentage, targets, description). Skrivning.

Responsibility Employees_delete

Verktyg

responsibilityEmployees_deleteTa bort en medarbetares tilldelning från ett ansvarsområde via id. Skrivning.

Leads_create

Verktyg

leads_createSkapa ett lead (utgående/inkommande prospektmål; companyName, source, owner, kopplad client valfritt). Ett nytt lead har alltid status=open — status kan inte sättas här och flyttas bara via leads_convert, leads_lose och leads_reopen. Skrivåtgärd.

Leads_update

Verktyg

leads_updateUppdatera ett lead via id (company, website, source, owner, kopplad client, stage, doNotContact). INTE status eller lostReason: de avvisas av entiteten och ignoreras tyst av denna slutpunkt, så att stänga ett lead kräver leads_lose (med ett lostReasonId) och att ångra det kräver leads_reopen. Att flytta `stage` går genom tratten; det stänger inte leadet. Skrivåtgärd.

Leads_delete

Verktyg

leads_deleteTa bort en lead via id (mjuk borttagning). Skrivning.

Leads_convert

Verktyg

leads_convertKonvertera en kvalificerad lead till en Client + en kontakt per lead-kontakt + en öppen Deal. Kräver en befintlig klient (leadens klient eller en clientId i body). Skrivning.

Leads_lose

Verktyg

leads_loseStäng ett lead som FÖRLORAT — sätter status=lost och stämplar closedAt. KRÄVER lostReasonId, `id`:t för en post i leadLostReasons (kör leadLostReasons_list först; det är en pickelista, så fritext avvisas med 422). Detta är det ENDA sättet att registrera ett lead som förlorat: leads_update ignorerar status, och doNotContact betyder "kontakta aldrig igen", vilket är ett annat och mycket starkare påstående än "vi vann inte den här". Det flyttar INTE leadets stage — LeadStage har ingen slutflagga, så leadet behåller sin position i tratten och leads_reopen kan återställa den exakt. Skrivåtgärd.

Leads_reopen

Verktyg

leads_reopenÅngra leads_lose — sätter status tillbaka till open och rensar closedAt och den förlorade anledningen. Stage rörs inte, så leadet återupptas precis där det var. Använd detta när ett lead stängdes mot fel post eller prospektet kom tillbaka. Skrivåtgärd.

Lead Activities_create

Verktyg

leadActivities_createLogga EN kontaktpunkt på en lead — en skickad inbjudan, en accepterad inbjudan, ett meddelande, ett svar, ett samtal, en uppföljning (lead + type + occurredAt krävs; channel, contact, body valfria). DET HÄR är där en prospekts kontakthistorik hör hemma: en crmNote är fri kommentar, en activity är den strukturerade, filtrerbara kontaktloggen som prospekteringsköns tidslinje renderar. Beskriv INTE kontaktpunkter i en anteckning i stället. type: invite_sent | invite_accepted | message_sent | reply_received | call | meeting | follow_up | …; channel: linkedin | email | phone | …. Skrivning.

Lead Activities_update

Verktyg

leadActivities_updateUppdatera en loggad kontaktaktivitet via id (type, channel, occurredAt, body). Skrivning.

Lead Activities_delete

Verktyg

leadActivities_deleteTa bort en loggad kontaktaktivitet via id. Skrivning.

Lead Contacts_create

Verktyg

leadContacts_createLägg till en kontaktperson till en lead (lead + name krävs; email, phone, role, linkedinUrl, isPrimary valfria). En kontakts LinkedIn-URL hör hemma i linkedinUrl, INTE i en crmNote. Skrivning.

Lead Contacts_update

Verktyg

leadContacts_updateUppdatera en lead-kontakt via id — t.ex. sätt linkedinUrl / email / phone när du hittar dem. Skrivning.

Lead Contacts_delete

Verktyg

leadContacts_deleteTa bort en leadkontakt via id. Skrivning.

Deals_create

Verktyg

deals_createSkapa en affär/möjlighet. Krävs: title, stage (från stages_list), och ett ANKARE — minst en av client eller lead. En affär utan något av dem avvisas med 422 "A deal must reference a client or a lead.", så förankra ett prospekt du inte har någon kundpost för till dess lead (`/leads/<id>` från leads_list) i stället för att hitta på en kund; skicka client (`/clients/<id>` från clients_list) när en sådan finns. Att sätta båda är tillåtet. Valfritt: amountMinor, currency, expectedCloseDate, owner, contact. Att skapa direkt i ett vunnet stage kräver dessutom client — en affär med bara ett lead kan inte vinnas. Skrivåtgärd.

Deals_update

Verktyg

deals_updateUppdatera en affär via id (title, stage, amountMinor, currency, expectedCloseDate, owner, contact, client, lead). Att flytta stage loggas automatiskt. Ankarregeln från deals_create gäller fortfarande resultatet, så det går inte att rensa den enda client eller lead en affär har — byt in en annan först. Att flytta en affär till ett vunnet stage kräver client: koppla kunden här (eller kör leads_convert) innan en affär med bara ett lead vinns. Skrivåtgärd.

Deals_delete

Verktyg

deals_deleteTa bort en affär via id (mjuk borttagning). Skrivning.

Deals_win

Verktyg

deals_winMarkera en affär som vunnen — flyttar den till ett vunnet stage och stämplar den stängd; valfri contractId kopplar ett befintligt avtal. EFTERREGISTRERA EN HISTORISK VINST: skicka valfri closedAt (ISO-8601, t.ex. "2026-05-07" eller en fullständig tidsstämpel) för att registrera datumet det FAKTISKT stängdes. Utelämna den och servern stämplar nu, vilket lägger en gammal affär i den här månadens "vunnet denna månad"-siffra — så sätt den varje gång en affär som stängdes före idag registreras. Den får inte vara i framtiden (422), och den FÅR gärna vara tidigare än affärens eget createdAt: en affär skapad idag och stängd i maj är den normala formen av en korrekt efterregistrering, inte ett fel. Affären måste REDAN referera en client: att vinna en affär med bara ett lead avvisas med 422 "Attach a customer before marking this deal Won.", eftersom det inte finns någon kund att fakturera. Gör om leadet till en kund med leads_convert, eller sätt client med deals_update, och vinn sedan. Skrivåtgärd.

Deals_lose

Verktyg

deals_loseMarkera en affär som förlorad — kräver lostReasonId (från dealLostReasons_list); valfri lostReasonNote. EFTERREGISTRERA EN HISTORISK FÖRLUST: skicka valfri closedAt (ISO-8601) för att registrera datumet det FAKTISKT stängdes, precis som deals_win gör. Utelämna den och servern stämplar nu. Den får inte vara i framtiden (422), och får gärna vara tidigare än affärens createdAt. Skrivåtgärd.

Deals_reopen

Verktyg

deals_reopenÅteröppna en vunnen/förlorad affär till öppen. Skrivning.

Lead Lists_create

Verktyg

leadLists_createSkapa en utgående prospekteringslista (name krävs). Skrivning.

Lead Lists_update

Verktyg

leadLists_updateUppdatera en utgående lista via id. Skrivning.

Lead Lists_delete

Verktyg

leadLists_deleteTa bort en utgående lista via id. Skrivning.

Lead List Memberships_create

Verktyg

leadListMemberships_createLägg till ett lead i en utgående lista (list + lead krävs; status valfritt). Ett lastContactedAt som skickas är en ögonblicksbild som ingenting sedan flyttar fram — logga kontakten som en lead-aktivitet också, annars förblir den ofrågebar. Skrivåtgärd.

Lead List Memberships_update

Verktyg

leadListMemberships_updateUppdatera ett leads medlemskap i en lista — t.ex. sätt utskicksstatus (contacted/replied/bounced). status och lastContactedAt underhålls av anroparen: det som skrivs står kvar tills någon skriver igen, och att registrera lead-aktiviteter uppdaterar INTE dem. Skrivåtgärd.

Lead List Memberships_delete

Verktyg

leadListMemberships_deleteTa bort en lead från en utgående lista. Skrivning.

Work Times_update

Verktyg

workTimes_updateRätta en loggad tidrapportspost via id — dess datum, minuter, projekt eller beskrivning. Så här FLYTTAS en felregistrerad post mellan projekt: workTimes_log kan bara skapa, så utan detta blir ett fel projekt eller ett stavfel i beskrivningen permanent. Läs posten först med workTimes_get. Samma kontroll av för tunn beskrivning gäller som på workTimes_log: ungefär 32 tecken — golvet är en per-organisationsinställning och kan vara 0, vilket stänger av den — ELLER en "#"-ärendereferens ELLER en http(s)-länk, vilken som helst av de tre. Skrivåtgärd.

Work Times_delete

Verktyg

workTimes_deleteRadera en loggad tidrapportspost via id. För en dubblett eller en post loggad mot arbete som aldrig utfördes — föredra workTimes_update när posten är äkta men fel, så att timmarna stannar kvar i registret i stället för att försvinna från det. Loggade timmar matar projektens ekonomi och beläggning, så en radering ändrar tyst rapporterade siffror för en tidigare period. Skrivåtgärd.

Payment Schedule Lines_import

Verktyg

paymentScheduleLines_importLäs in ett avtals hela delbetalningsplan i ett enda anrop, i stället för en rundresa per rad. Byggt för utvecklaravtal, som betalas i byggtranchers — en enda försäljning är sex till tolv delbetalningar, och ett register över dem är hundratals. Varje rad anger sitt avtal VIA NAMN (för ett importerat utvecklaravtal, dess avtalsnummer), ett förfallodatum och ett belopp i MINDRE ENHETER — grosze, så 5 300,00 är "530000" och "5300" bokar tyst 53,00. Raderna stäms av mot de rader som redan finns på contract+date+amount+note, så en okänd rad skapas, en identisk hoppas över, och att köra om samma batch ändrar ingenting; PaymentScheduleLine har ingen externreferenskolumn, så denna naturliga nyckel är avstämningsnyckeln. En rad vars avtalsnamn inte matchar något, eller matchar FLER än ett avtal, rapporteras som misslyckad i stället för att kopplas till en gissning — att lägga en delbetalning på fel avtal förvanskar två kassaflöden samtidigt. Skicka dryRun:true först vid en riktig inläsning. Max 1000 rader. Skrivåtgärd.

Payment Schedule Lines_create

Verktyg

paymentScheduleLines_createLägg till en delbetalning i ett avtals betalningsplan — planen för vad som förväntas faktureras eller betalas, och när. Skicka avtalets IRI, ett datum och ett belopp. Detta är det som åtgärdar problemet med saknad betalningsplan som contracts_get rapporterar för ett icke-cykliskt avtal: en engångsavgift har ändå en plan, det är helt enkelt en enda rad för hela beloppet den dag det förfaller. Cykliska avtal kontrolleras inte för detta, eftersom systemet inte auto-genererar rader från en periodicitet. BELOPPET ANGES I MINDRE ENHETER — grosze, inte złoty: 5 300,00 är "530000", och "5300" bokar tyst en rad på 53,00. API:et returnerar dem på samma sätt, så läs tillbaka en om du är osäker på skalan. Läs tillbaka resultatet med contracts_paymentScheduleLines. Skrivåtgärd.

Payment Schedule Lines_update

Verktyg

paymentScheduleLines_updateÄndra en betalningsplansrad via id — dess datum, belopp eller anteckning. Använd den när en delbetalning senareläggs eller omförhandlas, i stället för att radera och skapa på nytt, så att raden behåller eventuell faktura redan matchad mot den. BELOPPET ANGES I MINDRE ENHETER — grosze, inte złoty: 5 300,00 är "530000", och "5300" bokar tyst en rad på 53,00. API:et returnerar dem på samma sätt, så läs tillbaka en om du är osäker på skalan. Skrivåtgärd.

Payment Schedule Lines_delete

Verktyg

paymentScheduleLines_deleteTa bort en betalningsplansrad via id. Raderar PLANEN, inte pengarna: en faktura eller transaktion redan matchad mot raden påverkas inte, men slutar stämmas av mot något. Föredra paymentScheduleLines_update för en delbetalning som flyttats. Skrivåtgärd.

CRM Notes_create

Verktyg

crmNotes_createLägg till en anteckning på en lead eller en affär (body + exakt en av lead/deal). Författare är den anslutna användaren. Skrivning.

CRM Notes_update

Verktyg

crmNotes_updateUppdatera en CRM-antecknings innehåll via id. Skrivning.

CRM Notes_delete

Verktyg

crmNotes_deleteTa bort en CRM-anteckning via id. Skrivning.

Organization Logo_upload

Verktyg

organizationLogo_uploadLadda upp/ersätt organisationens logotyp (base64-bild + contentType + filename). Läs den aktuella via configs_get organization-logo-url. Skrivning.

Organization Icon_upload

Verktyg

organizationIcon_uploadLadda upp/ersätt organisationens ikon/favicon (base64-bild + contentType + filename). Läs den aktuella via configs_get organization-icon-url. Skrivning.

Storage_upload

Verktyg

storage_uploadBifoga en fil till vilken post som helst Flowtlys generiska lagring accepterar — en TILLGÅNG (relationName "property"), ett projekt, en uppgift, en kund, en plats, en entreprenör, en faktura, en HR-post. Detta är den enda vägen till en tillgångsBILD: att ladda upp med relationName "property" sätter bilden appen visar för den tillgången (levereras som `file` i tillgångens data). Property har ingen bildkolumn -- bilden härleds från denna tabell vid läsning, vilket är varför inget på entiteten antyder att den finns. Det är EN plats och den senaste uppladdningen vinner, så en andra bild ersätter den första i stället för att läggas till i ett galleri; båda raderna listas kvar under /assets/{id}/documents. Detsamma gäller för location, invoices och transaction-attachments; clients, agreements och candidates samlar i stället på sig varje uppladdning under `files`; resten visas bara på sin /documents-väg. `file` utelämnas från LIST-svar om inte anropet skickar ?include=file, så läs tillbaka en post för att bekräfta att bilden landade. Skicka relationName + relationId (id:t från den postens list-verktyg; en /assets/7-IRI accepteras och reduceras) plus bytes som base64 med en contentType och filename. STORLEKSGRÄNS: bytes färdas som base64 inuti…

Storage_create Upload Ticket

Verktyg

storage_createUploadTicketSkapa en kortlivad engångsbiljett för att bifoga en STOR fil till vilken post som helst — sättet tillgångsBILDER faktiskt kommer in på, eftersom en bild alltid är över base64-taket. På property/location/invoices/transaction-attachments blir den senaste uppladdningen postens synliga bild och ersätter den föregående; på clients/agreements/candidates samlas uppladdningar på sig. Använd detta i stället för storage_upload när filen är mer än några tiotals KB: det verktyget bär bytes som base64, vilket anroparen måste skicka som text, och en 400 KB stor JPEG blir cirka 533 000 base64-tecken, långt över vad som ryms i ett svar. Skicka relationName + relationId plus ett filename; du får tillbaka en uploadUrl och en klar-att-köra curl. Skicka sedan filens RÅA BYTES till den URL:en (curl --data-binary @photo.jpg) — inte base64, inte multipart — och svaret bär den skapade Storage-posten. Biljetten går ut om 15 minuter, fungerar en gång, och kan bara filas mot den enda post den namnger. Skrivåtgärd.

Contract Attachments_create

Verktyg

contractAttachments_createBifoga ett dokument till ett avtal — normalt det undertecknade PDF-dokumentet, eller en bilaga (DPA, SLA, prisbilaga) arkiverad tillsammans med det. Skicka bytes som base64 med ett fileName och avtalets id från contracts_list; `contractId` här är ett RENT id, till skillnad från de IRI:er contracts_update tar emot för counterparty och project, även om en fullständig /contracts/<id>-IRI accepteras och stripas. STORLEKSGRÄNS: bytes färdas som base64 inuti detta anrop, så hela dokumentet måste rymmas i ett modellsvar — håll det under ungefär 150 KB, och för allt större, använd contractAttachments_createUploadTicket i stället, som är byggt exakt för detta och saknar ett sådant tak. Ett undertecknat avtal med en signaturkarta ligger vanligtvis långt över det (673 617 bytes blir 898 156 base64-tecken, flera gånger vad ett svar kan bära), och inget fel kommer tillbaka när det inte får plats, eftersom anropet inte kan sändas alls — förfrågan når aldrig servern, så kontrollera filstorleken INNAN du börjar i stället för att upptäcka det genom ett misslyckande. Detta är det som åtgärdar problemet med saknat dokument som contracts_get rapporterar, så att ett avtal som underhålls via API:et slutar ligga i appens kö för att städas upp. Ett signerat dokument kan stödja…

Contract Attachments_create Upload Ticket

Verktyg

contractAttachments_createUploadTicketSkapa en kortlivad engångsbiljett för att bifoga ett STORT dokument till ett avtal — det undertecknade PDF-dokumentet, eller en bilaga. Använd detta i stället för contractAttachments_create när filen är mer än några tiotals KB: det verktyget bär bytes som base64, vilket anroparen måste skicka som text, och ett riktigt signerat avtal (~700 KB, ~900 000 base64-tecken) är långt över vad som ryms i ett svar. Skicka avtalets id från contracts_list plus ett fileName; du får tillbaka en uploadUrl och en klar-att-köra curl. Skicka sedan filens RÅA BYTES till den URL:en (curl --data-binary @file.pdf) — inte base64, inte multipart — och svaret är den skapade bilagan. Biljetten går ut om 15 minuter, fungerar en gång, och kan bara bifogas till det enda avtal den namnger. Detta är det som åtgärdar problemet med saknat dokument som contracts_get rapporterar. Skrivåtgärd.

Incoming Invoices_create

Verktyg

incomingInvoices_createBokför en inkommande (leverantörs-) faktura eller ett underlagsdokument i ekonomin — skicka bytesen som base64 med ett fileName och receivedAt. Flowtly OCR-tolkar det och föreslår en leverantör och en matchande banktransaktion. Filen fingeravtrycks som externalId 'upload_sha256:<sha256 av bytesen>': för att undvika en dubblett, hasha bytesen och kontrollera incomingInvoices_list för det externalId:t INNAN uppladdning. Skrivning.

Invoices_export

Verktyg

invoices_exportStarta en zip-export av UTFÄRDADE fakturor för en period (from/to, båda YYYY-MM-DD, inklusive) filtrerat på FÖRSÄLJNINGSDATUM — inte utfärdande- eller skapandedatum. Endast UTFÄRDADE fakturor inkluderas; utkast och oskickade fakturor exkluderas, men korrigeringar INKLUDERAS. Valfri client begränsar till en klient (id eller IRI från clients_list). Max 200 fakturor per export — om perioden har fler, begränsa den (t.ex. exportera en månad i taget); en period med 0 utfärdade fakturor avvisas också. Det här anropet köar bara jobbet (att rendera en månad kan ta minuter) — det returnerar INTE en nedladdningslänk. Fråga invoices_exportStatus med det returnerade exportId:t tills den rapporterar "ready". Skrivning.

Invoices_export Status

Verktyg

invoices_exportStatusFråga statusen för en zip-export startad av invoices_export, via exportId. När status är "ready" innehåller svaret downloadUrl (en kortlivad signerad länk — går ut om 1 timme, se expiresAt), filename och byteSize; filens bytes returneras aldrig via det här verktyget. Om status är "failed" förklarar failureReason varför.

Invoices_import

Verktyg

invoices_importRegistrera en REDAN UTFÄRDAD utgående (försäljnings-)faktura i organisationen — för att föra in fakturahistorik vid onboarding. Det externa fakturanummer som skickas bevaras ordagrant, köparen löses upp via skatte-id (skapas om det saknas), och fakturan landar som utfärdad UTAN att en PDF renderas, ett mejl skickas till kunden eller något skickas till KSeF. Att importera ett nummer som redan finns är en no-op som rapporterar den befintliga fakturan, så en massimport är säker att köra om — men den garantin gäller bara sekventiella anrop; två genuint samtidiga importer av samma nummer kan båda landa. Skicka expectedGrossTotal (bruttobeloppet tryckt på källdokumentet) så avvisas importen om det inte stämmer med summan beräknad från raderna. buyer.tin krävs — köparen matchas aldrig på namn. Använd invoices_create, inte denna, för att utfärda en genuint ny faktura. Skrivåtgärd. Skicka dryRun:true för att FÖRHANDSGRANSKA utan att skriva — det rapporterar would-create/would-skip och skapar varken faktura eller kund; kör en historisk efterregistrering torrt först och kontrollera antalen innan den körs på riktigt.

Invoice Transactions_create

Verktyg

invoiceTransactions_createRegistrera en betalning mot en utgående (försäljnings-) faktura. `invoice` är en faktura-IRI från invoices_list; `date` är när betalningen anses ha gjorts. `transaction` är valfri — utelämna den för att registrera reglering utan bankrad, vilket är vad du vill för historiska fakturor vars kontoutdrag aldrig importerades. `amount` är valfritt och standardvärdet är fakturans utestående belopp. Att registrera en betalning är vad som gör att en utfärdad, förfallen faktura slutar behandlas som obetald, och därmed också vad som stoppar betalningspåminnelser från att köas för den. Inget hindrar att två betalningar registreras mot en faktura, så läs invoices_get först om du är osäker på om en redan är reglerad. Skrivning.

Invoice Transactions_update

Verktyg

invoiceTransactions_updateUppdatera en befintlig fakturabetalningspost via id (från invoices_get's invoiceTransactions, eller genom att bläddra invoiceTransactions). Den vanligaste användningen: peka en betalning registrerad utan bankrad mot en transaktion du just importerat via transactions_importStatement, genom att sätta `transaction` till en transaktions-IRI/id från transactions_list. FÄLLAN: det här är en PATCH, men backend kräver ändå `invoice` och `date` vid varje anrop — den slår INTE ihop de befintliga värdena åt dig. Läs posten först (eller ha den redan från create-anropet) och skicka på nytt dess `invoice` och `date` oförändrade tillsammans med det du faktiskt vill ändra, annars avvisas uppdateringen. `transaction` accepterar null för att koppla loss en betalning från en bankrad. `amount` är valfritt. Skrivning.

Invoice Transactions_delete

Verktyg

invoiceTransactions_deleteRaderar en betalningspost från en faktura via id — id:na läser du från invoiceTransactions i invoices_get. Detta tar bort NOTERINGEN OM ATT EN FAKTURA HAR BETALATS, inte en banktransaktion: använd det när en faktura bär en betalning som aldrig borde ha funnits, vanligen samma betalning bokförd två gånger — en gång för hand och en gång av kontoutdragsimporten som senare matchade den. Kontrollera invoices_get först och radera den post vars `transaction` är fel (behåll den som pekar på den riktiga importerade bankraden); raderas den sista kvarvarande betalningen blir fakturan obetald igen, vilket åter aktiverar dess betalningspåminnelser. Kräver ROLE_INVOICES_MANAGER. Oåterkalleligt, med stor påverkan. Skrivning.

Invoices_create

Verktyg

invoices_createUtfärda en NY utgående (försäljnings-)faktura — verktyget för att fakturera en kund för första gången. Blanda inte ihop det med dess två grannar: invoices_import efterregistrerar en faktura som REDAN utfärdats någon annanstans (onboarding-historik), och incomingInvoices_create registrerar en leverantörs KOSTNADSDOKUMENT. Fakturan landar OSKICKAD: status härleds från fakturans loggrader och en ny faktura har inga, så ingenting renderas, mejlas eller skickas till KSeF av detta anrop — behandla resultatet som ett utkast att granska innan utfärdande. `name` är fakturanumret och väljs av dig (max 32 tecken) — läs invoices_list först och följ organisationens befintliga serie i stället för att hitta på en egen, eftersom inget här tilldelar nästa nummer åt dig. Krävs: name, type ("invoice"), tinType, issueDate, saleDate, dueDate. Skicka `client` (IRI från clients_list) och, för en bokning som stäms av senare, `contract` (IRI från contracts_list) så att fakturan visas under det avtalet. Radposter läggs i `invoiceRows` — nettostyckpris, kvantitet och en skattesats per rad; summorna beräknas från raderna, skickas inte in. `bankAccount` (från bankAccounts_list) väljer kontot som trycks på dokumentet, och `currency`…

Invoices_update

Verktyg

invoices_updateRätta en utgående (försäljnings-)faktura via id, före eller efter utfärdande. Den vardagliga användningen är att fixa ett utkast upprättat av invoices_create — ett fel datum, en fel rad, en saknad avtalslänk — i stället för att radera och utfärda på nytt, vilket skulle bränna ett fakturanummer. Läs invoices_get först: detta är en PATCH på ett dokument vars summor härleds från dess rader, så att ersätta `invoiceRows` ersätter hela mängden, och en faktura som redan skickats avsänds inte tillbaka bara för att den redigerades. Skrivåtgärd.

Incoming Invoices_apply Suggestion

Verktyg

incomingInvoices_applySuggestionAcceptera ett av Flowtlys egna förslag på en inkommande faktura — samma förslag en människa ser i appen (leverantörsmatchning, kostnadsgrupp, matchande banktransaktion, dublettvarning). Läs dem först med incomingInvoices_suggestions och applicera sedan ett via dess id. Föredra det här framför att gissa: det är Flowtlys matchare, inte agenten, som avgör vad som är rimligt. Skrivning.

Incoming Invoices_accept All Suggestions

Verktyg

incomingInvoices_acceptAllSuggestionsAcceptera alla väntande förslag på en inkommande faktura i ett anrop — det som en människa gör med appens "acceptera alla"-knapp. Servern tillämpar, bygger om och tillämpar igen tills inget nytt dyker upp: transaktionsmatchningen finns INTE förrän leverantör och belopp har tillämpats, så en enda genomgång skulle lämna dokumentet okopplat. Returnerar en rapport (vad som tillämpades, vad som avvisades och varför, samt transaktionen den till slut bokfördes mot). Skicka dryRun för att förhandsgranska utan att skriva. Accepterar aldrig supplier_create eller en dublettvarning. Skrivning.

Incoming Invoices_check EInvoices

Verktyg

incomingInvoices_checkEInvoicesHämta eventuella nya KSeF-e-fakturor till organisationen — det som appens knapp "Sprawdź e-faktury" gör. Anropa den här innan du drar slutsatsen att en leverantörs faktura saknas: utan den kan du inte skilja "leverantören skickade den aldrig" från "vår synkronisering har inte körts än". Returnerar när hämtningen är köad; läs incomingInvoices_list igen efteråt för att se vad som kom in. Skrivning.

Resourcing_import Timeline

Verktyg

resourcing_importTimelineImportera ett ark med resursallokeringstidslinje (hämta det via Drive MCP, skicka dess CSV ordagrant). Detta är en FULLSTÄNDIG ERSÄTTNING-spegling av organisationens Allocation-rader för `year`: rader i arket skapas/uppdateras, och varje befintlig rad för det året som saknas i arket TAS BORT — ingen sammanslagning. TORRKÖRNING SOM STANDARD: en utelämnad dryRun förhandsvisar och skriver ingenting; skicka dryRun:false för att tillämpa. Rapporten ger `created` / `replaced` plus `unmatchedPeople` / `unmatchedProjects`. TVÅ SAKER ÄR LÄTTA ATT MISSA: en arkrad vars projekt inte kan slås upp HOPPAS ÖVER medan anropet ändå rapporterar framgång, så ett grönt resultat kan dölja en delvis import; och en rollkod som positionskatalogen inte redan har SKAPAS som en ny position i stället för att avvisas — se `createdPositions`. Båda flaggas i `warnings` när de inträffar; lyft fram det för användaren i stället för att bara rapportera `created`. Ett ark som tolkas till noll rader avvisas (det ser exakt ut som en felaktig läsning på väg att radera hela tidslinjen) om du inte skickar force:true. Läs allocations_list efteråt för att se vad som landade. Hög påverkan. Skrivning.

Transactions_import Statement

Verktyg

transactions_importStatementImportera en kontoutdragsfil (t.ex. en MT940 .sta-fil) — skicka varje fils råa textinnehåll ordagrant (INTE base64) med ett filename. DET FINNS INGEN bankAccount-PARAMETER: backend dirigerar en fil genom att strippa alla icke-siffertecken från dina bankkontons nummer och från filens bytes, och importera till varje konto vars siffror förekommer någonstans i filen — så en fil kan landa i flera konton, och ett utdrag för ett konto som inte är uppsatt i Flowtly (eller vars nummer är registrerat annorlunda än banken skriver det) importeras till inget av dem, och misslyckas med ett fel som förklarar exakt varför — läs det meddelandet, det är den enda diagnostik den här slutpunkten ger dig. Vid framgång är svaret `{ imported, matching }`: `matching: "in_progress"` betyder att entreprenörs-/bilagematchning för de nya raderna fortfarande körs efter att anropet returnerar, så en omedelbar transactions_list kan visa rader som ännu inte matchats — läs igen lite senare för det slutgiltiga tillståndet. Att importera samma utdrag igen skapar inte dubblettrader; importören känner igen transaktioner den redan sett. När ett utdrag väl är inne, peka en befintlig betalning utan bankrad mot en av dess rader med…

Transactions_delete

Verktyg

transactions_deleteRaderar en banktransaktion via id — hitta den med transactions_list. Ta till detta ENDAST för att ångra ett bokföringsfel som inte kan rättas på annat sätt: ett kontoutdrag importerat till fel bankkonto, eller rader som lagts in för hand innan det riktiga utdraget kom och nu dubbleras av det. En transaktion är en notering om vad banken gjorde, så att radera en på ett importerat konto får bokföringen att avvika från banken; backend tillåter det endast för ROLE_ADMIN (en transaktionsansvarig får radera enbart på kassa- och manuella konton). INNAN du raderar en misstänkt dubblett, bevisa paret: matcha den importerade raden på belopp OCH fakturanummer OCH motpart, inte på belopp allena — en betalning som kom efter utdragets slutdatum har ingen motsvarighet, och att radera den förstör det enda beviset på den intäkten. Backend KOPPLAR LOSS i stället för att radera det som hänger på den: fakturabetalningar finns kvar med tömd bankrad (peka om dem med invoiceTransactions_update), bilagor och fastigheter kopplas loss, medan projekt- och medarbetartransaktionsrader tas bort tillsammans med den. Oåterkalleligt, med stor påverkan. Skrivning.

Organization_whoami

Verktyg

organization_whoamiReturnera den organisation den här MCP-anslutningen är bunden till — { orgId, name, slug, userId }. Anropa den för att bekräfta VILKEN klient du är på väg att skriva till innan varje create/update: anslutningen är knuten till exakt en organisation via token, och att skriva prospekter/poster till fel organisation är en verklig incident. Skrivskyddad.

Resourcing Actuals_get

Verktyg

resourcingActuals_getRapporterade timmar jämfört med planen, per person per vecka, över ett from/to-fönster — frågan 'ligger teamet faktiskt på plan?', som INGET annat resursverktyg besvarar: allokeringar talar om vad som var PLANERAT, den här talar om vad som LEVERERADES. Returnerar veckokolumner plus en rad per person (planerad %, rapporterad %, avvikelse, totaler och en projektuppdelning). reportedPercent null betyder 'inget avtal den veckan' och 0 betyder 'ett avtal fanns och inget rapporterades' — slå INTE ihop de två. Skicka financials för intäkt/kostnad/marginal, som annars utelämnas. Kräver resursmodulen och ROLE_RESOURCING_MANAGER. Skrivskyddad.

Resourcing Bench_get

Verktyg

resourcingBench_getVem som INTE är bemannad över ett from/to-fönster — bänken. Använd den när du blir tillfrågad vem som ska sättas på ett nytt projekt eller var kapacitet går outnyttjad; resourcingActuals_get talar om hur belastade folk är, den här talar om vem som inte har någon belastning alls. DEN KÄNNER INTE TILL LEDIGHET: freePercent är 100 minus bekräftade allokeringar, inget annat, så någon på tre veckors godkänd semester visas som 100 % ledig och inget fält i svaret säger annat. Att besvara 'vem är tillgänglig' enbart utifrån den här kommer att sätta folk på projekt medan de är borta — stäm av mot holidays_active eller holidays_list. Kräver resursmodulen. Skrivskyddad.

Resourcing Schedule_get

Verktyg

resourcingSchedule_getDet planerade resursschemat över ett from/to-fönster — allokeringstidslinjen som planeraren visar den. Använd den för vad som är BOKAT framåt; använd resourcingActuals_get för vad som faktiskt rapporterades mot den. Kräver resursmodulen och ROLE_RESOURCING_MANAGER. Skrivskyddad.

People_get Permissions

Verktyg

people_getPermissionsVad en person faktiskt kan göra, upplöst: deras behörighetsgrupper (var och en med de roller den ger), deras personbundna undantag, och effectiveRoles de två slås samman till. SÄTTET att kontrollera om en åtkomständring slog igenom — people_list visar ett roles-fält, men detta är det som förklarar VARFÖR det håller de rollerna och vilken spak som ska dras för att ändra det. Använd den innan varje anrop till people_setRoleOverrides, eftersom det verktyget ersätter undantagslistorna i sin helhet och detta är där de nuvarande läses. staleOverrides är borttagna undantag som inte längre matchar någon gruppgiven roll, så de gör för närvarande ingenting. people_list ger id:t. Kräver ROLE_ROLES_MANAGER för att visa någon annan än dig själv. Skrivskyddad.

Leads_bulk Import

Verktyg

leads_bulkImportImportera många leads i ETT anrop, var och en med sina kontakter, listmedlemskap och kontaktaktiviteter nästlade — servern skapar leaden och trär sedan in dess id i barnen, så du behöver aldrig hantera mellanliggande IRI:er. Idempotent via naturliga nycklar (companyName / email / (list,lead) / (type,occurredAt,contact)): säkert att köra om och att dela upp (≤100 leads/anrop). Detta är den massväg en kampanjimport bör använda i stället för N leads_create-anrop. Skrivning.

Lead Activities_by List

Verktyg

leadActivities_byListVarje lead-aktivitet på en KAMPANJ (en lead-lista), i ett enda anrop — skicka listans id, IRI eller exakta namn. leadActivities_list filtrerar på ett enskilt lead, så rapportering på kampanjnivå skulle annars kosta ett anrop per medlem (302 för en lista som PZFD); detta löser upp listans medlemmar och läser deras aktiviteter i avgränsade batchar i stället. Kombinera med type och occurredAt.after/.before för att få de antal folk faktiskt frågar efter: svarsfrekvens (type=reply_received), studsfrekvens (type=bounced), utskickstäckning (type=message_sent). Returnerar listId, listName, leadCount och de sammanslagna aktiviteterna sorterade på occurredAt. En okänd lista är ett FEL, inte ett tomt resultat — så ett felstavat namn kan inte läsas som "den här kampanjen hade ingen aktivitet". Id:n kommer från leadLists_list. Skrivskyddad.

Lead Activities_bulk Import

Verktyg

leadActivities_bulkImportRegistrera en hel utgående våg — varje meddelande som faktiskt skickades — i ETT anrop, i stället för ett leadActivities_create per meddelande. Skicka en array; varje rad anger sitt lead (leadCompanyName, matchat mot ett BEFINTLIGT lead, eller en lead-IRI) plus type och occurredAt. Ge varje rad ett externalId — det stabila per-meddelande-id:t, t.ex. Gmails meddelande-id — och importen är idempotent: att köra om den, eller köra om en våg som bara delvis importerats, rapporterar dubbletter i stället för att skapa dem. Rader utan externalId dedupliceras på (lead, type, occurredAt, contact), samma naturliga nyckel som leads_bulkImport använder, så en våg som först landade via det verktyget dupliceras inte här. Varje rad får sitt eget utfall (created | duplicate | error), så en felaktig rad kasserar inte resten av batchen. Skapar INTE leads — använd leads_bulkImport för det. ≤ 1000 rader/anrop. Skrivåtgärd.