Skip to content

SourceSay Pro guides

SourceSay Pro documentation

How to activate your license and use every Pro feature: follow-up questions, the blind spot and lifetime value reports, integrations with GA4, Meta, Klaviyo and FluentCRM, white label and copy setup. Developer notes and troubleshooting are at the end.

Needs free SourceSayWordPress 6.5 or laterPHP 7.4 or laterWooCommerce
01

Install and activate your license

WooCommerce > SourceSay > License

SourceSay Pro is an add-on. It needs the free SourceSay plugin and WooCommerce, and WordPress will not activate Pro without them.

Install

  1. Install and activate the free SourceSay plugin from WordPress.org.
  2. After checkout, sign in to your account page with the email you used to pay. Download SourceSay Pro and copy your license key. It starts with SS- and has this format: SS-XXXX-XXXX-XXXX-XXXX.
  3. In WordPress, go to Plugins > Add New Plugin > Upload Plugin, choose the SourceSay Pro zip, install it and activate it.
  4. Open WooCommerce > SourceSay > License, paste the key and choose Activate SourceSay Pro.

Good to know: your free SourceSay features keep working whether Pro is active or not.

What the License tab shows

  • SourceSay Pro is active on this site: Pro features and automatic updates are on. You see your plan, sites used, the renewal date and the end of your key.
  • Active until your subscription ends: the subscription was cancelled. Pro keeps working until the date shown. Renew any time before then to keep it.
  • Your SourceSay Pro license has expired: Pro features and updates are paused. Renew and Pro switches back on by itself.
  • This license is no longer valid: it was refunded or cancelled. Buy a new license, or contact us if this looks wrong.

SourceSay checks the license once a day. If the license server cannot be reached, the tab shows the last known details and Pro keeps working. Choose Check again to refresh.

Move Pro to another store

On the License tab, choose Deactivate on this site. The slot is free again and you can activate the same key on the new store. Answers and settings stay on the old store.

Updates

Updates arrive in Dashboard > Updates while your license is active. Every update is signed and checked before it installs.

When the license ends

Pro stops showing extra questions, stops sending answers to integrations and shows one card on each Pro feature: “Your SourceSay Pro license is not active”, with a link to the License tab. Nothing is deleted: answers, follow-up answers, integration details and white label settings are kept for when you renew.

02

Follow-up questions

WooCommerce > SourceSay > Survey > More questions

Ask up to 10 more questions after “How did you hear about us?”. Customers see them one at a time in the same box, with Back and Skip this question. They appear on the order confirmation page and in My Account, View order, the same as the first question.

Add a question

  1. Open the Survey tab and find the More questions card.
  2. Start with a ready-made question, or choose Write my own question.
  3. Pick the Type of answer, write the question and, for choice types, add 2 to 12 answers.
  4. Set When to ask and Who sees it if you want (see below). The preview on the right updates as you type.
  5. Choose Save changes. Questions are asked in the order shown; use the arrows to move them.

Answer types

Type What customers do
One choice Pick one answer from your list.
Several choices Tick every answer that applies.
Dropdown Pick one answer from a compact list. Good for long lists.
0 to 10 score (NPS) Say how likely they are to recommend you. Reports turn it into a Net Promoter Score.
Star rating Give 1 to 5 stars, for example for the shopping experience.
Short text Type a short answer in their own words.

Only ask when an earlier answer matches

Under When to ask, choose Only ask when… and tick the answers that trigger the question, for example ask “How often do you listen to that podcast?” only when the answer to “How did you hear about us?” is Podcast. A question can depend on the first question or on any question above it. Customers who answered something else, or skipped, are not asked. Until you tick an answer, the question is asked to everyone.

Who sees it

  • Customers: everyone, first-time (no earlier paid order) or returning (at least one). Customers are recognised by account, or by billing email for guests.
  • Product categories: only when the order has a product from the categories you tick. A category includes its subcategories.
  • Order total from / up to: only for orders in that range.

Testing: test orders always see every question, so you can try them all. Switch Ask this question off to keep a question without asking it.

Where the answers go

Answers show up in the Follow-up questions report, get one column per question in the CSV export, and are included in the WordPress personal data export and erase tools for that order.

03

Pro reports

WooCommerce > SourceSay > Reports

Three Pro cards appear under the free report and follow the same date range. Each has findings in plain words and a table with every number behind the chart.

Blind spot

WooCommerce Order Attribution records where each visit came from. The Blind spot card groups that into Direct, Organic search, Paid ad, Referral, Social, Email and Unknown, and splits each one by what those customers told you. Direct and Unknown rows are marked as blind spots. Switch between Revenue and Orders at the top right.

  • What WooCommerce missed lists findings such as “50% of the revenue WooCommerce calls Direct came from customers who said Podcast.” They appear once 10 answered orders have WooCommerce source data.
  • See every number opens the full table: each cell shows the amount and its share of that WooCommerce source.
  • Order Attribution is on by default since WooCommerce 8.5. If the card says there is no source data, check WooCommerce > Settings > Advanced > Features.

Lifetime value by channel

Follows the customers who answered in the date range, counted once each (by account, or by billing email for guests), and every paid order they placed after the answered one, after refunds.

  • Who keeps buying: which channel’s customers come back most and spend the most.
  • 30, 90, 180 and 365 days: average revenue per customer in the first days after the answered order. Only customers whose answered order is at least that many days old count, shown as n. Pick a date range that starts earlier to include more.
  • Bought again, First order and Later orders are in the table under the chart.

Follow-up questions

One card per question with the share of each answer. Score questions show the Net Promoter Score (promoters 9 to 10 minus detractors 0 to 6, from -100 to +100) and star questions the average out of 5, both split by channel. Short text answers are listed with their date. Channels with fewer than 5 answers can swing a lot: read them as a hint.

04

Integrations

WooCommerce > SourceSay > Integrations

Each answer is sent in the background after the customer gives it, so a slow or broken service can never slow down checkout. Failed sends are tried again up to 3 times. Test orders and skipped surveys are never sent.

  1. Open the card for the service and switch on Send answers to that service.
  2. Fill in the keys. Where do I find this? in the card shows the same steps as below.
  3. Choose Save changes, then Send a test.

Saved keys are never shown again in full. Choose Replace key to change one. Each card shows when the last answer was sent, or why the last attempt failed.

Google Analytics 4

Adds a sourcesay_answer event with the channel, order value, currency and order number, so you can compare it with GA4's own traffic sources. You need the Measurement ID and an API secret.

  1. In Google Analytics, open Admin (the gear icon, bottom left).
  2. Under Data collection and modification, choose Data streams, then click your website stream.
  3. Copy the Measurement ID at the top right. It starts with G-.
  4. On the same page, open Measurement Protocol API secrets, click Create, name it SourceSay, and copy the Secret value.

Meta Conversions API

Sends a SourceSayAnswer event so your Facebook and Instagram ads can learn from what customers said. Emails and customer IDs are hashed before they leave your site. You need the Pixel ID and an Access token.

  1. Open Meta Events Manager and pick your Pixel (dataset). The Pixel ID is shown under its name.
  2. Go to Settings, scroll to Conversions API, and click Generate access token. Copy it right away: Meta shows it once.
  3. To try it first, open the Test events tab and copy the test event code (it looks like TEST12345) into Test event code. Clear it when you are ready to go live.

Klaviyo

Saves heard_via, heard_via_label and heard_via_detail on each customer's profile, so you can build segments like “Instagram customers”. You need a Private API key (starts with pk_, not the public site ID).

  1. In Klaviyo, click your account name (bottom left), then Settings.
  2. Open API keys and click Create private API key. Name it SourceSay.
  3. Under Select Access Level choose Custom Key, set profiles to Read/Write Access and leave the rest on No Access. Scopes cannot be changed later.
  4. Click Create and copy the key. Klaviyo shows it once.

FluentCRM

Adds each customer to FluentCRM on your own site and tags them “Heard via: <channel>”, so you can segment and email by where they came from. No account details needed.

  1. Install and activate FluentCRM on the same site.
  2. Switch on Send answers to FluentCRM and choose Save changes.
  3. Optional: add a custom contact field with the key heard_via to store the channel there too.
05

White label and copy setup

WooCommerce > SourceSay > Settings

White label

  1. In the White label card, switch on Use my own brand.
  2. Enter a Brand name, for example your agency name, and choose a logo. A square image works best.
  3. Optional: Hide the plugin author name and links removes “By” credits and the Docs and upgrade links. Hide the License tab from other people means only you see the License tab and can change these settings.
  4. Choose Save white label. The Plugins screen and dashboard widget update on your next page load.

Your name and logo replace ours on the WooCommerce menu, the Plugins screen, the dashboard widget and the SourceSay screen. Customers never see this: the survey always shows your own question and answers. Turn it off at any time to bring everything back exactly as it was.

Copy setup between sites

  1. On the store you set up, choose Export setup. A setup file downloads.
  2. On the other store, choose Import setup and pick the file.
  3. Check the summary of what importing will change, then choose Apply these changes.

The file copies the survey, follow-up questions and look. It holds no license key, no API keys and no customer answers, so integrations need their keys entered again on the new store. Importing replaces the current survey settings.

06

Developer notes

Pro builds on the free plugin’s hooks, listed in the free docs. The routes, hooks and options below are added by Pro.

REST routes

All routes are under /wp-json/sourcesay-pro/v1. Admin routes are for users who can manage WooCommerce.

Route What it does
GET /license License status. Add refresh=1 to ask the license server first.
POST /license/activate Activate with license_key.
POST /license/deactivate Free this site’s slot. The site secret never leaves the server.
GET and POST /integrations Read or save service settings. A blank secret keeps the stored one.
POST /integrations/test/<service> Send a test to ga4, meta, klaviyo or fluentcrm.
GET and POST /agency Read or save white label settings.
GET /setup/export, POST /setup/import Copy setup between sites.
POST /answer Public route the survey uses to save a follow-up answer. Checked against the order key and rate limited.

Hooks

  • sourcesay_pro_enabled (filter, bool): true only while the license is active. Every Pro feature checks it.
  • sourcesay_pro_answer_saved (action): runs after a follow-up answer is saved, with $order_id, $question_id, $row and $order.
add_action( 'sourcesay_pro_answer_saved', function ( $order_id, $question_id, $row, $order ) {
  // $row['value_label'] is the readable answer.
  // $row['value_num'] is the score for NPS and star questions.
}, 10, 4 );

Data

  • Follow-up answers live in the table wp_sourcesay_pro_answers (with your own table prefix), one row per order and question. Read them with sourcesay_pro_get_answers( $order_id ).
  • Integrations run as the Action Scheduler job sourcesay_pro_sync (group sourcesay-pro, 3 attempts). The last 50 outcomes are in the option sourcesay_pro_integrations_log and hold no personal data.
  • Settings: options sourcesay_pro_integrations and sourcesay_pro_agency. Questions are stored in the free settings under pro_questions.
  • Deleting Pro deactivates the license. Pro data is removed only when the free setting to delete all SourceSay data on uninstall is on.
07

Troubleshooting

“That license key was not found”

Check the key for typos, or copy it again from your account page. A SourceSay Pro key starts with SS-. A key for another product, such as SwiftWebDev Dashboard PRO, does not work here.

“This license is already in use on all the sites your plan allows”

Deactivate it on a store you no longer use (SourceSay > License on that store), or move to a bigger plan from your account page.

“Your site could not reach the license server”

Your server blocks outgoing connections. Ask your host to allow HTTPS requests from WordPress, then try again in a few minutes. Pro keeps working on an already active site while the server cannot be reached.

The follow-up questions do not show

Check that Ask this question is on and that you saved. Then check When to ask and Who sees it: a question that depends on an answer is only asked after that answer. Place a test order to see every question. If your store uses a custom thank-you page, add the SourceSay block or shortcode as described in the free docs.

The Blind spot card says there is no source data

Turn on Order Attribution under WooCommerce > Settings > Advanced > Features. It only records new orders, so older answers stay without a source.

Lifetime value says there is not enough time yet

No customer is 30 days past their answered order in this date range yet. Pick a date range that starts earlier.

An integration test failed

The card shows the reason. Check that the key is complete and still exists in the service, and for Klaviyo that the key has profiles set to Read/Write Access. Choose Replace key to paste a new one, save, then send another test.

Pro cards say the license is not active

Open the License tab. Renew in your account if it expired, then choose Check again. Your data is kept the whole time.

Still stuck?

Email support for the plugin is part of every plan. Tell us what you tried and what you see.