Changelog for v1.x
v1.9.0-dev
# Features
- Adds support for new Live Intensives
- Adds forestadmin supportv1.8.4
# Fixes
- Fixes an issue where `lead_magnet_optin_nate` was missing.
- Updates query for live intensive passwords# Features
- Forwards Webinar Optins to Google Sheets via Zapier
- Accounts that are activated via You+2 now check if the sponsored account has the correct role before activating.v1.8.3
# Features
- Adds support for WealthFit 50-50 Split Affiliation Program
- Adds WF2 Leads - Webinar (REIA) - Attended (Late Exit) tag for members stayed until atleast 1hour 40mins into the REIA webinar.
- Adds support for processing generic maropost tags via Zapier
- Adds support for Affiliates for REIA and FGA
- Adds support for Zero / Full commissions for REIA and FGA
- Creates new tables: Peacemaker.Webinar.Webinars and Peacemaker.Webinar.Registrants.
- WFCS REA now processes affiliate conversions if there was one that exists in optins.# Fixes
- Fixes an issue where REIA orders would not cancel the previous
subscription.
- Fixes an issue where AccountReferral records would return nil because of
capitals in emails.
- Adds error handling when processing yearly payment plans.v1.8.2
# Fixes
- Fix an issue where GA events for the REIA Funnel were reported under the `Real Estate Academy` category. Uses `Free Class: Real Estate Investing Academy`.
- Fixes an issue where FB Starter Members could not enroll if they enroll into another campaign as a prospect.
- Fixes an issue where Refund GA calls would fail if the refunded order contained more than 1 item (ie: single course + membership orders).
- Fixes an issue where REIA Prospects who upgraded In-App would get the REIA
Premium membership role.v1.8.1
# Features
- Updates maropost startup tags to 202008
- Moves Maropost ITM / CTM / UTM logic to backend.
- Adds support for syncing permissions when new tripwire customers are
fulfilled through Sticky.io
- Adds Toolkit Support through Algolia# Fixes
- Fixes an issue where declined customers could not update their credit
card.
- Huge refactor on getting tests up to date again.v1.8.0
# Features
- Removes Mentorship
- Adds GenServers for Google Analytics calls
- Fixes most compile warnings
- Adds support for the upcoming REIA funnel.
- Adds MVP Toolkit Search support# Fixes
- Fixes an issue where the customer couldn't add a new credit card during the switch-plan flow.v1.7.7
# Features
- Adds AppSignal support
- Adds Revision Support# Fixes
- Filters out "google" and "organic" values from sending as UTM events.
- Fixes an issue where the
Webinar RegisteredMaropost Tag was not firing for contacts who didn't previously exist in maropost. - Adds GA support for the Wholesaling Intensive
v1.7.6
# Fixes
- fixes logic for when determining if an on-hold subscription should have
permissions added or not.
- blacklists on hold product when performing subscription update
renewals.
- fixes active order search criteria when enrolling fb customers.
- Fixes pattern match when a subscription is stopped
- Deprecates process_global_funnel in favor of wfcs_process_fga.
- Customers can now give reason longer than 255 characeters for why they cancel.# Features
- adds support for Wholesaling Intensive.v1.7.5
# Features
- Adds Quarterly Subscription for FGA members
- Adds support for `Did Not Attend` for webinar registrants that did not
attend the webinar.v1.7.4
# Features
- Adds $195 yearly product support for all other membership funnels.
- remove 'WF2 Leads - WF Cares - No Webinar Registration' tag on registrationv1.7.3
# Bugfixes
- Adds support for upgrading Premium members to FGA premium members.
- Disables preauthorization for non-wealthfit members.v1.7.2
# Features
- Adds support for CS team to process FGA orders, including emails, maropost
tagging, and analytics. FGA orders that are processed through CS have the
utm tag values set to `wealthfit_cs`
- Accounts activated through the You+2 funnel have the tag FGA(Free) on
Maropost
- Adds endpoint for adding phone number to everwebinars for SMS notification# BugFixes
- Downcases emails before finding their tracking idsv1.7.1
# Features
- Fixed CIv1.7.0
### Features
- Financial Growth Academy Webinar
- Adds EverWebinar support### Misc
- Updates Phoenix to 1.5
- Includes support for Phoenix Live Dashboardv1.6.6
### Bugfixes
- Adds "12-Day Sale" and "12-Day Sale - OTO1" to tripwire upgradesv1.6.5
### Features
- Adds new Visa Email Requirements
- Now sends a generic subscription email for each trial subscription
- Revamps the way we send upcoming bill reminder emails. Uses Limelight Subscription Webhooksv1.6.4
### Features
- Adds support for new Passive Income pricing
- Adds Zipcode and Phone Supportv1.6.3
### Bugfixes
- WealthFit REI Yearly emails now reflect their purchased plan
v1.6.2
Features
- Releases support for Prepaid Yearly plans and Yearly after Trial plans
WealthFit Cares
- Disables all "@wealthfit" emails from sending to maropost unless the wealthfit email contains a "+maro"
- Disables airbnb tests
v1.6.1
### Bug Fixes
- Fixes Analytic events for New Trials created through WF Cares
- Disables SendGrid emails from firing in non staging / production environments.
- Trials started through the WF Cares Campaign will now use product 440.
- WF Cares Emails now include the course name
- Renamed all `kawika` instances to `peacemaker`v1.6.0
### Features
Releases the Cancellation Funnel 2.0
- Members permissions revamped
- Customers who go on-hold will have courses snapshotted to their "allowed_courses" list.
- Customers who cancel their on-hold plan will have all snapshotted courses removed. Any indvidiual courses that the customer purchased (via tripwire) will still remain available for the user.
- Added analytics with the following events:
Category: {Campaign downgraded from} Action: On Hold - {CTA Location} Label: {OrderID}Releases API support for the new WealthFit Cares funnel.
v1.5.14
### Bug Fixes
- Fixes an issue where REI customers who purchased an Intensive (via OTO) would be preauthorized for $495. Removes preauthorization.
v1.5.13
### Features
- Adds promo codes for BNB support
- BNB-95, BNB-195, BNB-295, BNB-395
v1.5.12
### Maintenance
- Changes the Maropost Tag for the upcoming startup to
202005
v1.5.11
### Bug Fixes
- Fixed an issue where any customer who purchased the BNB intensive that did not have a previous WealthFit Optin or Account would not correctly report analytics.
v1.5.10
### Features
- Lead Magnet optins now creates a segment tracking id and stores the Optin
in the database.
- Events are now sent server-side
- Adds a new endpoint under
/lead_magnet_optin, that opts in the lead but does not create a limelight prospect record.
### Bugfixes
- Hotfixes an issue where wfa_source was not reporting with tripwire related trial events.
v1.5.9
### Features
- Now sends "In-App" trial events to Google Analytics
- BNB Intensive now sends events to Google Analytics
- This also includes support for the custom metric "live_intensives"
- Adds support for
wfa_source- a cookie used in GA events to describe how a customer accepted their trial during the Tripwire funnel. (Landing Page vs Order Form. Defaults to Order Form) - Customers who purchase the Premium Membership (no trial) will now be emailed their password.
- Orders that are made using the "short" form will now have dummy address data
attached to the order.
- Also re-enables preauthorization for orders of this type.
v1.5.8
### Features
- Adds wfa_source for determining how a tripwire customer took their trial (ie: Landing Page vs Order Form). The current implementation defaults to Order Form unless Landing Page
is specified.### Bug Fixes
- `Peacemaker.Orders.update/2` fixes an issue where multi-product orders (e.g. tripwire course plus premium) would not
be able to upgrade to premium and would return an error. Also updated the function to set `active_order_id` to the
successful order.
- Updates `LimeLight.Webhooks.Subscription.renew_subscription/1`, removes function which updates the
recurring_date on a subscription. We believe that the CRM API was updated which made this code redundant.
- BNB Intensives now only enroll Live and Live Plus customers into GotoWebinar
- BNB Intensives now support OTO's### Misc
- Comments out Acuity tests due to Acuity subscription being cancelled.
v1.5.7
### Bug Fixes
- Disables test orders from sending analytics. Enables prod orders to send
analyticsv1.5.6
### Features
- The following Google Analytic events are being sent from the server:
- New Lead
- New Sale
- New Trial### Chores
- Refactors Order Funnels to use normalized fns, eg: setting permissions,
creating or finding accounts, etc...
- Renames plug `NoDuplicateCourseOrder` to `NoDuplicateProductPurchase` and updates all references in Router### Tests
- adds tests for `PeacemakerWeb.Plugs.NoActiveOrderTest`
- adds tests for `PeacemakerWeb.Plugs.NoDuplicateProductPurchaseTest`v1.5.5
### Features
- Adds support for the new Fortune Builder Admissions Referral campaign
- Adds `receipts@wealthfit.com` as BCC to all receipt emails
- Adds new plug `Peacemaker.Plug.NoDuplicateCourseOrder` should prevent users from making multiple orders
for a course that they already own. Currently used on the the Course Tripwire Funnel### Tests
- Adds tests for the new Fortune Builder Admissions Referral### Bug
- `Peacemaker.Account_Controller.shape_active_order/1` with new pattern to handle Tripwire orders where the Upsell product is Premium Membership.
New method will attempt to find a recurring product from a list of products associated with the order. If a recurring product is found this
product will be merged with the `current_order` to fill in critical data for subscription information
- `Peacemaker.Orders.StartMembershipTrial.find_previous_order` removes `nil` match from `params["email"]` as orders should always come in with
an email attached to the order.
- updates `PeacemakerWeb.AccountController.find_recurring_product_update_order` renamed to `find_recurring_or_cancelled_trial`
- fixes `PeacemakerWeb.AccountController.find_recurring_or_cancelled_trial` to handle case where customer purchases a Single Course+Premium and
then decides to cancel mid-trial and the front-end would show "0000-00-00" as the "trial end date".v1.5.4
### Features
- Adds support for purchasing REI Startup Intensive through the Tripwire funnel
- Adds support for purchasing REI Startup Intensive through the REI funnel### Bug
- Uses the `products` key to determine the last recurring subscription date to properly update active order ids for bundled orders (eg: tripwire).
- Taking OTO1 for REI funnel no longer overrides the current active order id
- Renames all AirBNB references to BNB
- Adds mutation for creating Goto Webinar records via Admin Dashboard
- Updates `Maropost.ContactToken.build/1` method to populate `first_name` and `last_name` with "maropost data" first
before trying `params` given (with `nil` as default value still). This should prevent NPS Survey responses from
removing first_name and last_name values from the Maropost record
https://app.clubhouse.io/wealthfit/story/6197/wf2-members-nps-survey-9-10-people-are-losing-their-names-in-maropostv1.5.3
### Bug
- Fixed an issue where starter program members were not being tagged with the correct Maropost Tag when registering for Startup Intensive.
- When an existing premium member signs up under Fortune Builders, we now properly
cancel the previous subscription.v1.5.2
### Bug
- When enrolling into a premium membership, uses the most recent prospect
campaign as the campaign id to enroll the customer.
- Users who watched courses during membership were given permanent access to
watch these courses. This bug has been fixed.
- More detail: There was a breaking change that was introduced in Ecto
v3.0.5 that disallowed `join_through_where` queries for `many_to_many`
associations. This removed the filter checking for all `AccountCourse`
modules with the `allowed: true` field.
- Refactors how the `allowed_courses` was implemented. Uses `has_one`
instead of `many_to_many` associations.
- Removes email query formatting when searching emails with '+' in Limelight
- Fixes non-trial membership orders not updating account role and permissions. Updates `Peacemaker.Orders.StartMembership.set_premium_permissions/2` private method to match `%NewOrderToken{is_trial: false}` shape.### Tests
- Adds acuity tests to run when `the_new_world` tests run### Features
- Updates `Peacemaker.SendGrid` module with new email template for non-trial membership orders.
- Updates `Peacemaker.Orders.StartMembership.place_order/1` to use send another email during post-order process.
- Adds API support for unsubscribing all users from maropost listv1.5.1
### Bug
- updates `PeacemakerWeb.OptinController.get_campaign_id/1` to handle opt-in leads coming from our "No Trial" Premium Membership Sales page.
- updates `Peacemaker.Orders.NewProspectToken.add_campaign_settings_for/2` to handle campaign settings for "start_membership" orders (non-trial premium membership)v1.5.0
### Features
- Exposes API endpoints for Acuity support
- Exposes API endpoints for Maropost support
- Fixes env strategy to be more automated.
- Adds support for updating active_order_id via GQLv1.4.19
### Bug
- updates `Peacemaker.Intensives.get_sendgrid_template_id/1` template id values for
2020 Startup Intensive Recorded and Livev1.4.18
### Bug
- updates `PeacemakerWeb.Router` with new route (`/order/upgrade_to_membership_trial`) to handle trial upgrade orders coming from
INSIDE the application meaning a user has an account and is upgrading to premium from our `/account/upgrade-to-premium` funnel.
This route re-uses the `PeacemakerWeb.OrderController.start_membership_trial/2`v1.4.17
### Bug
- Admins can now loginv1.4.16
### Bug
- Fixes issue where multiple "Upgrade Confirmation" emails were incorrectly being sent after an OTO1 order was
received from an intensive funnelv1.4.15
### Bug
- Fixes Startup, Passive Income, and Fix-And-Flip Intensives OTO 1 not enrolling user into future intensives.
- Updates Intensive modules with some documentationv1.4.14
### Bug
- Fixes Intensive "recordings only' order incorrecly registering customer into the live webinar
- clubhouse: https://app.clubhouse.io/wealthfit/story/5474/intensive-when-purchasing-recorded-package-customer-is-incorrectly-enrolled-into-live-class
- Fixes Free Order orders not processing due to bug with new plug "NoActiveOrderId". Fixed by added a case to match where `active_order_id` is a `nil` value.
- clubhouse: https://app.clubhouse.io/wealthfit/story/5475/free-course-is-broken-unable-to-get-past-checkoutv1.4.13
### Bug
- Fixes Intensive "recordings only' order confirmation email template ID
- clubhouse: https://app.clubhouse.io/wealthfit/story/5473/intensive-recordings-package-sends-incorrect-emailv1.4.12
### Features
- Adds new Plug: `Peacemaker.Plug.NoActiveOrder` which plucks the email from an order payload
and queries the database for an account record with a non-nil value for the `active_order_id` column.
if an account is NOT found, the order will continue to be processed, otherwise this plug will respond
with an error message.v1.4.11
### Bug
-> Adds support for `pr` and `wf` nf_lang valuesv1.4.10
### Bug
- Fixes Short Form orders not passing schema validation. Updates method `format_customer_request/1` with `form_type: :short` property to include missing fields, `:billingFirstName, :billingLastName`v1.4.9
### Features
- Adds support for new Short Form coming from REI funnel.`Peacemaker.Orders.NewOrderToken`
has new field and methods
- updates strut with new field with default value `form_type: :default`
- adds setter methods for `set_form_type/2`
- calling this method with `"short"` sets the value for the `form_type` field and also
sets the token to skip the preauthorization step before placing an order
- updates `format_customer_request` with pattern to match on
`%NewOrderToken{form_type: :short}` property
- Updates `Peacemaker.Orders.RealEstateInvestor.do_place_order/1` pipeline with new method
usage `NewOrderToken.set_form_type/2` to help set the form type when specified on the payload paramsv1.4.8
### Bug
- [Peacemaker.CancelSubscription] - Reenables cron job for revoking membership permissionsv1.4.7
### Bugs
- Ecto.Repo logs are now under the level: `:debug`v1.4.6
### Features
- Adds DataDog implementation
- Starts to trace functions### Bugs
- Reverts analytics back to the frontend### Tests
- Admin Dashboard: Adds seed endpoint to assist with admin dashboard
cypress tests.
- Seeds `Freeing Your 401k` course during tests. This helps with cypress
tests on the frontend.v1.4.5
### Bugs
- [Peacemaker.BlackFriday] - OTO takers now get the correct maropost tag applied
- [Peacemaker.OrderControllre] - Returns OTMs in response for
startmembership* orders
v1.4.4
Features
- Segment - Forwards
membership_rolewhen sending custom dimensions to GAv1.4.3
Bugs
- [Peacemaker.Orders] - All report_analytics/2 for order funnels was sending
duplicate custom oto events for real orders. Fixed this so that custom gtm
events are only firing for non-test orders
v1.4.2
Bugs
- [Peacemaker.Segment] - Forwards otms and tracks custom events for all funnels
v1.4.1
### Features
- [Segment.Spec.Track] - Adds OTMs when sending GTM events via Segment
- [Segment.Spec.Order] - Adds OTMs when sending E-commerce GTM events via Segment
- [Peacemaker.Optin] - Only sends
wf-new-leadevents when creating optins on Production - [Peacemaker.Analytics] - Only sends GTM ecommerce events when creating orders with real credit cards on Production
### Bugfixes
Prevents
wf-new-leadevents from firing on non-production environmentsv1.4.0
Features
Minor overhaul to how we're sending analytics to GTM. Prior to 1.4.0, the frontend was assumed to handle sending events to GTM after sale / trial / new lead optins. In order to prevent dropped analytics, we moved this logic to serverside. At the time of this writing, the only events being sent to GTM on the front-end are page view events, and the
wf-otoevent on therei/oto3page.- [Peacemaker.Analytics] - Now sends the following GTM events from the API: [
wf-new-trial,wf-oto,wf-new-sale] - [Peacemaker.Segment] - Creates Segment.Spec.Track token
- [Peacemaker.Analytics] - Now sends the following GTM events from the API: [
v1.3.3
### Bugfix
- [Peacemaker.Orders.NewOrderToken] - Adds `add_campaign_settings_for/2` :upgrade_to_premium to handle users who are Tripwire Ala Cart customers who may not have a prospect id. When no prospect record is found, we will attempt to find a customer record so that we can attribute the account upgrade to the first campaign that the prospect was created under.
- [Limelight.HTTPClient.Prospect] - updates `find_most_recent_campaign_id_by/1` to return a tuple status either `{:ok, campaign_id}` or `{:error, error}`. Updated all uses of this method to recognite the new return signature (`Peacemaker.Orders.NewOrderToke` Line: 172)v1.3.2
### Bugfix
- Adds new yearly products to upgrade flowv1.3.1
:tada: Adds CI support!!! :tada:
[Peacemaker.Accounts]
- Adds has_completed_atleast_one_course/1 and tests
- Can query if an account has completed atleast one course
- Adds has_booked_strategy_session/1 and tests
- Can query if an account has previously booked a strategy session
- Adds days_since_membership/1 and tests
- Can query the number of days since the customer's trial membership started
- Created migration for adding has_completed_wootric_survey
- Adds has_completed_atleast_one_course/1 and tests
[PeacemakerWeb.Webhook] - Adds generic webhook controller
[Peacemaker.Orders.PremiumMembership] - Adds premium membership implementation
- Customers are tagged with the
WF2 Members - Premiummaropost tag after taking the premium membership upsell - Creates
/api/order/start_membershiproute for accepting premium memberships without the 14-day trial - Creates API tests
- Customers are tagged with the
### Bugfixes
- Fixes maropost tags when Fortune Builder's sell a single intensive as opposed to a bundle
- Fixes compile warningsv1.3.0
- Adds Continous Integration support! :tada:
- [Peacemaker.Orders.BlackFriday] - Adds Black Friday order support
- Adds test support
- [LimeLight.Webhooks.StarterProgramDomination] - Adds Bnb order support for FortuneBuilders to start selling the Bnb intensive.
- Adds test support
v1.2.10
- [Peacemaker.Orders.NewOrderToken] - adds
add_campaign_settings_for/2to handle "upgrade to premium" orders from the front-end - [Peacemaker.Orders.PassiveIncomeIntensive] - removes typo
- [Peacemaker.Config] - removes environment variable
upgrade_to_premium_campaign_id - [Peacemaker.Account] - updates
build/1's pipeline process to include added aprospect_idvalue to newly created accounts
v1.2.9
- [Peacemaker.Orders.PassiveIncomeIntensive] - removes
enroll_into_intensive/1pattern that would incorrectly enrolled customers who purchased the "Recorded Only" package - [Peacemaker.Orders.FixAndFlipIntensive] - chore: removes whitespace
- [Peacemaker.Orders.StartupIntensive] - adds error pattern for
enroll_into_intensive/1andsend_email/1methods. adds catch-all pattern forreport_analytics/3method
v1.2.8
- [Peacemaker.Orders.*Intensive] - Updates 3 Intensive modules (StartUp, PassiveIncome, FixAndFlip), sucessful recorded package orders should no longer enroll customer into Live GOTO webinar session
- [Peacemaker.Orders.FixAndFlipIntensive] - Updates
enroll_into_intensive/1catch-all pattern to return back%NewOrderToken{}strut
v1.2.7
- [Peacemaker.Orders.UpgradeToPremium] - Adds new module and route to handle Basic to Premium upgrade orders.
v1.2.6
- [Peacemaker.YearlyUpcomingBillReminder] - Adds cron job for yearly bill reminders
- [GotoWebinarFB] - Adds helper module to help authenticate FB GotoWebinar
v1.2.5
- [Peacemaker.Router] - Adds
/_internal/send_membership_cancelled_emailsupport to allo wCustomer Support team to manually send cancelled membership emails - [Peacemaker.Orders.Tripwire] - Updates private method
get_product_name_by_product_id\1tp include new In-App product skus
v1.2.4
Bugfixes
- [Peacemaker.Propagtor] - Fixes return value for fetching all goto webinar registrants. Changes emails against all known services
- [LimeLight.Webhooks.StarterProgramDomination] - Fixes maropost tagging for customers who did not take any intensives.
v1.2.3
- [Goto.Webinars] - Fixes credential method when changing goto webinar emails
v1.2.2
Bugfixes
- [Peacemaker.Orders.StarterMembershipTrial] - Properly sets permissions when taking the upsell
v1.2.1
Bugfixes
- [FortuneBuilders.StarterProgramNoCC] - Adds catch_all when checking intensive bundle extensions
- [Peacemaker.Orders.Tripwire] - Updates methods after
do_place_orderto allow{:error, "Transaction is declined"}message to pass-through allowing OrderController to pass message back to front-end response.
v1.2.0
- [Peacemaker.Analytics] - First iteration of Google Analytics Ecommerce implementation
- [Peacemaker.LimelightWebhookController] - Refactors the following funnels to have the business logic be processed in the same request, rather then the Webhook request that limelight fires.
- [Peacemaker.Account] - New accounts temporary password now persists on the Account model
- [Peacemaker.Optin] - Implements is_new_lead?/1
- [Peacemaker.Orders.NewOrderToken] - Adds :sku to the list of derived JSON values
- [Peacemaker.Analytics] - record_purchase/2 now accepts a
%NewOrderToken{}struct - [Peacemaker.OptinController] - Returns tracking_id after creating an optin
- [Peacemaker.OrderController] - Returns a token of the request & response after creating an order
- [Peacemaker.Orders.Tripwire] - Properly sets premium membership permissions when taking the membership for tripwires. Refactors logic to accomodate new Tripwire design changes.
- [Peacemaker.Optin] - Supports tripwire prospect creation.
- [PeacemakerWeb.OptinController] - Adds support for opting-in closed Intensive offers
- [Peacemaker.Orders.FreeCourse] - Persists temp password to be sent when the premium welcome email fires.
- [Peacemaker.Goto.Credentials] - Deprecates direct login authentication with new Oauth flow
Bugfixes
- [Peacemaker.StarterProgramDomination] - Members who bought the 997 bundle will now have 6 months of WealthFit access
- [Peacemaker.StarterProgramDomination] - Fixes Maropost tagging for bundle buyers
- [Peacemaker.Segment] - Creates migration for unique key constraint on Peacemaker.Segment.tracking_id
- [Peacemaker.Optin] - Fixed a bug where the first and last name was not being sent when opting in tripwire prospects.
- [Peacemaker.Analytics] - Fixed a bug where nil sku's were not being set to "WF01-30D-D"
- [PeacemakerWeb.OrderController] - Passes tracking_id after placing tripwire order
v1.1.19
- [Peacemaker.Orders] - updates
Peacemaker.Orders.update/2with email receipt template - [Peacemaker.SendGrid] - adds new method,
send_subscription_plan_update_receipt/1, which is responsible for sending email receipts for when Customers upgrade their subscription plan
v1.1.18
- [Peacemaker.Orders.format_update_subscription_plan_payload] - adds new private method to handle discount offer to new membes when purchasing 2-Year subscription offer
v1.1.17
Bugfixes
- [Peacemaker.Orders.RealEstateInvestor] - reimplements
add_product_sku/1as private method to handle trial case (no sku) and OTO order (sku must be present)
v1.1.16
Bugfixes
- [Peacemaker.Orders.RealEstateInvestor] - Removes
NewOrderToken.add_product_sku(params["sku"])fromNewOrderToken.build/1process pipeline inplace_ordermethod
v1.1.15
Bugfixes
- [Peacemaker.Orders.StartMembershipTrial] - Adds new pattern for add_campaign_settings/2 to handle orders from "Upgrade to Premium Funnel"
- [Peacemaker.Orders.NewOrderToken] - Adds new pattern to add_campaign_settings_for/2 for orders from "Upgrade to Premium Funnel"
- [Peacemaker.Config] - Adds campaign_id and offer_id values for orders from "Upgrade to Premium Funnel" for STAGING and PRODUCTION environments
v1.1.14
Bugfixes
- [Peacemaker.Orders.StarterProgramDomination] - Reverts temporary patch that was introduced in
v1.1.12 - [Peacemaker.Orders.StarterProgramDomination] - Fixes Maropost tagging from
Startup {year/month}toREI Startup {year/month} - [Limelight.HTTPClient.Products] - There was a bug with sorting existing tripwire skus. Fixed determine_next_tripwire_sku/0 logic to return the correct next tripwire sku
v1.1.13
Bugfixes
- [Peacemaker.Orders.NewOrderToken] - Adds skip_preauth/1 to skip preauth
- [Peacemaker.Intensives] - Skips preauthorization step for all intensive orders
v1.1.12
Bugfixes
- [Peacemaker.Orders.StarterProgramDomination] - Temporarily overrides all stater program id's to use the September webinar id. Rest of the members are enrolled into October.
v1.1.11
Bugfixes
- [LimeLight.Webhooks.InitialOrders] - Adds guard for disabling initial order webhook events on OTO accept NOTE: we need to refactor this to scale for multiple products
v1.1.10
- [Optins] - Creates endpoint for creating Peacemaker.Optins
- [Peacemaker.SendGrid] - Updates premium member email template.
- [Peacemaker.SendGrid] - Updates FB Starter emails to include new template with new realeflow link
- [Peacemaker.Subscriptions.CancelSubscription] - Removes account from
WF2-Customers-*tags on Maropost - [Peacemaker.Utils] - Implements get_current_month_number/0
Bugfixes
- [PeacemakerWeb.Router] - Removes exposed endpoint
- [Peacemaker.Orders.RealEstateInvestor] - Adds trial membership to REI
v1.1.9
Changed
- [Peacemaker.Intensives] Made enroll_into_intensive/2 a public method
Bugfixes
- [Peacemaker.Intensives] Fixed an issue where accepting WF-LI-FF-OTO-1 was sending duplicate emails
v1.1.8
- [Peacemaker.Application] - Disables Tapfiliate & Queue Manager for Staging environment
- [Peacemaker.Config] - Adds
fix_and_flip_intensive_oto_offer_id,real_estate_investor_offer_id, andreal_estate_investor_oto_offer_id - [Peacemaker.Intensives] - Creates send_email/1 so Intensive emails are sent on LL Webhook instead of initial order purchase
- [LimeLight.Webhooks.Intensives] - For each
Recording Onlyoption for intensives, sends an email instead of skipping - [Peacemaker.Orders.FixAndFlipIntensive] - Adds support for OTO offers. Refactors when emails are sent out
- [Peacemaker.Orders.PassiveIncomeIntensive] - Refactors when emails are sent out
- [Peacemaker.Orders.RealEstateInvestor] - Adds support for OTO offers.
- [Peacemaker.Orders.StartupIntensive] - Refactors when emails are sent out
- [Peacemaker.SendGrid.send_intensive_receipt/1] - Implements generic method for dynamically sending intensive emails
- [Peacemaker.LimelightWebhookController] - Disables test credit cards from sending Tapfiliate Conversions
- [PeacemakerWeb.Router] - Adds endpoint:
/api/limelight/webhooks/intensives/fix_and_flipfor processing Fix and Flip permissions after purchase - [Tapfiliate.Conversions] - Implements fetch_all_conversions/0 that paginates through all conversions
- [Tapfiliate.Conversions] - Implements remove_test_orders/0 - an adhoc helper method for removing test orders on Tapfiliate
- [Peacemaker.Analytics] - Orders with an
order_totalof 0 will override theSegment.Spec.Product's price to be $0.00. This is to account for trial orders. ## v1.1.7 - [LimeLightV2.Client] - Starts to create v2 for (LimeLight API)[https://developer-v2.limelightcrm.com/?version=latest] - [LimeLight.API.Orders] - Creates add_custom_fields/2 for adding custom fields to orders - [PeacemakerWeb.LimelightWebhookController] - Implements process_itms webhook - [Peacemaker.Orders.NewOrderToken] - Allows ITMs to be passed when creating a new order. The keys map to the following itms: - [Peacemaker.Analytics] - For allorder_totalsthat is equal to 0, we override the Segment.Spec.Product's price from the price listed on LimeLight to 0. This is to support adding trial orders events into GA ``` C1: itm_source C2: itm_campaign C3: itm_content OPT: itm_medium ``` - Misc fixes regarding Google Analytics & Segmeet ## v1.1.6 - [Segment.Spec.Order] Adds tests. Improves typespecs - [Segment.Spec.Produuct] Adds tests. Improves typespecs - [Segment.Tracker] Adds tests. Improves typespecs - [Peacemaker.Account] Adds tests for change_email/1 - [Peacemaker.Optin] Adds tests. Improves typespecs - [Peacemaker.Segment] Adds tests. Improves typespecs. - [Maropost.Contact] Adds tests and typespecs for change_email/1 - [Limelight.HTTPClient.Orders] Implements find_all_orders_by/1 - [Mix.Tasks.Test.Cleanup] Creates module to start cleaning up records on external services after test suite runs. - [Limelight.HTTPClient.Client] Increases receive timeout to 30s to account for heavy processes - [Goto.Webinars]. Improves typespecs. Refactors find_user_email_in_webinar/2 to be more readable. - [Segment.Spec.Product] Sets the product brand as the campaign name for analytics events. ## v1.1.5 ### Changes - Changes Startup Intensive subject to30-Day Real Estate Investor Startup Intensive`. - Fixes BasePermission to use where/3 for query
v1.1.4 (07-29-2019)
General
- Implements Changelog process
- Releases Admin Dashboard for internal use.
Added
- [Goto.Webinar] Implements refresh_ids/1, a helper method used to update the current intensive webinar keys
- [Peacemaker.Account] Adds support for updating an Account's customer_id and prospect_id
- [Peacemaker.Utils] Adds to_struct/1 for turning stringed maps into structs for typing docs.
WealthFit Prospect ID
- [Peacemaker.Optin] Implements create/1 for creating WealthFit Optins
- [Peacemaker.Account] Merges Optin with Account on signup
- [Peacemaker.Account] Adds get_tracking_id/1
- [Peacemaker.Segment] Adds Jason encoding support
- [Peacemaker.Segment] Implements universal analytics tracking id
Propagator
- [Peacemaker.Propagator] Implements Propagator, a module used for changing account information across multiple external services
- [Goto.Webinar] Implements change_email/1
- [Infusionsoft.Contact] Implements change_email/1
- [Limelight.Contact] Implements change_email/1
- [Maropost.Contact] Implements change_email/1
- [Peacemaker.Admin]: REMOVED: All traces of peacemaker.wealthfit.com/admin in favor of admin.wealthfit.com
- [Goto.Webinar] Implements find_user_email_in_webinar/2 and find_all_enrolled_webinars_for_registrant/1
Changed
- [Goto.Client] Increases response_timeout to
30_000to account for heavy payloads and slow networks ~[Ecto & EctoSQL] Updates ecto_sql to v3.1.6~ [BREAKING CHANGE]. Unfortunately, we were using a function that was removed in ecto 3.0.5. We need to remove all traces of where we were usingwhereclauses with three tuples. (Peacemaker.AccountCourses & Peacemaker.BasePermisions).
Removed
- [Ueberauth] REMOVED: Ueberauth dependency and related implementation the goto_webinar database table with the current intensive webinar ids through the admin dashboard.
Bugfixes
- [Limelight.Contact] Fixes query to account for emails with +
- [Peacemaker.AlarmHandler] Fixes an issue where slack notifying was reporting the wrong alarm for messages being sent to #analytics
- [Peacemaker.Account] Fixes
wherekeys on many_to_many tables to be a Keyword List - [PeacemakerWeb.Router] Renames
/admin_new->/admin. Fixes impersonation calls from the Admin Dashboard