---
title: "Update Campaign Graph"
method: PUT
path: "/v1/campaigns/{campaign_id}/graph"
tags: ["LiveOps"]
---

# Update Campaign Graph

`PUT /v1/campaigns/{campaign_id}/graph`

## Path parameters

- `campaign_id` string, required

## Request body

- GraphRoot
  - `id` string, required
  - `next_node_id` string
  - `title` string
  - `x` integer, required
  - `y` integer, required
  - `result` string
  - `model_type` string
  - `break_on_error` boolean
  - `description` string
  - `nodes` object
  - `view_port` ViewPort
    - `x` number, required
    - `y` number, required
    - `zoom` number, required

## Response `200`

Successful Response

- Campaign
  - `name` string, required
  - `description` string
  - `enabled` boolean, required
  - `type` union, required
    - 'game_hub_visit' | 'game_hub_visit_store' | 'game_hub_first_login' | 'game_hub_login' | 'add_segment' | 'coupon_redeemed' | 'registered_in_game' | 'game_login' | 'purchased_in_game' | 'purchased_in_web' | 'abandoned_cart' | 'level_up' | 'custom_event' | 'free_item_claimed' | 'daily_reward_claimed' | 'loyalty_reward_claimed' | 'progression_reward_claimed' | 'payment_insufficient_funds' | 'subscription_status_updated' | 'subscription_schedule' | 'pwa_installed' | 'pwa_deinstalled' | 'pwa_open' — An enumeration.
    - string
  - `time_limit` boolean
  - `start_at` number
  - `end_at` number
  - `archived_at` number
  - `attributes` PersistentCampaignAttributes
    - `custom_attributes` CustomAttribute[]
      - `name` string, required
      - `description` string
      - `type` 'number' | 'date' | 'string' | 'boolean' | 'list', required — An enumeration.
      - `min` integer
      - `max` integer
      - `custom_values` string[]
      - `can_use_in_deep_link` boolean
      - `scope` 'public' | 'private' — An enumeration.
      - `profile_display` ProfileDisplay — How a player custom attribute is presented on the hub profile.
        - `display_name` string, nullable
        - `value_format` 'string' | 'number' | 'currency' — How the hub renders a profile attribute value, or each element of a list value.
        - `icon_url` string, uri, nullable
        - `background_image_url` string, uri, nullable
        - `card_template_id` string, nullable — Card template rendering this attribute on the hub
    - `abandoned_cart_duration` integer
    - `visit_duration` integer
    - `page_slugs` string[]
    - `variables` MathExpression[]
      - `tokens` Token[]
        - `type` 'attribute' | 'custom_attribute' | 'event_attribute' | 'custom_event_attribute' | 'operator' | 'number' | 'date' | 'string' | 'boolean' | 'list' | 'variable' | 'virtual_currency', required
        - `value` unknown
      - `name` string, required
    - `run_for_subscription_id` string
  - `position` integer
  - `allowed_popups_on_store` boolean
  - `is_sync` boolean
  - `id` string, required
  - `version` string
  - `created_by_customer_id` string
  - `created_from_id` string
  - `version_description` string, required
  - `modified_at` integer
  - `created_at` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/aghanim/apis/aghanim-server-to-server-api.md) · [All operations](https://skmtc.net/aghanim/apis/aghanim-server-to-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aghanim/aghanim-server-to-server-api/versions/6402c25762c8/schema)
