# Campaigns

### What are Campaigns?

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2F0xll0BsskLc7pkmztj1i%2FXnapper-2026-02-21-15.15.08.png?alt=media&#x26;token=6d3315e1-f0f9-47e0-9715-c45fe44a444e" 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.

#### 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 or both tracking methods:

* **Website Forms** — Injects attribution data (GCLID, UTM params, etc.) into forms as hidden fields. Track which marketing sources drive form submissions.
* **Phone Calls** — Dynamically swaps phone numbers on your website to track call sources. Requires a pool of at least 2 tracking numbers.

{% hint style="info" %}
You must enable at least one tracking method. You can enable both to track form submissions and phone calls from the same campaign.
{% endhint %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fcd9H4oyaas2R5aebJRyR%2FXnapper-2026-02-21-15.16.43.png?alt=media&#x26;token=1672c8db-4d44-43f6-aae4-ca13a571eaf6" alt=""><figcaption><p>Choose what to track: Website Forms, Phone Calls, or both</p></figcaption></figure>

**When Phone Calls is enabled**, two additional fields appear:

* **Forward calls to:** Enter your business phone number where calls should be routed
* **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.
{% endhint %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FzIa8yNTycA0qTwLUJDES%2FXnapper-2026-02-21-15.20.09.png?alt=media&#x26;token=f9cf6fe2-a161-4c40-b423-8c4344082f74" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-b3601fd52c8163c4a72478c32a35bd47b9f29736%2FXnapper-2025-11-14-17.33.53.png?alt=media" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-7e7b2b2de1a34f54d53caa9f789dee6caeaa7d3b%2FXnapper-2025-11-14-21.49.50.png?alt=media" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-24b6210971b76df2e9af993d3f7032e3b34c113e%2FXnapper-2025-11-14-21.50.28.png?alt=media" 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 Website Forms enabled, form attribution injection always works regardless of this setting.
{% endhint %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FrzoIgpL5ls8TURvUFBuw%2FXnapper-2025-12-08-11.22.23.png?alt=media&#x26;token=14702780-1610-4984-a4fc-6de69953e075" 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 Website Forms 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 Injection (Website Forms only)

This section only appears when **Website Forms** tracking is enabled. Form Attribution Injection 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FIuhPOg0p3seG382kTfql%2FXnapper-2026-02-03-18.37.30.png?alt=media&#x26;token=0290afb0-d158-4244-a84f-c7d9dea95dbe" alt=""><figcaption><p>Form Attribution Injection settings</p></figcaption></figure>

**Configure Form Attribution Injection:**

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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FPDYTOflTYMblCEZMsvjn%2FXnapper-2026-02-05-16.22.42.png?alt=media&#x26;token=74d33808-3118-4b48-b723-f6cffa8c2bcd" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2F6Lgvy4L6fqD1EUCttPUW%2FXnapper-2026-02-04-17.12.18.png?alt=media&#x26;token=2807c072-9ab0-49f7-aed2-9cabf2d9dfc8" alt="" width="563"><figcaption><p>Form attribution injection with debug mode on</p></figcaption></figure>

#### Step 8: Configure Call Features (Phone Calls only)

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

**Call Recording:**

1. Check **Call recording** to record all calls on this campaign
2. Optionally customize the recording announcement message (default: "This call will be recorded for quality assurance.")

**Transcription Keywords (Optional):**

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FeELuUQk9WUR2xCnVUZ24%2FXnapper-2025-12-10-17.16.16.png?alt=media&#x26;token=65914f99-366e-455e-8b69-d94480e4d732" alt=""><figcaption><p>Add Transcription Keywords</p></figcaption></figure>

When call recording is enabled, you can add keywords to improve transcription accuracy:

1. Enter brand names, product names, or industry-specific terms
2. Press Enter after each keyword to add it
3. Remove keywords by clicking the X on any tag

{% hint style="info" %}
**Why add transcription keywords?** Transcription services may struggle with uncommon words like brand names, technical terms, or industry jargon. Adding these keywords helps the AI recognize and accurately transcribe these terms in your call recordings.
{% endhint %}

{% hint style="success" %}
**Examples of good keywords:**

* Your company name and product names
* Competitor names frequently mentioned
* Industry acronyms (HVAC, SEO, PPC)
* Technical terms specific to your business
  {% endhint %}

**Whisper Message:**

1. Check **Whisper message** to play a message to your team before connecting the caller
2. Enter a custom message (e.g., "Call from Summer Website Campaign")
3. Leave empty to use the default: "Call from \[Campaign Name]"

{% hint style="info" %}
Whisper messages help your team identify which campaign the call is from before they answer, so they can provide a more personalized greeting.
{% endhint %}

**Spam Filter:**

1. Check **Spam filter** to require callers to press 1 before connecting
2. Optionally customize the prompt message (default: "Press 1 to connect with an agent.")
3. If the caller doesn't press 1, the call is marked as spam and disconnected

{% hint style="success" %}
**Why use spam filter?** Robocalls and automated dialers can't press buttons. Enabling spam filter blocks these unwanted calls, ensuring your team only receives calls from real people. Filtered calls are logged with a "Spam Filtered" status for your records.
{% endhint %}

**Bot Detection:**

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 %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2F7z0uXAiuYtuw99W82iSh%2FXnapper-2025-12-10-13.27.45.png?alt=media&#x26;token=f53a269c-a0c2-4684-92d3-60ac12d7aaa6" alt=""><figcaption><p>Enable call recording, whisper messages, spam filter, and bot detection for better call tracking</p></figcaption></figure>

#### Step 9: Configure Voicemail (Phone Calls only)

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

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FdRTzg4eWG2z6GsXvzRBz%2FXnapper-2025-12-16-00.21.45.png?alt=media&#x26;token=4c1552c9-1f1c-4992-a9c3-54aa5b83f657" alt=""><figcaption><p>Voice mail settings</p></figcaption></figure>

1. Check **Enable voicemail** to allow callers to leave messages when no one answers
2. Configure the **Ring duration** (5-60 seconds) - how long to ring before voicemail activates
3. Choose the voicemail behavior:
   * **Record voicemail** - Play greeting, then record the caller's message. Call status will be **Voicemail**
   * **Play greeting only** - Play an announcement without recording (e.g., "We're closed, call back tomorrow"). Call status remains **No Answer** since no message is stored
4. Configure the greeting message:
   * **Text-to-Speech** - Enter text that will be read aloud to callers
   * **Custom Audio** - Upload your own MP3, WAV, or OGG file (max 5MB)
5. Check **Transcribe voicemails** to automatically transcribe voicemail recordings using AI (only available in Record mode)

{% hint style="info" %}
**What happens when voicemail is enabled?** When a call goes unanswered after the ring duration, callers hear your greeting message. In Record mode, they can leave a message after the beep. The voicemail appears in your call logs with a "Voicemail" status.
{% endhint %}

{% hint style="success" %}
**Ghost voicemail filtering:** Ring Tonic automatically filters out voicemails shorter than 3 seconds. These "ghost" messages (where callers hang up immediately) are discarded to keep your inbox clean and save storage costs. The call status remains "No Answer" for filtered ghost voicemails.
{% 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: 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 **Website Forms** 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-2e3c44cb1f5a4eaf11867ddb1edd8fd544e04875%2FXnapper-2025-11-14-22.02.33.png?alt=media" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FdDyGPNGsoYIL2iYUywgV%2FXnapper-2025-12-30-16.34.20.png?alt=media&#x26;token=1c096143-0092-4a90-a866-b717b3c6d7f6" 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, all phone-related settings (forwarding number, call recording, whisper, voicemail, etc.) are saved. If you re-enable phone tracking later, all your previous settings 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 %}

***

### 2. Create a Static Campaign

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

#### 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")
   * **Forward calls to:** Enter your business phone number where calls should be routed

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-61264672be955ba1d419e3765d830f800678288d%2FXnapper-2025-11-14-22.03.50.png?alt=media" 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-1e6e26f222df1132eb0b9681dfe5891f59b4f1cc%2FXnapper-2025-11-19-20.39.50.png?alt=media" 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](https://help.ringtonic.app/guides/phone-numbers) 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](https://help.ringtonic.app/phone-numbers#importing-numbers-from-twilio) into your inventory first
  {% endhint %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-f536233e0ed2c22ada33199c86d148af77430c3e%2FXnapper-2025-11-26-21.13.56.png?alt=media" alt=""><figcaption><p>Select from unassigned numbers in your inventory</p></figcaption></figure>

#### Step 3: Configure Call Features

**Call Recording:**

1. Check **Call recording** to record all calls on this campaign
2. Optionally customize the recording announcement message

**Transcription Keywords (Optional):**

When call recording is enabled, you can add keywords to improve transcription accuracy:

1. Enter brand names, product names, or industry-specific terms
2. Press Enter after each keyword to add it
3. Remove keywords by clicking the X on any tag

{% hint style="info" %}
**Why add transcription keywords?** Transcription services may struggle with uncommon words like brand names, technical terms, or industry jargon. Adding these keywords helps the AI recognize and accurately transcribe these terms in your call recordings.
{% endhint %}

**Whisper Message:**

1. Check **Whisper message** to play a message to your team before connecting the caller
2. Enter a custom message to identify the campaign source

**Spam Filter:**

1. Check **Spam filter** to require callers to press 1 before connecting
2. Optionally customize the prompt message (default: "Press 1 to connect with an agent.")
3. If the caller doesn't press 1, the call is marked as spam and disconnected

{% hint style="success" %}
**Why use spam filter?** Robocalls and automated dialers can't press buttons. Enabling spam filter blocks these unwanted calls, ensuring your team only receives calls from real people. Filtered calls are logged with a "Spam Filtered" status for your records.
{% endhint %}

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-5392991afd958ba88567daebb27f0b5bfad6dbc8%2FXnapper-2025-11-27-16.33.24.png?alt=media" alt=""><figcaption><p>Enable call recording, whisper messages, and spam filter for your static campaign</p></figcaption></figure>

#### Step 4: Configure Voicemail (Optional)

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FdRTzg4eWG2z6GsXvzRBz%2FXnapper-2025-12-16-00.21.45.png?alt=media&#x26;token=4c1552c9-1f1c-4992-a9c3-54aa5b83f657" alt=""><figcaption><p>Voice mail settings</p></figcaption></figure>

1. Check **Enable voicemail** to allow callers to leave messages when no one answers
2. Configure the **Ring duration** (5-60 seconds) - how long to ring before voicemail activates
3. Choose the voicemail behavior:
   * **Record voicemail** - Play greeting, then record the caller's message. Call status will be **Voicemail**
   * **Play greeting only** - Play an announcement without recording (e.g., "We're closed, call back tomorrow"). Call status remains **No Answer** since no message is stored
4. Configure the greeting message:
   * **Text-to-Speech** - Enter text that will be read aloud to callers
   * **Custom Audio** - Upload your own MP3, WAV, or OGG file (max 5MB)
5. Check **Transcribe voicemails** to automatically transcribe voicemail recordings using AI (only available in Record mode)

{% hint style="info" %}
**What happens when voicemail is enabled?** When a call goes unanswered after the ring duration, callers hear your greeting message. In Record mode, they can leave a message after the beep. The voicemail appears in your call logs with a "Voicemail" status.
{% endhint %}

{% hint style="success" %}
**Ghost voicemail filtering:** Ring Tonic automatically filters out voicemails shorter than 3 seconds. These "ghost" messages (where callers hang up immediately) are discarded to keep your inbox clean and save storage costs. The call status remains "No Answer" for filtered ghost voicemails.
{% endhint %}

#### Step 5: 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-b483c64bcfb614645db60b143efe8d415396a3f9%2FXnapper-2025-11-14-21.50.56.png?alt=media" alt=""><figcaption><p>Your static campaign is created and ready to use</p></figcaption></figure>

#### Step 6: 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/analytics#id-4.-money-map)—showing calls at your ad placement instead of caller locations.

<figure><img src="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2F6o5lHzeTlLLF0iehjOAZ%2FXnapper-2025-12-29-23.38.06.png?alt=media&#x26;token=1d472eab-2b7c-42c0-bf6b-a0d5afa28b9b" 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. 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2Fgit-blob-daa910f5b416b5c05f2d01f33568a078d84a9e88%2FXnapper-2025-11-14-22.07.41.png?alt=media" alt="" width="563"><figcaption><p>Confirm campaign deletion - this action is permanent</p></figcaption></figure>

***

### 4. 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](https://help.ringtonic.app/guides/share-campaign) for full details on password protection, white-label branding, and link management.
{% endhint %}

***

### 5. 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="https://2905537093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXSbXRgC7knjpaMCHwuKc%2Fuploads%2FzDSoCV0f7idcQJz431NR%2FXnapper-2025-12-16-00.19.43.png?alt=media&#x26;token=886364cd-0f5c-4798-91dc-9b2906b24265" 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 %}
