# IntegrationAttribute

Attributes for third-party integrations with Superwall.

Purpose [#purpose]

Enumeration of integration attributes that allow you to sync user identifiers from your analytics and attribution providers with Superwall. This enables better user tracking and attribution across platforms.

Signature [#signature]

```dart
enum IntegrationAttribute {
  adjustId,
  amplitudeDeviceId,
  amplitudeUserId,
  appsflyerId,
  appstackId,
  brazeAliasName,
  brazeAliasLabel,
  onesignalId,
  fbAnonId,
  firebaseAppInstanceId,
  iterableUserId,
  iterableCampaignId,
  iterableTemplateId,
  mixpanelDistinctId,
  mparticleId,
  clevertapId,
  airshipChannelId,
  kochavaDeviceId,
  tenjinId,
  posthogUserId,
  customerioId;
}
```

Values [#values]

<TypeTable
  type="{
  appstackId: {
    type: &#x22;IntegrationAttribute&#x22;,
    description: &#x22;The Appstack identifier.&#x22;,
  },
}"
/>

Usage [#usage]

Setting a single integration attribute:

```dart
await Superwall.shared.setIntegrationAttribute(
  IntegrationAttribute.mixpanelDistinctId,
  'user_123',
);
```

Setting multiple integration attributes:

```dart
await Superwall.shared.setIntegrationAttributes({
  IntegrationAttribute.mixpanelDistinctId: 'user_123',
  IntegrationAttribute.amplitudeUserId: 'amp_456',
  IntegrationAttribute.adjustId: 'adjust_789',
  IntegrationAttribute.appstackId: 'appstack_abc',
});
```

Removing an integration attribute:

```dart
// Set to null to remove
await Superwall.shared.setIntegrationAttribute(
  IntegrationAttribute.mixpanelDistinctId,
  null,
);
```

Syncing with analytics providers:

```dart
void _syncAnalyticsIds() async {
  // Get IDs from your analytics SDKs
  final mixpanelId = await MixpanelSDK.getDistinctId();
  final amplitudeId = await AmplitudeSDK.getUserId();
  
  // Sync with Superwall
  await Superwall.shared.setIntegrationAttributes({
    IntegrationAttribute.mixpanelDistinctId: mixpanelId,
    IntegrationAttribute.amplitudeUserId: amplitudeId,
  });
}
```

Related [#related]

* [`setIntegrationAttribute()`](/docs/flutter/sdk-reference/setIntegrationAttribute) - Set a single integration attribute
* [`setIntegrationAttributes()`](/docs/flutter/sdk-reference/setIntegrationAttributes) - Set multiple integration attributes at once