> For the complete documentation index, see [llms.txt](https://help.ringtonic.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.ringtonic.app/guides/campaigns.md).

# Campaigns

### What are Campaigns?

<figure><img src="/files/RyHYAQTvMhWjPSieM2OJ" alt=""><figcaption></figcaption></figure>

Campaigns help you track conversions from different marketing sources. Ring Tonic offers two types of campaigns to suit different marketing needs:

* **Website Tracker:** Tracks website visitors with form attribution and phone calls. Automatically swaps phone numbers and/or injects attribution data into forms based on visitor source. Perfect for tracking which online channels (organic search, paid ads, social media) drive conversions.
* **Static:** Uses one or more dedicated tracking numbers. Ideal for offline marketing like billboards, print ads, radio spots, or regional advertising campaigns.

{% hint style="info" %}
Most businesses use Website Tracker campaigns for their website and Static campaigns for offline marketing materials. You can create as many campaigns as needed to track different marketing channels.
{% endhint %}

***

### When to Use Website Tracker vs Static

**Use** [**Website Tracker**](#id-1.-create-a-website-tracker-campaign) **when:**

* You want to track website visitors from different sources (Google Ads, Facebook Ads, organic search)
* You need to know which online marketing channel drove each call or form submission
* You want automatic phone number swapping based on visitor source
* You want to capture marketing attribution data (GCLID, UTM params) in your website forms

**Use** [**Static Campaigns**](#id-2.-create-a-static-campaign) **when:**

* You're running offline marketing (billboards, flyers, radio ads, TV commercials)
* You need one or more dedicated numbers for a specific campaign
* You want to track regional campaigns with different local numbers under one campaign
* You're tracking calls from a dedicated source that doesn't change (like a newsletter or email signature)

***

### 1. Create a Website Tracker Campaign

Website Tracker campaigns let you track website conversions using phone calls, form submissions, or both.

{% hint style="info" %}
**New campaigns start without routing.** The Create form only asks for the basics — campaign name, tracking type, swap target, and number pool. After creating the campaign, you'll land on the campaign page where you can pick how calls reach you (forward to a number, attach a call flow, or build a new flow). See the [Call Flow Builder](/guides/call-flow-builder.md) for routing options.
{% endhint %}

#### Step 1: Configure Basic Information

1. Go to **Campaigns** → **Create Website Tracker**
2. Fill in the campaign details:
   * **Campaign name:** Choose a descriptive name (e.g., "Summer Website Campaign" or "2024 Google Ads")

#### Step 2: Choose What to Track

Select one, two, or all three tracking methods. The three are independent — enable whichever combination fits your use case.

* **Phone Calls** — Dynamically swaps phone numbers on your website to track call sources. Requires a pool of at least 2 tracking numbers.
* **Form Attribution** — Injects attribution data (GCLID, UTM params, etc.) into the customer's existing forms as hidden fields, so the customer's own backend keeps the attribution.
* **Form Submissions** *(Agency plan)* — Captures form submissions as leads in Ring Tonic itself: the moment a user clicks Submit, a beacon ships a copy of the form data to your Ring Tonic workspace as a [Contact](/guides/contacts.md), even if the customer's backend errors out. See [Form Submissions](/guides/form-submissions.md) for setup details.

{% hint style="info" %}
You must enable at least one tracking method. The three are independent — Form Attribution writes *into* the customer's form, Form Submissions sends a copy *out* to Ring Tonic, and Phone Calls swaps phone numbers on the page.
{% endhint %}

<figure><img src="/files/HkXijuGC03N2QhBNVwYF" alt=""><figcaption><p>Choose what to track: Phone Calls, Form Attribution, Form Submissions, or any combination</p></figcaption></figure>

**When Phone Calls is enabled**, the **Swap target** field appears:

* **Swap target:** Enter the phone number currently displayed on your website

{% hint style="info" %}
The swap target is the phone number visitors currently see on your site. Ring Tonic will automatically replace this number with tracking numbers from your pool. The forwarding number, voicemail, recording, and other routing settings are configured on the campaign page after creation.
{% endhint %}

<figure><img src="/files/fAu7XOJROmOrHBWQaTAh" alt=""><figcaption><p>Configure your Website Tracker campaign's basic information</p></figcaption></figure>

#### Step 3: Configure Number Pool (Phone Calls only)

This step only appears when **Phone Calls** tracking is enabled.

1. **Area code:** Enter a 3-digit area code (e.g., 206 for Seattle)
2. **Pool size:** Choose how many tracking numbers to create (2, 4, 8, 12, 16, or 20 numbers)

{% hint style="success" %}
**Best Practice:** Ring Tonic recommends 4 numbers per 100 daily website visitors. For example, if you get 500 visitors per day, choose a pool size of 20 numbers.
{% endhint %}

<figure><img src="/files/nrPdUI6QcUOIYxw4XGZ0" alt=""><figcaption><p>Configure your number pool size based on website traffic</p></figcaption></figure>

#### Step 4: Advanced Configuration (Phone Calls only)

This section only appears when **Phone Calls** tracking is enabled.

**CSS Selector** - If you want the script to only swap numbers in specific elements on your website:

1. Enter a CSS selector (e.g., `.phone-number` or `#contact-phone`)
2. Leave empty to swap all instances of your swap target number

**Common CSS selectors:**

* `.phone-number` - Elements with class "phone-number"
* `#contact-phone` - Element with ID "contact-phone"
* `.header .phone` - Elements with class "phone" inside header elements

<figure><img src="/files/OitgWkel0wDqcWOuR1uf" alt=""><figcaption><p>Use CSS selectors to target specific elements on your website</p></figcaption></figure>

#### Step 5: Configure Security

Add the domains where your tracking script should run:

1. Enter your domain (e.g., `example.com`)
2. Add additional domains if needed (e.g., `www.example.com`, `shop.example.com`)
3. Press Enter after each domain

{% hint style="warning" %}
**Security Notice:** The tracking script will only execute on domains you specify here. This prevents unauthorized use of your tracking numbers on other websites.
{% endhint %}

<figure><img src="/files/urG5LKGxtb3qN4Y7mThl" alt=""><figcaption><p>Specify which domains are allowed to use your tracking script</p></figcaption></figure>

#### Step 6: Configure Conditional Tracking (Phone Calls only)

This section only appears when **Phone Calls** tracking is enabled. Conditional Tracking lets you swap phone numbers only for visitors from specific marketing channels. This is useful when you manage some channels but not others, or when you want to use a smaller number pool for targeted tracking.

{% hint style="info" %}
Conditional Tracking only affects phone number swapping. If you have Form Attribution enabled, form attribution injection always works regardless of this setting.
{% endhint %}

<figure><img src="/files/fmvYSYadNSKfU910d4Sw" alt=""><figcaption><p>Conditional Tracking settings</p></figcaption></figure>

**Enable Conditional Tracking:**

1. Check **Only swap when marketing parameters are present**
2. Choose your parameter mode:

**Any Marketing Parameter Mode:**

* Numbers are swapped when visitors have any common marketing parameter
* Includes: gclid (Google Ads), fbclid (Facebook), msclkid (Microsoft Ads), ttclid (TikTok), utm\_source, utm\_medium, and more
* Best for: Tracking all paid/marketing traffic while ignoring organic visitors

**Specific Parameters Only Mode:**

* Numbers are swapped only for visitors with specific parameters you choose
* Select from a list of common parameters (gclid, fbclid, msclkid, utm\_source, etc.)
* Best for: Tracking specific channels like "Google Ads only" or "Facebook Ads only"

{% hint style="warning" %}
**Important:** Visitors without the required parameters will see your original phone number and won't be tracked for calls. They won't appear in your call analytics. However, form attribution injection still works for these visitors if Form Attribution tracking is enabled.
{% endhint %}

{% hint style="success" %}
**Use Case Example:** You run Google Ads but your client manages their own Facebook Ads. Enable Conditional Tracking with "Specific parameters only" and select just `gclid`. Now only Google Ads visitors get tracked with phone swapping, reducing your number pool needs and keeping tracking focused on what you manage.
{% endhint %}

#### Step 7: Configure Form Attribution (Form Attribution only)

This section only appears when **Form Attribution** tracking is enabled. Form Attribution automatically adds marketing attribution data (GCLID, FBCLID, UTM parameters, Google Analytics IDs) as hidden fields into forms on your website. When visitors submit a form, you capture the same attribution data that's tracked with phone calls.

<figure><img src="/files/5j0FOGsVxyoRTZMmEHNQ" alt=""><figcaption><p>Form Attribution settings</p></figcaption></figure>

**Configure Form Attribution:**

1. Configure optional settings:

**Form Selector (Optional):**

* Enter a CSS selector to target specific forms (e.g., `#contact-form` or `.lead-form`)
* Leave empty to inject into all forms on the page

**Field Name Prefix (Optional):**

* Add a prefix to all injected field names (e.g., `ct_` creates fields like `ct_gclid`, `ct_utm_source`)
* Useful to avoid conflicts with existing form fields
* Must start with a letter or underscore, and contain only letters, numbers, and underscores

**Custom Field Mapping (Optional):**

* Rename specific fields to match your CRM or form processor requirements
* For example, map `gclid` to `google_click_id` if your CRM expects that field name

<figure><img src="/files/q54EyDONwwZboJvh4DuW" alt="" width="563"><figcaption><p>Custom field mapping</p></figcaption></figure>

{% hint style="info" %}
**What data is injected?** Ring Tonic injects the following fields (only when they have values):

* **Click IDs:** gclid, gbraid, wbraid (Google), fbclid (Facebook), msclkid (Microsoft), ttclid (TikTok), li\_fat\_id (LinkedIn)
* **UTM Parameters:** utm\_source, utm\_medium, utm\_campaign, utm\_term, utm\_content
* **Google Analytics:** ga\_client\_id, ga\_session\_id
  {% endhint %}

{% hint style="success" %}
**Debug Mode:** Add `?ct_debug=true` to your URL to make injected fields visible and fetch fresh settings from the server. This bypasses the session cache, so you can test configuration changes immediately without waiting for sessions to expire.
{% endhint %}

<figure><img src="/files/69Agwkl4afY64B6RrCBR" alt="" width="563"><figcaption><p>Form attribution injection with debug mode on</p></figcaption></figure>

#### Step 8: Configure Form Submissions (Form Submissions only — Agency plan)

This section only appears when **Form Submissions** tracking is enabled (Agency plan). Form Submissions captures the customer's form submissions as leads in Ring Tonic, even if the customer's backend errors out.

Configure these settings:

* **Honeypot field name** *(optional)* — name of a hidden form field that bots typically fill (e.g. `rt_website`). Submissions where this field has a value are silently dropped.
* **Field mapping** — tell Ring Tonic which form fields correspond to `name`, `email`, `phone`, `company`, `value`, or any custom field. Selectors can be CSS (`input[name="email"]`) or input names.
* **Origin allowlist override** *(optional)* — restrict the form-submission endpoint to specific hostnames, separate from the tracking script's general Allowed domains.

See the dedicated [Form Submissions](/guides/form-submissions.md) guide for the full reference, including how submissions flow into the [Contacts](/guides/contacts.md) pipeline.

{% hint style="info" %}
**Form Submissions vs. Form Attribution:** Form Attribution writes data *into* the customer's existing form so the customer's backend keeps the attribution. Form Submissions sends a copy of the submission *out* to Ring Tonic so you have the lead regardless of the customer's backend. Enable both for full coverage.
{% endhint %}

#### Step 9: Bot Detection (Phone Calls only)

This section only appears when **Phone Calls** tracking is enabled.

1. **Bot detection** is enabled by default for all Website Tracker campaigns
2. Uncheck to disable if you want bots and crawlers to receive tracking numbers

{% hint style="info" %}
**What is bot detection?** Bot detection automatically identifies web crawlers and bots (like Googlebot, Bingbot, and other search engine crawlers) and prevents them from being assigned tracking numbers. This preserves your number pool for real visitors and ensures accurate analytics.
{% endhint %}

{% hint style="success" %}
**Why keep bot detection enabled?** Search engine crawlers regularly visit your website to index content. Without bot detection, these automated visits would consume tracking numbers from your pool, reducing availability for real visitors and skewing your analytics data.
{% endhint %}

#### Step 10: Create Campaign

Click **Create Campaign** to provision your tracking numbers and create the campaign.

{% hint style="success" %}
Ring Tonic will automatically search for available numbers in your chosen area code and create your number pool. This process takes just a few seconds.
{% endhint %}

#### Step 11: Pick Routing on the Campaign Page

After creating, you'll land on the campaign page where you can pick how calls reach you. See [Configure Routing](#id-3.-configure-routing) below for full setup details on each mode.

#### Step 12: Install the Tracking Script

After creating your Website Tracker campaign, you need to add the tracking script to your website. This script handles both phone number swapping and form attribution injection depending on your campaign configuration.

**Step 1: Copy the Script**

1. Go to your campaign details page
2. Copy the installation script from the "Installation" section

The script looks like this:

```html
<script id="ct-script" src="https://ringtonic.app/swap.js" data-campaign-id="{campaign-uuid}" defer></script>
```

{% hint style="info" %}
If you only have **Form Attribution** enabled (no phone tracking), the same script is used. It will only inject attribution data into forms without swapping any phone numbers.
{% endhint %}

<figure><img src="/files/n3efIXBwSvsFutM8SZ6A" alt=""><figcaption><p>Copy the tracking script from your campaign details page</p></figcaption></figure>

**Step 2: Add to Your Website**

1. Paste the script before the closing `</body>` tag on every page where you want to track conversions
2. Save and publish your changes

The script will automatically find and swap phone numbers matching your swap target (if phone tracking is enabled) and inject attribution data into forms (if form tracking is enabled).

**Example:**

```html
<!DOCTYPE html>
<html>
<head>
   <title>Your Website</title>
</head>
<body>
<!-- Your website content -->
<h1>Contact Us</h1>
<p>Call us at: <span class="phone-number">+1 (206) 555-0123</span></p>

<!-- Add Ring Tonic script before closing body tag -->
<script id="ct-script" src="https://yourdomain.com/swap.js" data-campaign-id="abc123def456" defer></script>
</body>
</html>
```

{% hint style="info" %}
If you specified a CSS selector, the script will only swap numbers in those specific elements. Otherwise, it swaps all instances of your swap target number.
{% endhint %}

**Step 3: Test Your Installation**

1. Visit your website
2. If phone tracking is enabled, check that phone numbers are being swapped to tracking numbers
3. If form tracking is enabled, add `?ct_debug=true` to your URL to verify hidden fields are being injected into your forms
4. Call one of the tracking numbers to verify calls are forwarding correctly (if applicable)

{% hint style="success" %}
The script only runs on allowed domains you specified during setup. If testing on localhost or a staging domain, make sure to add it to your allowed domains list.
{% endhint %}

#### GDPR Privacy Compliance (Optional)

If your website serves visitors from the EU or California, you may need to delay tracking until visitors accept your cookie consent banner. Ring Tonic supports GDPR-compliant installation by allowing you to manually start tracking after consent is given.

<figure><img src="/files/XOgbN7m3CxPuGG24u8KW" alt=""><figcaption><p>GDPR Privacy Compliance Instruction in the Campaign Detail Page</p></figcaption></figure>

**Step 1: Use the Deferred Script**

Add `data-auto-start="false"` to prevent automatic tracking when the page loads:

```html
<script id="ct-script" src="https://ringtonic.app/swap.js" data-campaign-id="{campaign-uuid}" data-auto-start="false" defer></script>
```

{% hint style="info" %}
With `data-auto-start="false"`, the script loads but does **not** swap phone numbers or inject form data until you explicitly call `window.RingTonic.init()`.
{% endhint %}

**Step 2: Start Tracking After Consent**

Call `window.RingTonic.init()` when the user accepts cookies in your consent manager:

```html
<script>
  // Call this after user accepts cookies
  CookieBanner.on('accept', function() {
      window.RingTonic.init();
  });
</script>
```

{% hint style="warning" %}
Replace `CookieBanner.on('accept', ...)` with the callback from your cookie consent manager (Cookiebot, OneTrust, CookieYes, etc.). Each provider has different callback syntax.
{% endhint %}

**Common Cookie Consent Manager Examples:**

| Provider      | Callback Example                                                                                                                                |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cookiebot** | `window.addEventListener('CookiebotOnAccept', function() { window.RingTonic.init(); });`                                                        |
| **OneTrust**  | `OneTrust.OnConsentChanged(function() { if (OnetrustActiveGroups.includes('C0002')) window.RingTonic.init(); });`                               |
| **CookieYes** | `document.addEventListener('cookieyes_consent_update', function(e) { if (e.detail.accepted.includes('analytics')) window.RingTonic.init(); });` |

{% hint style="success" %}
**How it works:** When visitors arrive without consent, they see your original phone number and forms without attribution fields. After they accept cookies and `window.RingTonic.init()` is called, the script swaps in the tracking number and injects attribution data into forms. This ensures you only track visitors who have explicitly consented.
{% endhint %}

{% hint style="info" %}
**IP Anonymization:** Ring Tonic automatically anonymizes visitor IP addresses for GDPR compliance. The last octet of IPv4 addresses (e.g., `192.168.1.100` → `192.168.1.0`) and the last 64 bits of IPv6 addresses are zeroed before storage.
{% endhint %}

#### Disabling Phone Tracking on an Existing Campaign

If you need to switch an existing Website Tracker campaign from phone + form tracking to form-only:

1. Go to the campaign's **Edit** page
2. Uncheck **Phone Calls** under "What would you like to track?"
3. A confirmation dialog will appear warning you that inbound calls to your tracking numbers will be rejected
4. Click **Disable Phone Tracking** to confirm

{% hint style="info" %}
**Settings are preserved.** When you disable phone tracking, your simple routing settings (forwarding number, call recording, whisper, voicemail, etc.) and any attached call flow are saved. If you re-enable phone tracking later, your previous routing configuration will be restored.
{% endhint %}

{% hint style="warning" %}
**Tracking numbers remain assigned** but inbound calls will be rejected with a busy signal. You cannot assign new tracking numbers to a campaign with phone tracking disabled.
{% endhint %}

{% hint style="info" %}
**Routing config is hidden while phone tracking is off.** Since calls are rejected anyway, the routing card (simple routing summary, attached call flow, or routing picker) is hidden from the campaign page. Re-enabling phone tracking restores the routing card with your previous settings intact.
{% endhint %}

***

### 2. Create a Static Campaign

Static campaigns use one or more dedicated tracking numbers, perfect for offline marketing materials and regional campaigns.

{% hint style="info" %}
**New campaigns start without routing.** The Create form only asks for the basics — campaign name and tracking number(s). After creating the campaign, you'll land on the campaign page where you can pick how calls reach you (forward to a number, attach a call flow, or build a new flow). See the [Call Flow Builder](/guides/call-flow-builder.md) for routing options.
{% endhint %}

#### Step 1: Configure Basic Information

1. Go to **Campaigns** → **Create Static Campaign**
2. Fill in the campaign details:
   * **Campaign name:** Choose a descriptive name (e.g., "Facebook Ads Campaign" or "Billboard - Highway 101")

<figure><img src="/files/NZX0nLBBwh5RV61NPOPG" alt=""><figcaption><p>Configure your static campaign's basic information</p></figcaption></figure>

#### Step 2: Choose Number Source

Ring Tonic gives you two options for getting tracking numbers. You can select multiple numbers to add to a single campaign.

**Option 1: Purchase New Numbers**

Perfect when you want fresh numbers with specific criteria:

1. Select **Purchase new number**
2. Choose your **Country** (e.g., United States)
3. **Basic Filters:**
   * **City/Locality:** Narrow down to specific cities (e.g., Phoenix, Scottsdale)
   * **Area Code:** Enter a 3-digit area code (e.g., 206)
   * **State/Territory:** Select your preferred state or region
   * **ZIP Code:** Search by postal code for local numbers
4. **Advanced Filters** (Optional):
   * **Contains Digits:** Find numbers with specific digit patterns
     * Choose "Starts with" or "Anywhere" for digit position
     * Enter at least 2 digits (e.g., "55" to find numbers like 555-XXXX)
5. Click **Search Numbers** to find available numbers
6. Browse results showing:
   * Phone number with location details
   * Voice/SMS/MMS capabilities
   * Monthly price
7. Click **Select** to add a number to your selection

**Selecting Multiple Numbers:**

You can select multiple numbers from different searches to add to your campaign:

1. Select numbers from the search results by clicking **Select**
2. Selected numbers appear in the **Selected Numbers** panel above the search results
3. Change your search filters (different state, area code, etc.) and search again
4. Select additional numbers - your previous selections are preserved
5. Remove numbers from the selection by clicking the **X** on any selected number
6. Use **Clear all** to remove all selected numbers

{% hint style="info" %}
**Tip:** Only group numbers that belong to the same marketing source. For example, you might add multiple local numbers for the same radio ad campaign running in different cities.
{% endhint %}

{% hint style="success" %}
**Pro Tip:** Use the "Contains Digits" filter to find memorable or vanity numbers. For example, searching for "777" might find numbers like (206) 777-5555.
{% endhint %}

<figure><img src="/files/j1AKJGfj4XHEvksdv9U6" alt=""><figcaption><p>Search for new numbers with advanced filtering options</p></figcaption></figure>

**Option 2: Use Existing Numbers**

Select unassigned phone numbers from your inventory:

1. Select **Use existing number**
2. Ring Tonic displays all unassigned phone numbers from your inventory
3. Browse available numbers showing:
   * Phone number (formatted)
   * Friendly name (if set)
4. Click **Select** on the numbers you want to use
5. Selected numbers appear in the **Selected Numbers** panel
6. Remove numbers by clicking the **X** on any selected number

{% hint style="info" %}
Only unassigned numbers appear in this list. If you need to use a number that's currently assigned to another campaign, you'll need to unassign it first from the [Phone Numbers](/guides/phone-numbers.md) page.
{% endhint %}

{% hint style="warning" %}
**No Numbers Available?** If you don't have any unassigned numbers in your inventory, you'll need to either:

* Purchase a new number using Option 1 above, or
* [Import existing numbers from Twilio](/guides/phone-numbers.md#importing-numbers-from-twilio) into your inventory first
  {% endhint %}

<figure><img src="/files/A9Muhr9oQpyoQQG0trXE" alt=""><figcaption><p>Select from unassigned numbers in your inventory</p></figcaption></figure>

#### Step 3: Create Campaign

Click **Create Campaign** to purchase the tracking numbers and create your campaign. The button will show the number of selected numbers (e.g., "Create Campaign with 3 Numbers").

{% hint style="success" %}
Your tracking numbers are now active! You can use them immediately in your marketing materials. All calls to these numbers will be logged in Ring Tonic with full tracking and analytics under this single campaign.
{% endhint %}

<figure><img src="/files/uHX0mG6qWlUvJjBBorYK" alt=""><figcaption><p>Your static campaign is created and ready to use</p></figcaption></figure>

#### Step 4: Pick Routing on the Campaign Page

After creating, you'll land on the campaign page where you can pick how calls reach you. See [Configure Routing](#id-3.-configure-routing) below for full setup details on each mode.

#### Step 5: Set Ad Locations (Optional)

For billboards, print ads, and other physical marketing, you can set the exact location where your ad is placed. This enables the **Billboard Rule** on [Money Map](https://help.ringtonic.app/guides/pages/FqrMOC4HeyPH7W0Eqtdm#id-4.-money-map)—showing calls at your ad placement instead of caller locations.

<figure><img src="/files/iZFLxpWAb2WBp6TWlDZk" alt=""><figcaption><p>Set Ad Locations for a Tracking Number</p></figcaption></figure>

**How to Set an Ad Location:**

1. Go to your static campaign's **Edit** page
2. Find the tracking number in the **Tracking Numbers** section
3. Click the **Set Location button** next to the number
4. Search for an address or move the pin on the map to set the location
5. Optionally add a **Location Label** (e.g., "Highway 101 Billboard")
6. Click **Save Location**

{% hint style="info" %}
**When to use Ad Locations:** Billboards, print ads, flyers, vehicle wraps, trade show booths—any physical marketing with a known location.
{% endhint %}

{% hint style="warning" %}
**No ad location set?** Calls will appear on Money Map at the caller's location (based on their phone number). This works fine for tracking call volume, but won't show where your physical ad is placed.
{% endhint %}

***

### 3. Configure Routing

After creating a campaign, you'll land on the campaign page where you decide how incoming calls reach you. Ring Tonic offers three routing modes:

* **Forward to a number** — Send calls straight to a single business line. Includes optional voicemail, call recording, whisper messages, spam filter, and transcription keyword spotting. Best for solo operators or single-destination routing.
* **Attach a call flow** — Use a published [call flow](/guides/call-flow-builder.md) for IVR menus, business hours, multi-destination ring groups, tags, conditional branching, and SMS follow-ups. Best for teams or multi-step intake.
* **Build a new flow** — Open the [call flow builder](/guides/call-flow-builder.md) right from the campaign page and design routing from scratch. Publishing the new flow auto-attaches it to this campaign — no return trip required.

<figure><img src="/files/cDvIy14gqD3W5AHhAXj0" alt=""><figcaption><p>Routing picker on the campaign page with three mode cards</p></figcaption></figure>

{% hint style="warning" %}
**Until you pick a routing mode, inbound calls fail.** A campaign with phone tracking enabled but no forward number and no attached call flow rejects callers with an error message. The campaign page shows a red **"Routing not configured"** alert above the picker, and the **Campaigns** index lists the campaign with a yellow **"Setup required"** badge — both as reminders to finish setup.
{% endhint %}

{% hint style="info" %}
**You can switch modes anytime.** Once a routing mode is configured, the campaign page shows a **Switch routing mode** button that lets you swap between simple routing and a call flow without recreating the campaign. Your existing settings are preserved across switches — going from simple to a call flow doesn't delete your forward number, and detaching a flow brings back any saved simple routing config. See [Switching Routing Modes](#switching-routing-modes) below.
{% endhint %}

#### Configure Simple Routing

Pick **Forward to a number** on the routing picker to open the simple routing dialog.

{% stepper %}
{% step %}
**Forward to**

Enter the phone number where calls should be forwarded — your business line, mobile, or call center.
{% endstep %}

{% step %}
**Voicemail (Optional)**

Choose how unanswered calls are handled:

* **Off** — Calls disconnect after the forward number rings out
* **Record** — Plays a greeting then records the caller's message (with transcription)
* **Greeting only** — Plays a message and hangs up (good for after-hours)

For Record and Greeting-only modes:

* **Greeting type:** Text-to-speech or upload an MP3
* **Greeting text/file:** Your message
* **Voice and language:** Used when greeting type is Text
  {% endstep %}

{% step %}
**Call Recording (Optional)**

Toggle on to record forwarded calls. Recordings appear in Call History with playback, transcription, and AI-powered call summaries.

{% hint style="warning" %}
**Two-party consent:** Some US states (California, Florida, Washington) require both parties to consent to recording. Combine recording with a Whisper or Greeting that informs callers the call is being recorded.
{% endhint %}
{% endstep %}

{% step %}
**Whisper Message (Optional)**

Plays a short message to the answering agent before connecting the caller. Templates support variables like `{{caller_number}}` and `{{campaign_name}}`.

Example: `Incoming call from {{caller_number}} via the {{campaign_name}} campaign.`

{% hint style="success" %}
**Why use whisper?** Even a one-line whisper dramatically improves agent context and pickup speed. Combine with a "press 1 to accept" gate to prevent carrier voicemail from stealing calls.
{% endhint %}
{% endstep %}

{% step %}
**Spam Filter (Optional)**

Toggle on to add a "press 1 to connect" gate before the call rings your forward number. This filters out 80%+ of robocaller traffic — silent bots can't press a digit.
{% endstep %}

{% step %}
**Transcription Keywords (Optional)**

Add keywords or phrases to highlight in call transcriptions (e.g., "appointment", "quote", "unsubscribe"). Hits appear in Call History and trigger optional notifications.
{% endstep %}

{% step %}
**Save**

Click **Save**. The campaign page now shows the simple routing summary card with **Edit** and **Switch routing mode** buttons.

<figure><img src="/files/lQgEtL6iVNxBrOZvFAvj" alt=""><figcaption><p>Simple routing summary card after configuration</p></figcaption></figure>
{% endstep %}
{% endstepper %}

#### Editing Simple Routing

Click **Edit** on the routing summary card to reopen the dialog and update any field. Changes apply to the next inbound call.

#### Switching Routing Modes

To switch from simple routing to a call flow (or vice versa), click **Switch routing mode** on the active routing card.

{% stepper %}
{% step %}
**Confirm the switch**

A dialog summarises what will happen. Your existing settings are preserved either way — your simple routing config stays saved on the campaign while a flow is attached, and detaching a flow brings back those saved values.
{% endstep %}

{% step %}
**Set up the new mode**

After confirming, the next mode's setup dialog opens automatically:

* Switching from **simple → flow** opens the **Attach a Call Flow** picker
* Switching from **flow → simple** opens the **Forward to a number** dialog (pre-filled with your previous values, if any)

You can configure the new mode immediately without returning to the routing picker.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
**Switching is non-destructive.** Detaching a call flow only removes the link to the flow; the flow itself isn't deleted and can be re-attached to this or any other campaign. Your simple routing settings are preserved across switches — they go inactive while a flow is handling calls, and become active again when you switch back.
{% endhint %}

***

### 4. Delete Campaigns

If you no longer need a campaign, you can delete it to stop tracking and release the phone numbers.

#### How to Delete a Campaign

1. Go to **Campaigns**
2. Find the campaign you want to delete
3. Click **Delete** (trash icon)
4. Read the confirmation message carefully
5. Click **Delete** to confirm

{% hint style="danger" %}
**Warning:** Deleting a campaign will permanently delete:

* All associated call logs
* All tracking numbers (released back to Twilio)
* All campaign analytics data
* This action cannot be undone

Make sure to export any important data before deleting a campaign.
{% endhint %}

<figure><img src="/files/2ZwNIz6oZFulmgkZ8PCG" alt="" width="563"><figcaption><p>Confirm campaign deletion - this action is permanent</p></figcaption></figure>

***

### 5. Share Campaigns

Share campaign analytics with clients via a secure public link—no Ring Tonic account required.

1. Select a campaign → Click **Share**
2. Toggle **Enable sharing** to generate your link
3. Optionally add password protection

Clients get read-only access to call activity, attribution, tracking number performance, and money map with your workspace branding.

{% hint style="info" %}
See [Share Campaign](/guides/share-campaign.md) for full details on password protection, white-label branding, and link management.
{% endhint %}

***

### 6. Voicemail Features

When voicemail is enabled, Ring Tonic provides the same AI-powered features for voicemails as live calls.

#### Call Status

| Status        | When Used                                                  |
| ------------- | ---------------------------------------------------------- |
| **Voicemail** | Caller left a message (Record mode)                        |
| **No Answer** | Play greeting only mode, or ghost voicemails (< 3 seconds) |

#### AI Features for Voicemails

<figure><img src="/files/6psYVbOZRQjm6676jaqS" alt=""><figcaption><p>AI features for voicemails</p></figcaption></figure>

All voicemail features require **Transcribe voicemails** to be enabled:

* **Transcription** - Voicemails are automatically transcribed using your configured provider (Deepgram/AssemblyAI)
* **Keyword spotting** - Campaign keywords are detected and highlighted in voicemail transcriptions
* **AI lead qualification** - Voicemails are auto-qualified using your workspace's qualification guidelines, just like live calls
* **Deal value estimation** - AI estimates potential deal value from voicemail content (if enabled)

{% hint style="success" %}
**Voicemails in analytics:** Voicemail metrics appear in Call Activity, Tracking Number Performance, and Attribution reports—helping you track which sources drive voicemails.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.ringtonic.app/guides/campaigns.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
