# Execute n8n operations

Executați o interogareGraphQLsau o mutație. Selectați **Executa** în câmpul nodului platformei **Resurse**.

Întoarceți-vă la [referința completă a resurselorn8n] (/docs/developers/api/n8n/resources) pentru a căuta o altă resursă.

| Operation | Value     | Description                          | Source                                                                                                                                |
| --------- | --------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| Execute   | `execute` | Execute a GraphQL query or mutation. | [View implementation](/docs) |

Utilizați această resursă atunci când [referința la resursă] (/docs/developers/api/n8n/resources) nu furnizează operațiunea, selecția câmpului sau relația de care aveți nevoie.

Operațiunile dedicate furnizează câmpuri în editoruln8n, implementează paginarea și încărcarea fișierelor acolo unde este necesar și sunt mai puțin susceptibile să se întrerupă atunci când schemaGraphQLse schimbă.

## Configuration

Set **Resource** to **Execute**, then configure:

| Field         | Description                                                                                |
| ------------- | ------------------------------------------------------------------------------------------ |
| **API**       | **Console API** (`/api/console/v1/graphql`) or **Connect API** (`/api/connect/v1/graphql`) |
| **Query**     | Complete named operation, including variable declarations and the fields to return         |
| **Variables** | JSON object whose keys match the operation's variable names                                |

Nodul utilizează aceeași [platformaAPIcredențial](/docs/developers/api/n8n/autentificare) pentru ambele puncte terminale.

## Query a node by ID

Setați **API** la ** ConsoleAPI** și introduceți:

```graphql
query GetUser($userId: ID!) {
  node(id: $userId) {
    ... on User {
      id
      fullName
      email
    }
  }
}
```

Enter a JSON object whose key matches `$userId`:

```json
{
  "userId": "gid://probo/User/example"
}
```

When the ID comes from an incoming item, switch the **Variables** field to
expression mode and construct the object from `$json.userId`.

Rezultatul este carcasa completă de răspunsGraphQL. În nodul următor, înregistrarea utilizatorului este disponibilă la:

```text
{{ $json.data.node }}
```

## Run a mutation

Păstrați valorile în **Variabile** în loc să le interpolați în interogare:

```graphql
mutation UpdateOrganization($input: UpdateOrganizationInput!) {
  updateOrganization(input: $input) {
    organization {
      id
      name
    }
  }
}
```

```json
{
  "input": {
    "id": "gid://probo/Organization/example",
    "name": "Acme Corp"
  }
}
```

OperațiuneaGraphQLpoate efectua orice mutație permisă atât de tokenul OAuth, cât și de utilizatorul său.Revizuiește interogarea și variabilele înainte de a activa un flux de lucru și pune mutații distructive în spatele condițiilor explicite sau pașilor de aprobare :::

## Operation requirements

- Start with `query`, `mutation`, or `subscription`, followed by an operation
  name. Anonymous shorthand such as `{ viewer { id } }` is rejected.
- Enter variables as a JSON object. Invalid JSON stops the item before the
  request is sent.
- Select at least one output field for each object returned by GraphQL.
- Use the API endpoint that defines the operation. Most product and
  organization work belongs to the Console API.

Although the editor accepts a `subscription` document, the node performs a
single HTTP request and does not maintain a streaming GraphQL subscription.
Use [the platform Trigger](/docs/developers/api/n8n/trigger) for event-driven
workflows.

## Pagination

Resursa Executați nu paginează automat o interogare particularizată. Pentru o conexiuneGraphQL:

1. Request `pageInfo { hasNextPage endCursor }` with the connection's records.
2. Pass `endCursor` as the next request's `after` variable.
3. Keep the filters and ordering unchanged.
4. Stop when `hasNextPage` is `false`.

Pentru operațiunile de listă standard, utilizați operațiunea Resurse dedicate și activați în schimb **Return All**.

## Errors

GraphQL responses with a non-empty `errors` array fail the n8n item even when
the server returns HTTP `200`. Check:

- Operațiunea și numele de câmp împotriva schemei pentruAPIselectat. - Variabile necesare și formate scalareGraphQL. - ID-ul organizației, domeniile OAuth și permisiunile utilizatorului token. - Indiferent dacă un câmp aparține consoleiAPIsau ConnectAPI.

Activați setarea **Continue On Fail** an8nnumai atunci când fluxul de lucru poate procesa în siguranță elemente ulterioare după ce o operațiuneGraphQLeșuează.