updates
This commit is contained in:
parent
938c7eb898
commit
a5fb2d40f6
5 changed files with 194 additions and 0 deletions
|
@ -38,7 +38,27 @@
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:JIRA_ID: CCPANEL-11694
|
:JIRA_ID: CCPANEL-11694
|
||||||
:END:
|
:END:
|
||||||
|
*** Remove dependency on AWLists from Stripe
|
||||||
|
**** Stripe master branch does not allow null values in product recurrence
|
||||||
|
:PROPERTIES:
|
||||||
|
:JIRA_ID: CCPANEL-12072
|
||||||
|
:END:
|
||||||
*** Remove dependency on AWLists from Subscriber Import
|
*** Remove dependency on AWLists from Subscriber Import
|
||||||
|
:PROPERTIES:
|
||||||
|
:JIRA_ID: CCPANEL-12071
|
||||||
|
:END:
|
||||||
|
**** Update Subscriber Import client to fetch list data from the new lists service
|
||||||
|
:PROPERTIES:
|
||||||
|
:JIRA_ID: CCPANEL-12073
|
||||||
|
:END:
|
||||||
|
*** Remove dependency on AWLists from Sites
|
||||||
|
:PROPERTIES:
|
||||||
|
:JIRA_ID: CCPANEL-12074
|
||||||
|
:END:
|
||||||
|
*** Remove dependency on AWLists from Email Verification
|
||||||
|
:PROPERTIES:
|
||||||
|
:JIRA_ID: CCPANEL-12070
|
||||||
|
:END:
|
||||||
** Retire AWSubscribers in favor of Recipient
|
** Retire AWSubscribers in favor of Recipient
|
||||||
*** Back Recipient with AppDB
|
*** Back Recipient with AppDB
|
||||||
*** Retire sync consumers
|
*** Retire sync consumers
|
||||||
|
@ -70,3 +90,6 @@ https://jira.aweber.io/browse/TRAC-118
|
||||||
- User Management
|
- User Management
|
||||||
- Stripe Payments
|
- Stripe Payments
|
||||||
- Commissions Processor
|
- Commissions Processor
|
||||||
|
|
||||||
|
* Ongoing
|
||||||
|
** Update project configuration and gitlab pathing to match our taxonomies in Imbi.
|
||||||
|
|
29
aweber/20220329103252-identifying_active_accounts.org
Normal file
29
aweber/20220329103252-identifying_active_accounts.org
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
:PROPERTIES:
|
||||||
|
:ID: e97adcf4-86ad-4d97-9c63-41476b52b111
|
||||||
|
:END:
|
||||||
|
#+title: Identifying active accounts
|
||||||
|
|
||||||
|
A query to identify active accounts in [[id:dd113e53-6144-4cb2-a4aa-da3dc2e3e6ea][AppDB]]
|
||||||
|
|
||||||
|
Per [[file:~/git/appdb/functions/coreapi_account/get_account_status.yaml][coreapi_account.get_account_status]]:
|
||||||
|
|
||||||
|
#+begin_src sql :exports code :eval never
|
||||||
|
CREATE FUNCTION coreapi_account.get_account_status(in_account_id integer) RETURNS coreapi_account.account_status
|
||||||
|
LANGUAGE sql STRICT
|
||||||
|
AS $_$
|
||||||
|
|
||||||
|
SELECT accounts.status_id,
|
||||||
|
accounts.status_id = 7,
|
||||||
|
CASE accounts.status_id
|
||||||
|
WHEN 1 THEN 'New Order'
|
||||||
|
WHEN 4 THEN 'Unpaid - Un-notified'
|
||||||
|
WHEN 5 THEN 'Paid'
|
||||||
|
WHEN 6 THEN 'Unpaid - Notified'
|
||||||
|
WHEN 7 THEN 'Cancelled'
|
||||||
|
WHEN 8 THEN 'Unpaid - Overdue'
|
||||||
|
WHEN 9 THEN 'Place Holder'
|
||||||
|
ELSE 'Unknown'
|
||||||
|
END
|
||||||
|
FROM public.accounts
|
||||||
|
WHERE accounts.a_id = $1;
|
||||||
|
#+end_src
|
|
@ -211,3 +211,6 @@ event. This is to ensure the campaign is only triggered when the subscriber is
|
||||||
/being tagged/ with one of the chosen tags. This check will have to be made
|
/being tagged/ with one of the chosen tags. This check will have to be made
|
||||||
tag-aware such that it normalizes the values before comparing them if and only
|
tag-aware such that it normalizes the values before comparing them if and only
|
||||||
if the event being compared is a =tag.v1= event.
|
if the event being compared is a =tag.v1= event.
|
||||||
|
|
||||||
|
Updated =rulesengine= in
|
||||||
|
https://gitlab.aweber.io/CC/Libraries/rulesengine/-/merge_requests/117.
|
||||||
|
|
56
daily/2022-03-23.org
Normal file
56
daily/2022-03-23.org
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
:PROPERTIES:
|
||||||
|
:ID: d1aeb8df-b5f0-48a3-970a-d6b7f94415ba
|
||||||
|
:END:
|
||||||
|
#+title: 2022-03-23
|
||||||
|
* Testing tag normalization on comparison changes
|
||||||
|
Testing [[id:d06d3ab4-c2d0-47c3-aae1-4395567fc3d2][Tag Normalization]] changes in campaigns and subscriber search that
|
||||||
|
normalizes tag values when comparing them.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- Campaigns should trigger on normalized and non-normalized tags as if they were
|
||||||
|
the same tag
|
||||||
|
- Campaigns should ignore subscribers having normalized and non-normalized tags
|
||||||
|
as if they were the same tag
|
||||||
|
- Subscriber search should return subscribers having normalized and
|
||||||
|
non-normalized tags as if they were the same tag for each tag operator
|
||||||
|
- Broadcasts should be sent to all subscribers on a segment matching the
|
||||||
|
selected tag filters as if normalized and non-normalized tags were the same
|
||||||
|
tag
|
||||||
|
|
||||||
|
#+CAPTION: Campaign Triggers
|
||||||
|
| | Campaign trigger | Campaign triggers except |
|
||||||
|
|----------------------------------+------------------+--------------------------|
|
||||||
|
| Valid tag | Pass | Pass |
|
||||||
|
| Repeated embedded spaces | Pass | Pass |
|
||||||
|
| Leading / trailing space | Pass | Pass |
|
||||||
|
| Non-printable control characters | Pass | Pass |
|
||||||
|
| Commas | Pass | Pass |
|
||||||
|
| Quotation marks | Pass | Pass |
|
||||||
|
|
||||||
|
#+CAPTION: Subscriber Search
|
||||||
|
| | Tag is | Tag is not | Tag is any of | Tag includes all of |
|
||||||
|
|----------------------------------+--------+------------+---------------+---------------------|
|
||||||
|
| Normalized tag | Pass | Pass | Pass | Pass |
|
||||||
|
| Repeated embedded spaces | Pass | Pass | Pass | Pass |
|
||||||
|
| Leading / trailing space | Pass | Pass | Pass | Pass |
|
||||||
|
| Non-printable control characters | Pass | Pass | Pass | Pass |
|
||||||
|
| Commas | Pass | Pass | Pass | Pass |
|
||||||
|
| Quotation marks | Pass | Pass | Pass | Pass |
|
||||||
|
|
||||||
|
#+CAPTION: Broadcast Segment
|
||||||
|
| | Tag is | Tag is not | Tag is any of | Tag includes all of |
|
||||||
|
|----------------------------------+--------+------------+---------------+---------------------|
|
||||||
|
| Normalized tag | Pass | Pass | Pass | Pass |
|
||||||
|
| Repeated embedded spaces | Pass | Pass | Pass | Pass |
|
||||||
|
| Leading / trailing space | Pass | Pass | Pass | Pass |
|
||||||
|
| Non-printable control characters | Pass | Pass | Pass | Pass |
|
||||||
|
| Commas | Pass | Pass | Pass | Pass |
|
||||||
|
| Quotation marks | Pass | Pass | Pass | Pass |
|
||||||
|
|
||||||
|
** DONE Is any and includes all search filters are failing
|
||||||
|
When running an "is any of" search, this error is logged:
|
||||||
|
: ERROR: operator does not exist: text[] && text\nHINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.\nCONTEXT: while executing query on dblink connection named "aweber_app" in /home/sites/cake_core/1.2b/cake/libs/model/datasources/dbo/dbo_postgres.php on line 153, referer: https://www.aweberstage.com/users/leads
|
||||||
|
|
||||||
|
When running an "includes all of" search, this error is logged:
|
||||||
|
: control-panel-847df5767-4dsds control-panel [Wed Mar 23 11:18:38.645523 2022] [:error] [pid 6856] [client 204.194.222.13:0] PHP Warning: pg_query(): Query failed: ERROR: operator does not exist: text[] @> text\nHINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.\nCONTEXT: while executing query on dblink connection named "aweber_app" in /home/sites/cake_core/1.2b/cake/libs/model/datasources/dbo/dbo_postgres.php on line 153, referer: https://www.aweberstage.com/users/leads
|
83
daily/2022-03-29.org
Normal file
83
daily/2022-03-29.org
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
:PROPERTIES:
|
||||||
|
:ID: 266d19c2-5ecd-48af-a9d4-4b0a7d3d5696
|
||||||
|
:END:
|
||||||
|
#+title: 2022-03-29
|
||||||
|
* Get list of subscribers with non-normalized tags on active accounts
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:sql: :engine postgresql :cmdline "-U postgres postgres" :dir /docker:postgres: :exports both :cache yes
|
||||||
|
:END:
|
||||||
|
|
||||||
|
Investigating the impact of the new [[id:d06d3ab4-c2d0-47c3-aae1-4395567fc3d2][Tag Normalization]] rules on existing
|
||||||
|
subscribers on active accounts.
|
||||||
|
|
||||||
|
** Gathering data
|
||||||
|
I imported a dump of the =subscriber_tags= table from [[id:dd113e53-6144-4cb2-a4aa-da3dc2e3e6ea][AppDB]] as well as the
|
||||||
|
=list.subscribers= table data for all active accounts (~SELECT s.* FROM
|
||||||
|
list.subscribers s JOIN accounts a ON (a.a_id = s.account_id) WHERE a.status_id
|
||||||
|
< 7~)
|
||||||
|
|
||||||
|
I then built a table of subscribers having tags that do not match our validation
|
||||||
|
rules.
|
||||||
|
|
||||||
|
#+begin_src sql :exports code :eval never
|
||||||
|
CREATE TABLE invalid_tags AS
|
||||||
|
SELECT s.list_id, s.account_id, t.subscriber_id, tag
|
||||||
|
FROM subscribers s
|
||||||
|
JOIN subscriber_tags as t ON (s.id = t.subscriber_id)
|
||||||
|
, unnest(tags) tag
|
||||||
|
WHERE tag != normalize_tag(tag)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Subscribers on active accounts
|
||||||
|
#+begin_src sql
|
||||||
|
SELECT COUNT(*) FROM subscribers
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS[073c7d5b524a0577c83785ca6051ad010990c18a]:
|
||||||
|
| count |
|
||||||
|
|----------|
|
||||||
|
| 16650026 |
|
||||||
|
|
||||||
|
** Subscribers with invalid tags
|
||||||
|
#+begin_src sql
|
||||||
|
SELECT COUNT(DISTINCT subscriber_id) FROM invalid_tags
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS[6ff96db184978da7271a89499c58d40cff8daebf]:
|
||||||
|
| count |
|
||||||
|
|--------|
|
||||||
|
| 239291 |
|
||||||
|
|
||||||
|
** Accounts with subscribers with invalid tags
|
||||||
|
#+begin_src sql
|
||||||
|
SELECT COUNT(DISTINCT account_id) FROM invalid_tags;
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS[f45bb88f747f30295132bcd75861b98721cd5341]:
|
||||||
|
| count |
|
||||||
|
|-------|
|
||||||
|
| 16 |
|
||||||
|
|
||||||
|
#+begin_src sql
|
||||||
|
SELECT DISTINCT account_id FROM invalid_tags
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS[ff2ba7ea0c8dc285f2be2a20afb0d0c786f4dac1]:
|
||||||
|
| account_id |
|
||||||
|
|------------|
|
||||||
|
| 1833 |
|
||||||
|
| 211344 |
|
||||||
|
| 13492 |
|
||||||
|
| 212837 |
|
||||||
|
| 216738 |
|
||||||
|
| 213819 |
|
||||||
|
| 16479 |
|
||||||
|
| 215217 |
|
||||||
|
| 104120 |
|
||||||
|
| 215067 |
|
||||||
|
| 213122 |
|
||||||
|
| 14656 |
|
||||||
|
| 111262 |
|
||||||
|
| 214928 |
|
||||||
|
| 44749 |
|
||||||
|
| 91 |
|
Loading…
Reference in a new issue