> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GraphQL API-mutatievoorbeelden

De [GraphQL API](/api/graphql) van AppSignal ondersteunt zowel mutaties als queries.
Waar een [query](/api/graphql/examples) gegevens leest, schrijft een mutatie ze: u kunt
een custom marker aanmaken, een incident sluiten, een uptime-monitor toevoegen en meer.

Mutaties gebruiken hetzelfde eindpunt en dezelfde persoonlijke API-token als queries. Lees de
[GraphQL API-pagina](/api/graphql) voor details over het eindpunt en authenticatie.

De meeste mutaties zijn app-specifiek en nemen een `appId`-argument dat de wijziging
beperkt tot één app. U vindt uw app-ID in het [instellingenscherm](https://appsignal.com/redirect-to/app?to=admin/api_keys)
van uw app. Sommige mutaties zijn organisatiegebonden en nemen in plaats daarvan een
`organizationSlug`-argument, zoals `createApp` en `createStatusPage`.

Deze pagina behandelt de meest voorkomende mutaties. Voor de volledige, automatisch
gegenereerde lijst van elke mutatie en zijn argumenten, zie de [GraphQL-schemareferentie](https://appsignal.com/graphql/docs).

<Note>
  Mutaties wijzigen gegevens in uw account. Test tegen een niet-productie-app voordat
  u een mutatie automatiseert tegen productiedata.
</Note>

## Incidenten

### Een incident bijwerken

Wijzig de status, severity, toegewezenen of meldingsinstellingen van een incident. Het
`number` is het incidentnummer dat in AppSignal wordt getoond.

`state` accepteert `OPEN`, `WIP` of `CLOSED`. `severity` accepteert `UNTRIAGED`,
`CRITICAL`, `HIGH`, `LOW`, `NONE` of `INFORMATIONAL`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation UpdateIncident(
    $appId: String!
    $number: Int!
    $state: IncidentStateEnum
    $severity: IncidentSeverityEnum
    $assigneeIds: [String!]
  ) {
    updateIncident(
      appId: $appId
      number: $number
      state: $state
      severity: $severity
      assigneeIds: $assigneeIds
    ) {
      ... on ExceptionIncident {
        id
        number
        state
        severity
      }
      ... on PerformanceIncident {
        id
        number
        state
        severity
      }
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "number": 42,
    "state": "CLOSED",
    "severity": "LOW"
  }
  ```
</CodeGroup>

### Meerdere incidenten in bulk bijwerken

Werk meerdere incidenten bij in één verzoek. In tegenstelling tot `updateIncident` neemt deze
mutatie incident-ID's in plaats van incidentnummers.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation BulkUpdateIncidents(
    $appId: String!
    $ids: [String]!
    $state: IncidentStateEnum
    $severity: IncidentSeverityEnum
  ) {
    bulkUpdateIncidents(
      appId: $appId
      ids: $ids
      state: $state
      severity: $severity
    ) {
      ... on ExceptionIncident {
        id
        number
        state
      }
      ... on PerformanceIncident {
        id
        number
        state
      }
      ... on AnomalyIncident {
        id
        number
        state
      }
      ... on LogIncident {
        id
        number
        state
      }
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "ids": ["INCIDENT-ID-1", "INCIDENT-ID-2"],
    "state": "CLOSED"
  }
  ```
</CodeGroup>

### Een notitie aanmaken op een incident

Voeg een notitie toe aan het logboek van een incident. Dezelfde velden zijn beschikbaar op
performance-, anomalie- en logincidenten.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateIncidentNote(
    $appId: String!
    $incidentNumber: Int!
    $content: String!
  ) {
    createIncidentNote(
      appId: $appId
      incidentNumber: $incidentNumber
      content: $content
    ) {
      ... on ExceptionIncident {
        id
        number
        logbook {
          items {
            ... on Note {
              id
              content
              createdAt
            }
          }
        }
      }
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "incidentNumber": 42,
    "content": "Investigating, deploy reverted."
  }
  ```
</CodeGroup>

### Een issue aanmaken vanuit een incident

Maak een gekoppeld issue aan in een gekoppelde integratie. Dit voorbeeld gebruikt GitHub;
equivalente mutaties bestaan voor andere integraties: `createGitlabIssue`,
`createJiraIssue`, `createLinearIssue`, `createShortcutStory`, `createAsanaTask`
en `createTrelloCard`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateGithubIssue(
    $appId: String!
    $incidentNumber: Int!
    $title: String!
    $description: String!
  ) {
    createGithubIssue(
      appId: $appId
      incidentNumber: $incidentNumber
      title: $title
      description: $description
    ) {
      ... on ExceptionIncident {
        id
        number
        integrations {
          ... on GitHub {
            name
            issues {
              url
              title
            }
          }
        }
      }
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "incidentNumber": 42,
    "title": "NoMethodError in OrdersController#create",
    "description": "Tracked in AppSignal incident #42."
  }
  ```
</CodeGroup>

### Een integratie verwijderen uit een incident

Verwijder een eerder gekoppeld integratie-issue uit een incident.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation RemoveIntegration(
    $appId: String!
    $incidentNumber: Int!
    $id: String!
  ) {
    removeIntegration(
      appId: $appId
      incidentNumber: $incidentNumber
      id: $id
    ) {
      ... on ExceptionIncident {
        id
        number
      }
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "incidentNumber": 42,
    "id": "YOUR-INTEGRATION-ID"
  }
  ```
</CodeGroup>

## Markers

### Een custom marker aanmaken of bijwerken

Maak een custom marker aan om een tijdstip te annoteren, zoals een configuratiewijziging
of een handmatige actie. Geef een `id` mee om een bestaande marker bij te werken. Laat `id`
weg om een nieuwe marker aan te maken.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateCustomMarker(
    $appId: String!
    $id: String
    $icon: String!
    $message: String
    $createdAt: DateTime
  ) {
    createOrUpdateCustomMarker(
      appId: $appId
      id: $id
      icon: $icon
      message: $message
      createdAt: $createdAt
    ) {
      id
      icon
      message
      createdAt
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "icon": "🚀",
    "message": "Ran database migration"
  }
  ```
</CodeGroup>

### Een custom marker verwijderen

Verwijder een custom marker op ID.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation DeleteCustomMarker($appId: String!, $id: String!) {
    deleteCustomMarker(appId: $appId, id: $id) {
      id
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-MARKER-ID"
  }
  ```
</CodeGroup>

## Alerts en triggers

### Een trigger aanmaken

Maak een metric-gebaseerde alert-trigger aan. `field` accepteert een waarde uit
`MetricFieldEnum` (zoals `MEAN`, `P90`, `P95`, `COUNT`, `GAUGE` of
`COUNTER`). `kind` is een string die het triggertype beschrijft. De GraphQL-brondocumentatie
noemt `ExceptionRate` en `Throughput` als voorbeelden. De `condition` stelt de
drempelwaarde in om mee te vergelijken. Om een bestaande trigger te vervangen, geeft u zijn ID mee als
`previousTriggerId`.

`comparisonOperator` accepteert `LESS_THAN`, `GREATER_THAN`, `LESS_THAN_OR_EQUAL`,
`GREATER_THAN_OR_EQUAL`, `EQUAL` of `NOT_EQUAL`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateTrigger(
    $appId: String!
    $previousTriggerId: String
    $name: String
    $metricName: String!
    $kind: String!
    $field: MetricFieldEnum!
    $condition: ThresholdConditionInput!
    $warmupDuration: Int!
    $cooldownDuration: Int!
    $notifierIds: [String!]
  ) {
    createTrigger(
      appId: $appId
      previousTriggerId: $previousTriggerId
      name: $name
      metricName: $metricName
      kind: $kind
      field: $field
      condition: $condition
      warmupDuration: $warmupDuration
      cooldownDuration: $cooldownDuration
      notifierIds: $notifierIds
    ) {
      id
      name
      metricName
      field
      thresholdCondition {
        value
        comparisonOperator
      }
      warmupDuration
      cooldownDuration
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "name": "High error rate",
    "metricName": "transaction_exception_count",
    "kind": "ExceptionRate",
    "field": "COUNTER",
    "condition": { "value": 10, "comparisonOperator": "GREATER_THAN" },
    "warmupDuration": 0,
    "cooldownDuration": 5,
    "notifierIds": ["YOUR-NOTIFIER-ID"]
  }
  ```
</CodeGroup>

### Een trigger archiveren

Archiveer een trigger zodat deze geen metrics meer evalueert of alerts verstuurt.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation ArchiveTrigger($appId: String!, $id: String!) {
    archiveTrigger(appId: $appId, id: $id) {
      id
      name
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-TRIGGER-ID"
  }
  ```
</CodeGroup>

### Een alert archiveren

Archiveer een enkele getriggerde alert. Deze mutatie retourneert `true` bij succes.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation ArchiveAlert($appId: String!, $id: String!) {
    archiveAlert(appId: $appId, id: $id)
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-ALERT-ID"
  }
  ```
</CodeGroup>

### De laatste alert voor een anomalie-incident sluiten

Sluit de meest recente openstaande alert voor een anomalie-incident, geïdentificeerd op zijn
incidentnummer.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation EndLastAlert($appId: String!, $number: Int!) {
    endLastAlert(appId: $appId, number: $number) {
      id
      number
      alertState
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "number": 42
  }
  ```
</CodeGroup>

## Uptime-monitors

### Een uptime-monitor aanmaken

Maak een uptime-monitor aan vanuit een `UptimeMonitorInput`. `regions` accepteert een of
meer van `EUROPE`, `NORTH_AMERICA`, `ASIA_PACIFIC` of `SOUTH_AMERICA`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateUptimeMonitor(
    $appId: String!
    $uptimeMonitor: UptimeMonitorInput!
  ) {
    createUptimeMonitor(appId: $appId, uptimeMonitor: $uptimeMonitor) {
      id
      name
      url
      regions
      warmupDuration
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "uptimeMonitor": {
      "name": "Marketing site",
      "url": "https://example.com",
      "regions": ["EUROPE", "NORTH_AMERICA"],
      "warmupDuration": 1,
      "notifierIds": ["YOUR-NOTIFIER-ID"]
    }
  }
  ```
</CodeGroup>

### Een uptime-monitor bijwerken

Werk een bestaande monitor bij. De `uptimeMonitor`-input heeft dezelfde vorm als bij
het aanmaken.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation UpdateUptimeMonitor(
    $appId: String!
    $id: String!
    $uptimeMonitor: UptimeMonitorInput!
  ) {
    updateUptimeMonitor(
      appId: $appId
      id: $id
      uptimeMonitor: $uptimeMonitor
    ) {
      id
      name
      url
      regions
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-UPTIME-MONITOR-ID",
    "uptimeMonitor": {
      "name": "Marketing site",
      "url": "https://example.com/health",
      "regions": ["EUROPE"]
    }
  }
  ```
</CodeGroup>

### Een uptime-monitor verwijderen

Verwijder een monitor op ID. Deze mutatie retourneert de verwijderde monitor.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation DeleteUptimeMonitor($appId: String!, $id: String!) {
    deleteUptimeMonitor(appId: $appId, id: $id) {
      id
      name
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-UPTIME-MONITOR-ID"
  }
  ```
</CodeGroup>

## Check-ins

### Een check-in-trigger aanmaken

Maak een cron- of heartbeat-check-in-trigger aan. `kind` accepteert `CRON` of
`HEARTBEAT`. Stel voor een cron-trigger `syntax` in op de cron-expressie. Gebruik UTC
voor `timezone` waar mogelijk.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateCheckInTrigger(
    $appId: String!
    $identifier: String!
    $kind: CheckInTriggerKindEnum!
    $waitTimeMinutes: Int!
    $syntax: String
    $timezone: String
    $notifierIds: [String!]
  ) {
    createCheckInTrigger(
      appId: $appId
      identifier: $identifier
      kind: $kind
      waitTimeMinutes: $waitTimeMinutes
      syntax: $syntax
      timezone: $timezone
      notifierIds: $notifierIds
    ) {
      id
      identifier
      kind
      syntax
      timezone
      waitTimeMinutes
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "identifier": "nightly-backup",
    "kind": "CRON",
    "syntax": "0 2 * * *",
    "timezone": "UTC",
    "waitTimeMinutes": 5,
    "notifierIds": ["YOUR-NOTIFIER-ID"]
  }
  ```
</CodeGroup>

### Een check-in-trigger bijwerken

Werk een bestaande check-in-trigger bij. Alleen de velden die u meegeeft worden gewijzigd.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation UpdateCheckInTrigger(
    $appId: String!
    $id: String!
    $syntax: String
    $waitTimeMinutes: Int
    $notifierIds: [String!]
  ) {
    updateCheckInTrigger(
      appId: $appId
      id: $id
      syntax: $syntax
      waitTimeMinutes: $waitTimeMinutes
      notifierIds: $notifierIds
    ) {
      id
      identifier
      syntax
      waitTimeMinutes
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-CHECK-IN-TRIGGER-ID",
    "syntax": "0 3 * * *",
    "waitTimeMinutes": 10
  }
  ```
</CodeGroup>

### Een check-in-trigger verwijderen

Verwijder een check-in-trigger op ID.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation DeleteCheckInTrigger($appId: String!, $id: String!) {
    deleteCheckInTrigger(appId: $appId, id: $id) {
      id
      identifier
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-CHECK-IN-TRIGGER-ID"
  }
  ```
</CodeGroup>

## Dashboards

### Een dashboard aanmaken

Maak een leeg dashboard aan. Voeg er visuals aan toe met de mutaties `createVisualTimeseries`
en `createVisualNumber`, of importeer een compleet dashboard met
`importDashboard`.

Dashboardvisuals worden ook beheerd via `createVisualTimeseries`,
`createVisualNumber`, `updateVisualTimeseries`, `updateVisualNumber`,
`updateVisualLayouts` en `deleteVisual`. Om een zelfstandige opgeslagen visual aan te maken
voor later ophalen via de [REST-eindpunten voor opgeslagen visuals](/api/v2/saved-visuals),
gebruikt u `createSavedVisual`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateDashboard(
    $appId: String!
    $title: String!
    $description: String
  ) {
    createDashboard(appId: $appId, title: $title, description: $description) {
      id
      title
      description
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "title": "Background jobs",
    "description": "Throughput and queue time for worker jobs."
  }
  ```
</CodeGroup>

### Een dashboard bijwerken

Werk de titel of beschrijving van een dashboard bij. De `title` is verplicht.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation UpdateDashboard(
    $appId: String!
    $id: String!
    $title: String!
    $description: String
  ) {
    updateDashboard(
      appId: $appId
      id: $id
      title: $title
      description: $description
    ) {
      id
      title
      description
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-DASHBOARD-ID",
    "title": "Background jobs",
    "description": "Updated description."
  }
  ```
</CodeGroup>

### Een dashboard verwijderen

Verwijder een dashboard op ID.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation DeleteDashboard($appId: String!, $id: String!) {
    deleteDashboard(appId: $appId, id: $id) {
      id
      title
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "id": "YOUR-DASHBOARD-ID"
  }
  ```
</CodeGroup>

### Een dashboard importeren

Importeer een dashboard vanuit een JSON-definitie. Het `json`-argument is een
JSON-gecodeerde string, dus escape deze wanneer u hem als variabele meestuurt.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation ImportDashboard($appId: String!, $json: String!) {
    importDashboard(appId: $appId, json: $json) {
      id
      title
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "json": "{\"title\":\"Imported dashboard\",\"visuals\":[]}"
  }
  ```
</CodeGroup>

## Logs

### Een log-trigger aanmaken

Maak een trigger aan die een incident opent wanneer logregels overeenkomen met een query. `severities`
accepteert log-severityaanduidingen zoals `error`, `warn` of `info`.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateLogTrigger(
    $appId: String!
    $name: String!
    $query: String!
    $sourceIds: [String!]
    $severities: [String!]
    $notifierIds: [String!]
  ) {
    createLogTrigger(
      appId: $appId
      name: $name
      query: $query
      sourceIds: $sourceIds
      severities: $severities
      notifierIds: $notifierIds
    ) {
      id
      name
      query
      severities
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "appId": "YOUR-APP-ID",
    "name": "Payment errors",
    "query": "payment failed",
    "severities": ["error"],
    "notifierIds": ["YOUR-NOTIFIER-ID"]
  }
  ```
</CodeGroup>

Logs worden ook beheerd via GraphQL, niet alleen via triggers. Gebruik `createLogSource`,
`updateLogSource` en `deleteLogSource` voor bronnen; `createLogView`,
`updateLogView` en `deleteLogView` voor opgeslagen weergaves; `createLogLineAction`,
`updateLogLineAction`, `deleteLogLineAction` en `reorderLogLineActions` voor
ingestieregels; `updateLogTrigger` en `deleteLogTrigger` voor log-triggers; en
`createLogExport`, `updateLogExport` en `deleteLogExport` voor S3-exports.

## Organisatiegebonden mutaties

Sommige mutaties werken op een organisatie in plaats van op één app, dus nemen ze een
`organizationSlug`-argument in plaats van `appId`. U vindt de slug in de URL
van uw organisatie in AppSignal.

### Een app aanmaken

Maak een nieuwe app aan binnen een organisatie.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateApp(
    $organizationSlug: String!
    $name: String!
    $environment: String!
  ) {
    createApp(
      organizationSlug: $organizationSlug
      name: $name
      environment: $environment
    ) {
      id
      name
      environment
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "organizationSlug": "YOUR-ORGANIZATION-SLUG",
    "name": "My app",
    "environment": "production"
  }
  ```
</CodeGroup>

### Een statuspagina aanmaken

Maak een openbare statuspagina aan vanuit een `CreateStatusPageInput`. `title` en
`hostname` zijn verplicht.

<CodeGroup>
  ```graphql Mutation theme={null}
  mutation CreateStatusPage(
    $organizationSlug: String!
    $statusPage: CreateStatusPageInput!
  ) {
    createStatusPage(
      organizationSlug: $organizationSlug
      statusPage: $statusPage
    ) {
      id
      title
      hostname
      state
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json Variables theme={null}
  {
    "organizationSlug": "YOUR-ORGANIZATION-SLUG",
    "statusPage": {
      "title": "Service status",
      "hostname": "status.example.com",
      "uptimeMonitorIds": ["YOUR-UPTIME-MONITOR-ID"],
      "threshold": 1
    }
  }
  ```
</CodeGroup>

Statuspagina's ondersteunen ook `createStatusPageUpdate`, `updateStatusPage`,
`updateStatusPageUpdate`, `deleteStatusPage` en `deleteStatusPageUpdate`. Voor
CSV-exports gebruikt u `createCsvExport` om een export te starten en `createCsvExportUrl`
om een download-URL te genereren voor een voltooide export.

## Meer mutaties

Deze voorbeelden behandelen de meest voorkomende bewerkingen. De API bevat er meer, gegroepeerd
in de schemareferentie onder Core (app- en hosted collector-beheer),
Dashboards (visuals en lay-outs), Logs (bronnen, weergaves en exports), Exports
(CSV), Statuspagina's (updates) en Gebruikersvoorkeuren. Voor de volledige lijst
mutaties en hun argumenten, zie de [GraphQL-schemareferentie](https://appsignal.com/graphql/docs).
