# SaveCampaignSignals

> Replace a campaign's hashtag, mention and keyword signals. Write access, campaigns toolset, MCP tool save_campaign_signals.

**Access:** [Write](https://developer.missin.co.uk/get-started/authentication.md#access-levels)

## Variables

| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `campaignId` | `UUID!` | yes |  |  |
| `signals` | `[CampaignSignalRowInput!]!` | yes | Input object, below |  |

## Input types

### CampaignSignalRowInput

| Field | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `fetchEnabled` | `Boolean!` | yes |  | HASHTAG only: also a capture target for the campaign schedule. |
| `kind` | `CampaignSignalKind!` | yes | One of `HASHTAG`, `KEYWORD`, `MENTION` |  |
| `socialNetworkId` | `UUID` | no |  | MENTION only: the network the handle belongs to. Null = any. |
| `value` | `String!` | yes |  | With or without its prefix — stored bare. |

## Call it

```bash curl
curl https://api.missin.co.uk/graphql/v1 \
  -H "Authorization: Bearer $MISSIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationName":"SaveCampaignSignals","variables":{"campaignId":"00000000-0000-0000-0000-000000000000","signals":[]},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"b97b9eedcc3bbf5bbe4bfa3937d4b8aac91f0992ba7a5b893509c713b20cdbc1"}}}'
```

## Document

```graphql
mutation SaveCampaignSignals($campaignId: UUID!, $signals: [CampaignSignalRowInput!]!) { __typename saveCampaignSignals(input: {campaignId: $campaignId, signals: $signals}) { __typename saved userErrors { __typename code field message } } }
```

Source: https://developer.missin.co.uk/reference/campaigns/save-campaign-signals
