curl --request POST \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/summaries/168/approve' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'Idempotency-Key: approveSummaryV1-20260816-001' \
--header 'If-Match: "v1.c3VtbWFyeS0xNjgtMw"' \
--header 'Content-Type: application/json' \
--data '{
"appointmentDate": "2026-08-18T09:00:00.000Z",
"content": {
"hvadBlevAftalt": {
"aftaler": [
{
"aftale": "Bekræft lanceringsplanen på næste møde.",
"ansvarlig": "Kundeteamet",
"deadline": "Inden næste møde"
}
]
},
"hvadBlevDroeftet": {
"emner": [
{
"beskrivelse": "Teamene gennemgik leveringskapacitet og rækkefølgen i lanceringen.",
"emne": "Planlægning af lancering",
"rejstAf": "fælles"
}
]
},
"opsummering": "Teamene afstemte milepæle og ansvar for lanceringen.",
"titel": "Kvartalsplanlægning",
"todos": {
"opgaver": [
{
"ansvarlig": "Kundeteamet",
"deadline": "Fredag",
"opgave": "Bekræft den implementeringsansvarlige.",
"prioritet": "høj"
}
]
}
}
}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/summaries/{id}/approve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"summary": {
"appointmentDate": "2026-08-18T09:00:00.000Z",
"appointmentSubject": "Kvartalsplanlægning",
"company": {
"id": 42,
"name": "Acme Nordic",
"organizationNumber": "12345678"
},
"content": {
"context": [],
"hvadBlevAftalt": {
"aftaler": [
{
"aftale": "Bekræft lanceringsplanen på næste møde.",
"ansvarlig": "Kundeteamet",
"deadline": "Inden næste møde"
}
]
},
"hvadBlevDroeftet": {
"emner": [
{
"beskrivelse": "Teamene gennemgik leveringskapacitet og rækkefølgen i lanceringen.",
"emne": "Planlægning af lancering",
"rejstAf": "fælles"
}
]
},
"opsummering": "Teamene afstemte milepæle og ansvar for lanceringen.",
"titel": "Kvartalsplanlægning",
"todos": {
"opgaver": [
{
"ansvarlig": "Kundeteamet",
"deadline": "Fredag",
"opgave": "Bekræft den implementeringsansvarlige.",
"prioritet": "høj"
}
]
}
},
"createdAt": "2026-08-15T10:00:00.000Z",
"durationSec": 2700,
"evidenceAudience": "CUSTOMER",
"id": 168,
"internalNotes": null,
"name": "Kvartalsplanlægning",
"status": "APPROVED",
"updatedAt": "2026-08-15T10:30:00.000Z",
"version": "v1.c3VtbWFyeS0xNjgtMw"
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Kaldet indeholder ugyldige værdier.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "En gyldig bearer-adgangsoplysning er påkrævet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Adgangsoplysningen giver ikke adgang til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Ressourcen blev ikke fundet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "Den ønskede ændring er i konflikt med ressourcens aktuelle tilstand.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "Ressourcen er ændret, siden den blev læst.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match er påkrævet til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "For mange kald. Prøv igen om lidt.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Der opstod en uventet fejl.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Godkend et referat
Godkend et referat oprettet af kalderen, som venter på godkendelse. Det offentlige strukturerede indhold og mødetiden kan eventuelt erstattes.
curl --request POST \
--url 'https://app.floral.so/api/v1/workspaces/acme-nordic/summaries/168/approve' \
--header 'Authorization: Bearer $FLORAL_TOKEN' \
--header 'Idempotency-Key: approveSummaryV1-20260816-001' \
--header 'If-Match: "v1.c3VtbWFyeS0xNjgtMw"' \
--header 'Content-Type: application/json' \
--data '{
"appointmentDate": "2026-08-18T09:00:00.000Z",
"content": {
"hvadBlevAftalt": {
"aftaler": [
{
"aftale": "Bekræft lanceringsplanen på næste møde.",
"ansvarlig": "Kundeteamet",
"deadline": "Inden næste møde"
}
]
},
"hvadBlevDroeftet": {
"emner": [
{
"beskrivelse": "Teamene gennemgik leveringskapacitet og rækkefølgen i lanceringen.",
"emne": "Planlægning af lancering",
"rejstAf": "fælles"
}
]
},
"opsummering": "Teamene afstemte milepæle og ansvar for lanceringen.",
"titel": "Kvartalsplanlægning",
"todos": {
"opgaver": [
{
"ansvarlig": "Kundeteamet",
"deadline": "Fredag",
"opgave": "Bekræft den implementeringsansvarlige.",
"prioritet": "høj"
}
]
}
}
}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'If-Match': '<if-match>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://app.floral.so/api/v1/workspaces/{workspaceSlug}/summaries/{id}/approve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"summary": {
"appointmentDate": "2026-08-18T09:00:00.000Z",
"appointmentSubject": "Kvartalsplanlægning",
"company": {
"id": 42,
"name": "Acme Nordic",
"organizationNumber": "12345678"
},
"content": {
"context": [],
"hvadBlevAftalt": {
"aftaler": [
{
"aftale": "Bekræft lanceringsplanen på næste møde.",
"ansvarlig": "Kundeteamet",
"deadline": "Inden næste møde"
}
]
},
"hvadBlevDroeftet": {
"emner": [
{
"beskrivelse": "Teamene gennemgik leveringskapacitet og rækkefølgen i lanceringen.",
"emne": "Planlægning af lancering",
"rejstAf": "fælles"
}
]
},
"opsummering": "Teamene afstemte milepæle og ansvar for lanceringen.",
"titel": "Kvartalsplanlægning",
"todos": {
"opgaver": [
{
"ansvarlig": "Kundeteamet",
"deadline": "Fredag",
"opgave": "Bekræft den implementeringsansvarlige.",
"prioritet": "høj"
}
]
}
},
"createdAt": "2026-08-15T10:00:00.000Z",
"durationSec": 2700,
"evidenceAudience": "CUSTOMER",
"id": 168,
"internalNotes": null,
"name": "Kvartalsplanlægning",
"status": "APPROVED",
"updatedAt": "2026-08-15T10:30:00.000Z",
"version": "v1.c3VtbWFyeS0xNjgtMw"
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Kaldet indeholder ugyldige værdier.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "En gyldig bearer-adgangsoplysning er påkrævet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Adgangsoplysningen giver ikke adgang til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Ressourcen blev ikke fundet.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "CONFLICT",
"message": "Den ønskede ændring er i konflikt med ressourcens aktuelle tilstand.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "VERSION_CONFLICT",
"message": "Ressourcen er ændret, siden den blev læst.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "PRECONDITION_REQUIRED",
"message": "If-Match er påkrævet til denne handling.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "For mange kald. Prøv igen om lidt.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Der opstod en uventet fejl.",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}Autorisationer
Godkend med en personlig Floral-adgangsnøgle, der er bundet til ét arbejdsområde.
Overskrifter
Valgfrit korrelations-id fra kalderen. Floral returnerer den anvendte værdi i X-Request-ID.
1 - 128Påkrævet idempotensnøgle. Identiske nye forsøg på samme kanoniske kald gentager oprindelig status, body, ETag, Location og request-id i 24 timer.
1 - 255Stærk ETag fra seneste detalje- eller ændringssvar. En forældet værdi giver 412 VERSION_CONFLICT.
^"(?:[^"\\]|\\.)*"$Sti-parametre
Slug for det arbejdsområde, adgangsoplysningen er bundet til.
1 - 100^[a-z0-9]+(?:-[a-z0-9]+)*$Stabilt numerisk ressource-id.
x >= 1Krop
Valgfrit redigeret struktureret indhold og mødetid. Udelad body for at godkende de aktuelle værdier. Højst 65536 byte.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Show child attributes
Show child attributes
Svar
Referat godkendt
Show child attributes
Show child attributes
