> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# White-label Connections

> Connect every Google channel, every Meta channel, TikTok, Pinterest, Reddit Ads, Snapchat Ads, Amazon Ads, Spotify Ads, X Ads, LinkedIn Ads, Microsoft Ads and Slack through your own apps so Markifact never appears in your clients' accounts. Available on the Team plan.

By default, every connection you add in Markifact goes through Markifact's own apps: our Google Cloud app, our Slack app, and so on. That is the fastest way to connect (Quick Connect), but it means "Markifact" is the name your clients see: on the consent screen, in the list of apps with access to their account, and in the change history of platforms that name the app behind a change, such as Google Ads.

**White-label connections** let you connect through **your own apps** instead. You paste the credentials of an app you own, Markifact verifies them with one API call, and from then on every request runs under your app. Your clients only ever see your brand.

<Card title="Quick Connect vs White-label" icon="scale-balanced" href="/core-concepts/connections#quick-connect-vs-white-label-connections">
  A side by side comparison, including what white-label changes for your clients and what it does not.
</Card>

<Note>
  White-label connections are available on the **Team** plan. Connections created earlier keep working regardless of plan; the plan is only checked when you add a new one.
</Note>

***

## Quick Connect vs White-label

|                                               | Quick Connect                         | Custom App (White-label)                               |
| :-------------------------------------------- | :------------------------------------ | :----------------------------------------------------- |
| **Best for**                                  | Everyone. The default for any account | Agencies that want to run on their own app credentials |
| **App your client authorizes**                | Markifact                             | Yours                                                  |
| **Name in change history and connected apps** | Markifact                             | Your app                                               |
| **Where credentials come from**               | One click, Markifact handles it       | You create the app and paste its credentials           |
| **Setup time**                                | About a minute                        | 15 to 30 minutes per platform, once                    |
| **API quota and rate limits**                 | Shared across Markifact customers     | Your app's own quota                                   |
| **Platform approvals**                        | Handled by Markifact                  | Yours to obtain where the platform requires them       |
| **Credential storage**                        | Encrypted by Markifact                | Encrypted by Markifact                                 |
| **Credential rotation**                       | Automatic                             | You paste new credentials when they expire             |
| **Available on**                              | All plans                             | Team plan                                              |

Both options are equal once connected. The same nodes, agents, and MCP tools work either way, and you can mix them: Quick Connect for your own accounts, a custom app for the clients who ask.

<Card title="What white-label changes for your clients" icon="scale-balanced" href="/core-concepts/connections#what-white-label-changes">
  What the client sees with each option, and what a custom app does not change.
</Card>

***

## Supported Channels

| Channel                     | What you paste                                                                         | Setup guide                                                                        |
| :-------------------------- | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- |
| **Google Ads**              | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Google Ads App](/nodes/gads/gads_custom_app)                               |
| **Google Analytics 4**      | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom GA4 App](/nodes/ga4/ga4_custom_app)                                        |
| **Google Search Console**   | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Search Console App](/nodes/gsc/gsc_custom_app)                             |
| **Google Merchant Center**  | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Merchant Center App](/nodes/gmc/gmc_custom_app)                            |
| **Google Business Profile** | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Business Profile App](/nodes/business_profile/business_profile_custom_app) |
| **Google Tag Manager**      | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Tag Manager App](/nodes/gtm/gtm_custom_app)                                |
| **Display & Video 360**     | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom DV360 App](/nodes/dv360/dv360_custom_app)                                  |
| **BigQuery**                | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom BigQuery App](/nodes/bigquery/bigquery_custom_app)                         |
| **YouTube**                 | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom YouTube App](/nodes/youtube/youtube_custom_app)                            |
| **Google Data Manager**     | Client ID, client secret, refresh token from your Google Cloud app                     | [Custom Data Manager App](/nodes/data_manager/data_manager_custom_app)             |
| **Meta Ads**                | System User access token from your Meta app                                            | [Custom Meta Ads App](/nodes/meta_ads/meta_ads_custom_app)                         |
| **Facebook**                | System User access token from your Meta app                                            | [Custom Facebook App](/nodes/facebook/facebook_custom_app)                         |
| **Instagram**               | System User access token from your Meta app                                            | [Custom Instagram App](/nodes/instagram/instagram_custom_app)                      |
| **Slack**                   | Bot token and signing secret from your Slack app                                       | [Custom Slack App](/nodes/slack/slack_custom_app)                                  |
| **TikTok Ads**              | App ID, app secret, access token from your TikTok for Business app                     | [Custom TikTok Ads App](/nodes/tiktok_ads/tiktok_ads_custom_app)                   |
| **TikTok** (organic)        | Client key, client secret, refresh token from your TikTok app                          | [Custom TikTok App](/nodes/tiktok/tiktok_custom_app)                               |
| **LinkedIn Ads**            | Access token from your LinkedIn app                                                    | [Custom LinkedIn Ads App](/nodes/linkedin_ads/linkedin_ads_custom_app)             |
| **Microsoft Ads**           | Client ID, client secret, refresh token from your Azure app, plus your developer token | [Custom Microsoft Ads App](/nodes/microsoft_ads/microsoft_ads_custom_app)          |
| **Pinterest Ads**           | App ID, app secret, refresh token from your Pinterest app                              | [Custom Pinterest Ads App](/nodes/pinterest_ads/pinterest_ads_custom_app)          |
| **Pinterest** (organic)     | App ID, app secret, refresh token from your Pinterest app                              | [Custom Pinterest App](/nodes/pinterest/pinterest_custom_app)                      |
| **Reddit Ads**              | App ID, app secret, refresh token from your Reddit app                                 | [Custom Reddit Ads App](/nodes/reddit_ads/reddit_ads_custom_app)                   |
| **Snapchat Ads**            | Client ID, client secret, refresh token from your Snapchat OAuth app                   | [Custom Snapchat Ads App](/nodes/snapchat_ads/snapchat_ads_custom_app)             |
| **Amazon Ads**              | Client ID, client secret, refresh token from your Login with Amazon app                | [Custom Amazon Ads App](/nodes/amazon_ads/amazon_ads_custom_app)                   |
| **Spotify Ads**             | Client ID, client secret, refresh token from your Spotify app                          | [Custom Spotify Ads App](/nodes/spotify_ads/spotify_ads_custom_app)                |
| **X Ads**                   | API key and secret, access token and secret from your X app                            | [Custom X Ads App](/nodes/x_ads/x_ads_custom_app)                                  |

All Google channels share one setup: create the Cloud app once, then mint a refresh token per channel (or one token with several scopes). See [Custom Google Cloud App](/core-concepts/custom-google-app). Google Drive is the one Google connection without a custom app option, because it relies on the Markifact file picker. The three Meta channels share one app and one System User token as well. See [Custom Meta App](/core-concepts/custom-meta-app). Both Pinterest channels share one app too. See [Custom Pinterest App](/core-concepts/custom-pinterest-app).

***

## How It Works

<Steps>
  <Step title="Create the app on the platform">
    Follow the setup guide for the channel. You create the app in your own account (Google Cloud Console, Meta for Developers, Slack API portal), so you own its name, icon, and credentials.
  </Step>

  <Step title="Open the Custom App tab">
    Go to [Connections](https://app.markifact.com/connections), click **Connect** on the channel, and select the **Custom App (White-label)** tab.
  </Step>

  <Step title="Name the connection and paste the credentials">
    Every custom app connection gets a name you choose (for example "Acme Agency Google Ads"). This is how it appears in node settings, agents, and MCP.
  </Step>

  <Step title="Verify & Connect">
    Markifact makes one read-only call to the platform with your credentials. Nothing is saved unless that call succeeds, and the platform's own error message is shown if it fails.
  </Step>
</Steps>

Custom app connections show a **Custom app** badge on the Connections page. They work everywhere a Quick Connect connection works: Workflows, Agents, and MCP.

***

## Living With a Custom App

* **Token refresh is automatic**, using your app's credentials, exactly as Quick Connect refreshes with Markifact's.
* **When credentials expire**, add the connection again with the same name to replace them. Each channel page lists that platform's credential lifetime.
* **Custom app connections show a Custom app badge** on the Connections page, so you can tell at a glance which client runs under which app.

***

## Related

<CardGroup cols={2}>
  <Card title="Custom Google Cloud App" icon="google" href="/core-concepts/custom-google-app">
    One Cloud app for every Google channel: create it, mint refresh tokens, connect.
  </Card>

  <Card title="Custom Meta App" icon="meta" href="/core-concepts/custom-meta-app">
    One Meta app for Meta Ads, Facebook and Instagram: create it, generate a token, connect.
  </Card>

  <Card title="Custom Slack App" icon="slack" href="/nodes/slack/slack_custom_app">
    Create a Slack app with your own name and icon.
  </Card>

  <Card title="Connections" icon="plug" href="/core-concepts/connections">
    How connections, sharing, and privacy work.
  </Card>

  <Card title="Bring Your Own API Keys" icon="key" href="/core-concepts/bring-your-own-keys">
    Use your own AI provider keys to cut credit costs.
  </Card>
</CardGroup>
