# Skapa ärenden från andra system med Todomators API

> Autentisera med Todomators token och skapa ett ärende med ett JSON-anrop, från ett skript, ett e-brev eller ett webbformulär, med mappar, personer, taggar, bilagor och en callback.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: sv
Content-SHA256: e4798388e98aaba724f405c94cc2278904b20cf1f2deb0bd082beecb755b42e1
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Todomator exponerar sina åtgärder via en enda API-slutpunkt: `POST /api/` med en JSON-kropp `{ "schema": "<name>", "data": { ... } }` (Total.js API-rutter; se receptet [API-rutter](/en/total5/api-routes/)). Adressen `/api/` kommer från raden `$api` i filen `config`.

## Autentisera med token

Förutom en inloggad persons session accepterar API:et en **token**: skicka den i headern `x-token` eller i frågeparametern `token`. Om den är lika med inställningen `token` (se [inställningar](/en/todomator/settings-and-database/)) körs begäran som en inbyggd användare som heter *Bot*, en administratör med behörigheten `bot`; varje annan token avvisas. Använd en lång slumpmässig token, behåll den på din server och skicka den bara över HTTPS.

## Skapa ett ärende

Anropet heter `tickets_create`. Bara `name` är obligatoriskt; resten är valfritt:

| Fält | Anmärkningar |
|---|---|
| `name` | titeln |
| `folder` eller `folderid` | mappen, efter **namn** (Todomator slår upp den) eller efter id; ärendet tar mappens fakturerbar-flagga |
| `users` | de som ska tilldelas, efter **namn eller e-post**; en okänd person är ett fel (`User "..." not found`) |
| `watcherid` | de som följer det, efter **id** (till skillnad från `users` tar schemat i den här versionen inte emot dem efter namn) |
| `statusid` | `pending` (standard), `open`, `review`, `postponed`, `note` eller `closed` |
| `markdown`, `html` | innehållet |
| `tags`, `ispriority`, `isbillable`, `ispublic` | taggar och flaggor |
| `date`, `deadline`, `worked` | dagen, en deadline och redan arbetade minuter |
| `attachments` | en lista med `{ name, data }` där `data` är filen i Base64 |
| `reference`, `source`, `attrs` | fria fält för att koppla ärendet till ditt system |
| `callback` | en adress som får ärendet |

```json
{
	"schema": "tickets_create",
	"data": {
		"name": "The invoice page fails with a 500",
		"folder": "Customer support",
		"users": ["jane@example.com"],
		"markdown": "Reported by the contact form.\n\nSteps: open the invoice and click *Print*.",
		"tags": ["bug"],
		"source": "website",
		"reference": "form-2041"
	}
}
```

Svaret är det nya ärendets id. De tilldelade notifieras och de öppna sessionerna för de som får se det uppdateras.

## Callbacken

När `callback` är satt skickar Todomator en `POST` till den adressen med ärendets data när ärendet skapas, uppdateras eller klonas, och när en kommentar läggs till (vid skapande och uppdatering skickar den också listan över de angivna fälten, `keys`). Ditt system kan använda den för att spegla ett ärendes status.

## Andra anrop

Samma slutpunkt hanterar resten av åtgärderna, med namnen från `controllers/api.js`: `tickets` (lista), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` med flera. Den officiella API-dokumentationen finns på [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
