Migration

Migrating from Superwall

AgentWallie is designed as a drop-in replacement for Superwall with full API-first control. The SDK API surface mirrors Superwall's, making migration straightforward.

SDK API Comparison

SuperwallAgentWallieNotes
Superwall.configure(apiKey:)AgentWallie.configure(apiKey:)Same signature
Superwall.shared.register(placement:)AgentWallie.shared.register(placement:)Same signature, same behavior
Superwall.shared.identify(userId:)AgentWallie.shared.identify(userId:)Same signature
Superwall.shared.reset()AgentWallie.shared.reset()Same behavior
Superwall.shared.setUserAttributes(_:)AgentWallie.shared.setUserAttributes(_:)Same signature
Superwall.shared.subscriptionStatusAgentWallie.shared.subscriptionStatusSame pattern
SuperwallDelegateAgentWallieDelegateSimilar callbacks
SuperwallOptionsAgentWallieOptionsSimilar options

Migration Steps

Step 1: Replace the SDK Dependency

Remove the Superwall package and add AgentWallie:

// Remove: https://github.com/superwall/Superwall-iOS.git
// Add: https://github.com/cynisca/AgentWallieKit.git

Update imports:

// Before
import SuperwallKit
 
// After
import AgentWallieKit

Step 2: Update Configuration

// Before
Superwall.configure(apiKey: "pk_superwall_key")
 
// After
AgentWallie.configure(apiKey: "pk_agentwallie_key")

Step 3: Find-and-Replace SDK Calls

In most cases, a simple find-and-replace works:

FindReplace
SuperwallAgentWallie
SuperwallKitAgentWallieKit
SuperwallDelegateAgentWallieDelegate
SuperwallOptionsAgentWallieOptions

Placement names stay the same. If your Superwall integration uses register(placement: "onboarding_complete"), the same placement name works in AgentWallie.

Step 4: Migrate Configuration via API

Use the migration endpoint to import your Superwall configuration:

curl -X POST https://agentwallie.com/api/v1/projects/PROJECT_ID/duplicate-from-superwall \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_your_private_key" \
  -d '{
    "campaigns": [
      {
        "name": "Onboarding Campaign",
        "placements": ["app_launch", "onboarding_complete"]
      }
    ],
    "paywalls": [
      {
        "name": "Premium Offer",
        "components": []
      }
    ],
    "products": [
      {
        "name": "Annual Pro",
        "store_product_id": "com.myapp.annual_pro"
      },
      {
        "name": "Monthly Pro",
        "store_product_id": "com.myapp.monthly_pro"
      }
    ]
  }'

Or use the MCP tool:

agentwallie_migrate_from_superwall(
  project_id: "PROJECT_ID",
  superwall_config: {
    campaigns: [...],
    paywalls: [...],
    products: [...]
  }
)

Step 5: Recreate Paywalls

Superwall paywalls are built in a visual editor and don't have a public export format. You will need to recreate them as AgentWallie JSON schemas.

Options:

  • Use agentwallie_generate_paywall with a description of your existing paywall
  • Start from a template and customize
  • Build the schema manually using the component reference

Step 6: Verify with Dry-Run

Before going live, use the dry-run endpoint to verify your configuration:

curl -X POST https://agentwallie.com/api/v1/projects/PROJECT_ID/dry-run \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_your_private_key" \
  -d '{
    "user_attributes": { "subscription_status": "free", "session_count": 5 },
    "placement_name": "onboarding_complete"
  }'

This shows exactly which paywall would be presented without affecting real users.

What Stays the Same

  • Placement names: Keep all your existing placement names
  • Product IDs: Same App Store / Google Play product IDs
  • User attributes: Same attribute keys for audience targeting
  • SDK API surface: Nearly identical method signatures

What Changes

AreaChange
Paywall creationJSON schemas instead of visual editor (dashboard editor available too)
Campaign configAPI/JSON instead of dashboard-only
MCP accessFull agent control via MCP tools (new capability)
ValidationConfig validation and dry-run simulation (new capability)
RenderingNative SwiftUI/Compose from schema (not WebView)

The biggest benefit of migration: everything that required Superwall's dashboard can now be done via API or MCP. An AI agent can manage your entire paywall lifecycle without a browser.