Skip to content

Instantly share code, notes, and snippets.

@DanBradbury
Created September 25, 2014 20:24
Show Gist options
  • Save DanBradbury/9fff65b26601fc48d387 to your computer and use it in GitHub Desktop.
Save DanBradbury/9fff65b26601fc48d387 to your computer and use it in GitHub Desktop.
JIRA link: https://ringrevenue.atlassian.net/browse/STORY-902
STORY-902:
Pausing a Campaign
ORIGINAL ESTIMATE: None
TIME SPENT: None
*Problem:*
If customers want to pause a campaign, we currently coach customers to suspend the
advertiser or affiliate, which has negative connotations. The other option is to
expire the campaign and then reactivate the campaign.
*Enhancement:*
As a network or a super duper (internal) user, I want the ability to pause/unpause a campaign (syndicated or non-syndicated), so that I can temporarily stop traffic to that specific campaign and turn it on at a
later date.
*How to Demo:*
# Demonstrate affiliates can apply to paused campaigns
# Demonstrate that a paused bundled campaign pauses all of the destination campaigns.
# Demonstrate that in a bundle, a paused campaign is not eligible for calls to be sent to it.
# Demonstrate you can schedule pausing as well as the reactivation (un-pausing of a campaign).
# Verify paused numbers are never reclaimed.
# Verify paused campaigns have the same behavior as the unavailable state
*# Demonstrate that a paused syndicated campaign on the far right pauses all of the campaigns syndicating off of it as well as the affiliate campaign customizations.
# Verify users can only pause campaigns when a campaign is active.
# Demonstrate the campaign can be modified when paused.
# Verify the [Manage Campaigns | https://dev.ringrevenue.com/networks/a_campaigns/218#/?tab=Suspended&tab_group=default_tabs] page is updated to display paused campaigns (see Manage Campaigns
Screenshot)
# Demonstrate there is a user defined prompt available to define what callers who reach a paused campaign will hear (See Advertiser Home screenshot)
# Demonstrate that the paused state for phone/promo numbers is displayed in the [number usage report | https://ringrevenue.atlassian.net/browse/STORY-802]
# Demonstrate that you can pause campaigns via API
[*Customer Facing Questions* | https://docs.google.com/a/invoca.com/document/d/16f3bVg3YbGoa3g5gvOXmJqoMuWhiAchEnFwTEpEZYLs/edit#]
[*Grooming Doc* | https://docs.google.com/a/invoca.com/document/d/1FvjZocR3Fn5cmLngq-dnhZ5NRs4ZA47wJt_-m_8WVt8/edit]
*Investigation notes:*
Update affiliate_campaigns and add :Paused to status. (update ALL_STATUSES and STATUSES)
A Paused state should also be added to the AffiliateCampaign model state machine together with two events to set/unset this state.
The supported transitions should be: Approved_Active -> Paused -> Approved_Active.
The transitions between states should be audited through affiliate_campaign_histories. No notification emails are required. Networks or Advertisers that want to pause campaigns want to reach out to their publisher?s directly.
The Paused state should not prevent future modifications to the campaign. Networks or Advertisers that want to pause campaigns are pausing campaigns to re-work/tweak the campaign to boost the quality of the calls as well as the conversion rate of the call traffic coming into the campaign.
By default when a campaign has a different state than Approved_ when a call comes the caller gets an ?out of service message?. Instead of this we would like to have a custom user defined prompt if possible. We could achieve this by naming the :Paused status as :Approved_Paused to skip over the default ?out of service message? handling and respond with a custom message.
The Campaigns by Publisher view should be updated to support filtering by Paused status. Buttons for pausing/unpausing a campaign should be added (the same as with Approve/Decline/?) and the Paused status should shown in the Campaigns by Publisher table when appropriate.
For Reporting a paused state should pause all traffic for a campaign. So no calls would be populated for that campaign in reports. The exception to this would be an overflow number or another campaign that the paused campaign?s callers/traffic could be redirected to and only in the instance of an overflow number would calls be attributed to the paused campaign.
Promo numbers in paused campaigns should never be reclaimed.
Pausing/resuming a campaign should be available through API also.
An experimental implementation can be found here: https://github.com/Invoca/web/compare/73/l/STORY-1407_investigation_into_paused_state
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment