This commit is contained in:
Correl Roush 2022-04-23 00:38:58 -04:00
parent daf896e117
commit 8501bb255f
3 changed files with 204 additions and 127 deletions

View file

@ -214,130 +214,3 @@ if the event being compared is a =tag.v1= event.
Updated =rulesengine= in
https://gitlab.aweber.io/CC/Libraries/rulesengine/-/merge_requests/117.
** Looking up a campaign's ruleset
Fetch the campaign record using the UUID in the control0-panel campaign URL.
#+begin_src http :pretty :cache yes :exports both
GET http://campaign.service.staging.consul/210b4a4f-ee07-4f1e-98c8-d16541f6e686
#+end_src
#+RESULTS[c237f01dc854e750aa1c8f568dbd54f77ab6f56c]:
#+begin_example
{
"id": "210b4a4f-ee07-4f1e-98c8-d16541f6e686",
"name": "Normal Scott",
"owner": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"parent": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"rule_set": "01955ad5-cbca-455c-934f-d69a71a5578f",
"created_at": "2022-03-21T20:17:39.795431+00:00",
"modified_at": "2022-03-24T18:34:37.909620+00:00",
"state_changed_at": "2022-03-22T15:24:45.727430+00:00",
"url": "http://campaign.service.staging.consul/210b4a4f-ee07-4f1e-98c8-d16541f6e686?owner=26b49bc2-207e-4a33-b267-5b9e64f2702e&parent=9f1db623-fbc3-4112-a2f3-ab563e37e131",
"state": "active",
"state_serial": 3,
"is_valid": true,
"is_legacy_followup": false,
"sharing_enabled": false,
"auto_extend_enabled": true,
"extend_needed": false,
"extended_at": null,
"custom_fields": [],
"global_fields": [],
"campaign_type": "autoresponder",
"properties": null
}
#+end_example
Fetch the rule set using the =rule_set= id returned with the campaign.
#+begin_src http :pretty :cache yes :exports both
GET https://rule.aweberstage.com/01955ad5-cbca-455c-934f-d69a71a5578f
#+end_src
#+RESULTS:
#+begin_example
{
"id": "01955ad5-cbca-455c-934f-d69a71a5578f",
"version": 2,
"owner": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"parent": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"state": "active",
"system": false,
"iterator": null,
"events": [
{
"id": "b3b69bd4-0c7b-4253-ab65-e6fcbb726f07",
"type": "tag.v1",
"title": null,
"filter": {
"type": "all",
"criteria": [
{
"expect": true,
"kwargs": {
"key": "label",
"values": [
"normalize test",
"foo"
]
},
"function": "rulesengine.filter.event_value_in",
"operator": "=="
},
{
"expect": true,
"kwargs": {
"list": "<event:list>",
"labels": [
"normalize test",
"foo"
],
"account": "<event:account>",
"recipient": "<event:recipient>"
},
"function": "ruleset.tag.filter.any_tags_v1",
"operator": "=="
},
{
"expect": false,
"kwargs": {
"list": "<event:list>",
"labels": [
"normalized tag"
],
"account": "<event:account>",
"recipient": "<event:recipient>"
},
"function": "ruleset.tag.filter.any_tags_v1",
"operator": "=="
}
]
},
"parents": [],
"metadata": "tag.v1",
"recurring": false
}
],
"actions": [
{
"id": "396cd5d3-d410-4ae2-a991-b93a0b816600",
"title": null,
"parents": [
"b3b69bd4-0c7b-4253-ab65-e6fcbb726f07"
],
"metadata": "send-message",
"recurring": false,
"definition": {
"kwargs": {
"list": "<event:list>",
"account": "<event:account>",
"message": "394c27bf-5853-4b45-9ff1-a0637848f4b6",
"meapi_id": "6238dd85f227ef3f2d5ec3a5",
"recipient": "<event:recipient>"
},
"function": "ruleset.email.action.compose_v1"
}
}
]
}
#+end_example

178
daily/2022-04-18.org Normal file
View file

@ -0,0 +1,178 @@
:PROPERTIES:
:ID: 6fa5f014-e5ec-4b20-9267-4610f15c833c
:END:
#+title: 2022-04-18
* Investigating restored deleted subscribers
** Created a new subscriber with a tag
#+begin_src http :pretty :cache yes :eval no-export
GET http://subscriber.service.staging.consul/v1/subscriber?list_id=3854&email=correlr%2Bdeleteme01@aweber.net&fields=tags
#+end_src
#+RESULTS[fb6364e202db62899d507e8bfab2f727b05c996e]:
#+begin_example
{
"isp": null,
"subscriber_id": 1224565879,
"legacy_name": null,
"subscriber_source": null,
"dma_code": null,
"id": 1224565879,
"custom_fields": {
"Favorite Game": null
},
"subscriber_uuid": "0de8f642-d78e-44db-9c7e-6cc53f50acc3",
"city": null,
"verified": 0,
"self": "http://subscriber.service.staging.consul/subscriber/1224565879",
"verification_time": null,
"subscribe_method": "import",
"stop_time": null,
"list_id": 3854,
"latitude": null,
"email": "correlr+deleteme01@aweber.net",
"status": "subscribed",
"tags": [
"deleteme"
],
"last_followup": 1001,
"area_code": null,
"followuptime": null,
"org": null,
"postal": null,
"ip_address": null,
"name": "Correl Roush",
"lead_id": 4496733,
"add_url": null,
"country": null,
"region": null,
"unsubscribe_source": null,
"longitude": null,
"subscribed_at": "2022-04-18T15:21:04.070648-04:00",
"stop_method": null,
"unsubscribe_timestamp": null
}
#+end_example
#+begin_src http :pretty :cache yes :eval no-export
GET http://recipient.service.staging.consul/subscriber/0de8f642-d78e-44db-9c7e-6cc53f50acc3
#+end_src
#+RESULTS[77791090575f541ef5b635141712e1c0cf1b4565]:
#+begin_example
{
"legacy_list_id": 3854,
"signup_ad_tracking": null,
"status": "SOI",
"legacy_subscriber_id": 1224565879,
"name": "Correl Roush",
"email_address": "correlr+deleteme01@aweber.net",
"unsubscribe_source": null,
"recipient": "c0e5f1ca-dae3-4037-b80a-9400f64ac841",
"signup_ip": null,
"notes": null,
"signup_location": null,
"custom_fields": {
"Favorite Game": null
},
"unsubscribe_timestamp": null,
"id": "0de8f642-d78e-44db-9c7e-6cc53f50acc3",
"list": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"confirmation_ip": null,
"locale": "en-US",
"legacy_lead_id": 4496733,
"display_name": "Correl Roush",
"signup_timestamp": "2022-04-18T19:21:04+00:00",
"signup_url": null,
"signup_source": "Import",
"confirmation_location": null,
"account": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"confirmation_timestamp": null,
"legacy_account_id": 778
}
#+end_example
** Deleted subscriber
#+begin_src http :pretty :cache yes :eval no-export
GET http://subscriber.service.staging.consul/v1/subscriber?list_id=3854&email=correlr%2Bdeleteme02@aweber.net&fields=tags
#+end_src
#+RESULTS[7d7ff6fd6510a36b406b6a9bd383cee06c0361dd]:
: {
: "error": {
: "status_code": 404,
: "exception": "SubscriberNotFound",
: "message": "Could not find information for the subscriber"
: }
: }
#+begin_src http :pretty :cache yes :eval no-export
GET http://recipient.service.staging.consul/subscriber/5ff28b23-7515-4181-a1c6-0cd86772e959
#+end_src
#+RESULTS[6a3d0fd66afbbe49e9c1433a00a87e62ee4e5e4d]:
: {
: "type": "HTTPError",
: "traceback": null,
: "message": "HTTP 410: Subscriber has been deleted"
: }
** Restored subscriber
#+begin_src http :pretty :cache yes :eval no-export
GET http://subscriber.service.staging.consul/v1/subscriber?list_id=3854&email=correlr%2Bdeleteme03@aweber.net&fields=tags
#+end_src
#+RESULTS[ba42253a27d61ad57b92167534a88df4a97b6c79]:
#+begin_example
{
"isp": null,
"subscriber_id": 1224565877,
"legacy_name": null,
"subscriber_source": null,
"dma_code": null,
"id": 1224565877,
"custom_fields": {
"Favorite Game": null
},
"subscriber_uuid": "aeb485fe-f70d-4c45-9c8b-c0d5896fbac9",
"city": null,
"verified": 0,
"self": "http://subscriber.service.staging.consul/subscriber/1224565877",
"verification_time": null,
"subscribe_method": "import",
"stop_time": null,
"list_id": 3854,
"latitude": null,
"email": "correlr+deleteme03@aweber.net",
"status": "subscribed",
"tags": [
"deleteme"
],
"last_followup": 1001,
"area_code": null,
"followuptime": null,
"org": null,
"postal": null,
"ip_address": null,
"name": "Correl Roush",
"lead_id": 4496732,
"add_url": null,
"country": null,
"region": null,
"unsubscribe_source": null,
"longitude": null,
"subscribed_at": "2022-04-18T15:21:04.071556-04:00",
"stop_method": null,
"unsubscribe_timestamp": null
}
#+end_example
#+begin_src http :pretty :cache yes :eval no-export
GET http://recipient.service.staging.consul/subscriber/aeb485fe-f70d-4c45-9c8b-c0d5896fbac9
#+end_src
#+RESULTS[53eff9fb0aca10b880611138bbd5b74def32ca86]:
: {
: "type": "HTTPError",
: "traceback": null,
: "message": "HTTP 410: Subscriber has been deleted"
: }

26
daily/2022-04-22.org Normal file
View file

@ -0,0 +1,26 @@
:PROPERTIES:
:ID: 9d000aeb-ab38-4d68-b8ac-7407b16be41b
:END:
#+title: 2022-04-22
* Fixing restored deleted subscribers
- *What was broken?* :: Restored subscribers remained marked as deleted within the recipient service, causing automations to fail
- *When was it broken?* :: This issue has likely existed since we introduced the
deleted status in Recipient ([[https://gitlab.aweber.io/CP/Services/recipient/-/commit/ead64b148475088addbf727af49d0bb318fe3a05][ead64b14]]).
- *What did you do to fix the problem?* :: Using a script
(https://gitlab.aweber.io/correlr/restore-subscribers), I iterated through all
of the subscribers on the affected accounts, correcting their subscriber
records in recipient if they were found to be in this state.
- *How many customers did it likely impact?* :: Any customer that has had
deleted subscribers restored via the Admin interface since 2017.
- *Is the issue automatically fixed for all customers now?* :: Because there is
no way to identify customers for which deleted subscribers have been restored,
only the customers noted in this ticket have been fixed. Other customers that
are identified as being affected by this issue will require the same manual
intervention.
- *Does the customer or CS need to manually do something to fix their account?* :: No,
the data for the customers noted in this ticket has been corrected.
- *Should a new monitoring check, metric, or test be created to prevent this from happening again?* :: Efforts
are underway to migrate the recipient service away from its current subscriber
data store ([[https://jira.aweber.io/browse/CCPANEL-12001][CCPANEL-12001]]). Once that is done, it will no longer be possible
for subscribers to continue to get into this state.