Dustin Surwill (dsurwill@shield-legal.com)
2024-09-27 16:38:22
James Turner (jturner@shield-legal.com)
2024-10-01 12:49:56

Sending this up to you for a confirmation check and guidance on our next steps.

James Turner (jturner@shield-legal.com)
2024-10-03 17:26:03
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-04 14:05:58

I pushed the fix for the mpa_map.py

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-04 14:32:19

if you run the following command in the directory as the definitions.json, it will reformat the json to be more readable: python -c "import json;f=open('definition.json', 'r+');d=json.load(f);f.seek(0);json.dump(d,f,indent=4)"

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-07 11:42:38

test msg

James Turner (jturner@shield-legal.com)
2024-10-08 10:07:50

Hey- all that sneezing yesterday turned into a nasty cough overnight. Is it alright if I work from home today? I'm happy to hop on videochat or whatever I need to go throughout the day

James Turner (jturner@shield-legal.com)
2024-10-08 10:08:19

I'm just coughing like every 20-30 seconds and dont want to get everyone else sick

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 12:42:40

whenever you go back the report you were working on last week. take a look at the status report in the reports tab of lawruler: https://tortintakeprofessionals.lawruler.com/status-report.aspx here some example data from vga for the last week.

James Turner (jturner@shield-legal.com)
2024-10-08 12:43:32

For the opt outs one?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 12:44:15

yes

James Turner (jturner@shield-legal.com)
2024-10-08 13:07:05

Thank you for allowing me to work from home today- I feel like absolute garbo

James Turner (jturner@shield-legal.com)
2024-10-08 13:59:40

Since we got the other stuff done, I am going to work on my similarity checker

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-08 14:58:03

Making good progress.. running into the usual, make a fix, that breaks something else to fix but its going in the right direction

James Turner (jturner@shield-legal.com)
2024-10-08 15:59:05

YESSS

James Turner (jturner@shield-legal.com)
2024-10-08 15:59:11

Ill show u soon

James Turner (jturner@shield-legal.com)
2024-10-08 15:59:14

just gotta check stuff

James Turner (jturner@shield-legal.com)
2024-10-08 16:48:38

More can be done to it but I posted a quick demo in the main chat

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-08 16:54:24

I hit a flow with it, and just kept going through lunch so I'ma take my lunch now- Is there anything specific I should be working on when I get back?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 16:55:50

You can help the others with what I sent you in email

James Turner (jturner@shield-legal.com)
2024-10-08 17:00:54

Cool- Just got it!

James Turner (jturner@shield-legal.com)
2024-10-08 17:02:58

Looks like I'm not getting any notifs for gmail- Is there a recommended way to set it up so it pops in slack? When I used teams previously it was all in house with outlook/microsoft so it was pretty seamless

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 17:05:41

not sure. i just sent it that way since it was an attachment. daniel is currently working on it

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 17:53:15

Can you send the instrutions/notes on gcp mapping you have to dwight?

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-10-08 17:54:44

Sure thing- Where does the monday board live for everything that needs to be mapped off of MPA?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 17:55:51

should just be our api integrations board

James Turner (jturner@shield-legal.com)
2024-10-08 17:56:54

I'm not seeing anything on here for what has been mapped and what has not?

James Turner (jturner@shield-legal.com)
2024-10-08 17:57:07

and what is using MPA

James Turner (jturner@shield-legal.com)
2024-10-08 18:13:12

Dustin?? I really want to get started on this, but without clarification on what we need to work on, we can't start...

Are we waiting for something specific?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-08 18:15:54

work with the team. basicly map anything on monday that is for an integration. we may need a sheet but i thought i heard ahsan mention something

James Turner (jturner@shield-legal.com)
2024-10-10 11:50:10

Hey there, sorry to bug ya but I'm trying to figure out an issue with this code and was wondering if you knew immedietly what it might be? If not I can keep digging but I don't want to waste any more time than I already have

James Turner (jturner@shield-legal.com)
2024-10-10 11:50:54

I attempted to redownload off github to ensure I have a fresh and working copy but no luck

James Turner (jturner@shield-legal.com)
2024-10-10 11:50:59
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 11:54:36

show me the end of the traceback. the bottom of the log

James Turner (jturner@shield-legal.com)
2024-10-10 11:55:05
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 12:00:30

save the mpabody.json and lawrulerbody.txt then try again

James Turner (jturner@shield-legal.com)
2024-10-10 12:01:33

Well damn- I enabled auto-save on vscode, and it's worked every other time except for this.

James Turner (jturner@shield-legal.com)
2024-10-10 12:01:56

that worked- I figured it was something simple. Thank ya sir!

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 13:35:06

That should work but lemme know if there is any issue with it

James Turner (jturner@shield-legal.com)
2024-10-10 14:08:19

I'm gonna rest for a little over lunch so I'll be away from PC but txt me if you need anything

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 15:07:47

Did that mapping work out?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 15:11:30

I have not tested it, but at first glance it will need a few changes in the first 15 lines

James Turner (jturner@shield-legal.com)
2024-10-10 16:02:48

Some of the ones that are normally in the first 15, may spread throughout- after adding the defaults, I checked for duplicates and deleted the ones that were in there already

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 16:05:03

Can you help write up a 1 page proposal for our team to have admin access / full control over our systems and how it would allow us to work much more effectively? I will send the 4 tickets I currently have open with Joe.

James Turner (jturner@shield-legal.com)
2024-10-10 16:06:39

Sure thing' Sounds like a fun challenge - Would you like me to momentarily step away from the mapping to do that?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 16:07:22

finish the one you are working on first

James Turner (jturner@shield-legal.com)
2024-10-10 16:13:07

What is Joes full name?

James Turner (jturner@shield-legal.com)
2024-10-10 16:13:17

Joe Santana?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 16:13:31

correct

James Turner (jturner@shield-legal.com)
2024-10-10 16:58:25

This is a hot topic- I'm gonna make this really good lol

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 17:28:16

Are you still taking tomorrow off or working from home?

James Turner (jturner@shield-legal.com)
2024-10-10 17:29:40

Still taking tomorrow off as of now - I should be getting my tests back to figure out what's going on in the next hour or so that will let me know if I am contagious or not

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 17:30:21

I'm not sure if anyone shared with you, but that weird runny nose/ sneezy thing turned into a cough and a rash that covered my throat and made it hard to breath in like 24hrs

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 17:30:40

yikes, not good

James Turner (jturner@shield-legal.com)
2024-10-10 17:31:16

It was the most bizarre thing- but doctors ran a bunch of tests on me and pumped me full of steroids and other meds and it's getting better? I am just isolating until I get my tests back to make sure I don't accidently spread the next plague

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 17:46:12

So little background for ya that I'm not sure if I told you about before... When I was in school I was going for cyber sec before realizing that isn't really what I wanted to do, but I got decently far

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 17:46:39

I also spoke to my GF about the proposal because she ran privacy and security for her team at her last company

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-10 18:30:17

Little over a page, but it's about a page of actual content without the header and references.

https://docs.google.com/document/d/1X475cydwjIpE9dt6Y4L0k1FeeBJ2cEJlNlSpAiSSlQ0/edit?usp=sharing

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 18:30:31

No access

James Turner (jturner@shield-legal.com)
2024-10-10 18:33:06

oop that should work now

James Turner (jturner@shield-legal.com)
2024-10-10 18:35:18

I gotta hop on a quick virtual drs call so there may be a delay in my responses but I am still here

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 18:39:31

I am not sure they would like a rotation of responsibility

James Turner (jturner@shield-legal.com)
2024-10-10 18:40:54

Would you like me to pose it as you being the manager of it? I originally went for a single leader, and when I had it reviewed it got brought up as a potential issue for if that individual leader is out

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 18:41:43

me and Mcfadden, then there are 2. less likely for both to be out

James Turner (jturner@shield-legal.com)
2024-10-10 18:46:17

cool done and dusted

James Turner (jturner@shield-legal.com)
2024-10-10 18:46:22

or should I say

James Turner (jturner@shield-legal.com)
2024-10-10 18:46:26

Done and Dustin

:face_palm: Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 18:47:20

there is line 3 of paragraph 2 in introduction that also says rotation

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-10 18:49:27

The other comment is to focus more on containers (docker) than vms if possible. i like your references. could we find something that recommends minimum hardware (32gb, etc...)?

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-11 17:57:32

where is the mapping for caseid 602?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-11 17:57:53

everyone is putting them in the integrations drive/campaigns/completed mappings

James Turner (jturner@shield-legal.com)
2024-10-14 10:45:35

Good morning! For 602- looks like acts-dl-flatirons... I sent that to you earlier direct because there was some oddness in it that needed to be tested, but lemme grab that~

James Turner (jturner@shield-legal.com)
2024-10-14 10:47:24

I can make those changees for 32gigs now

James Turner (jturner@shield-legal.com)
2024-10-14 10:59:51
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-14 13:25:52
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-14 17:06:46

602 is not uploaded to finished maps

James Turner (jturner@shield-legal.com)
2024-10-14 17:07:04

I'll take a gander now

James Turner (jturner@shield-legal.com)
2024-10-14 17:08:50

Ah yeah that was the one I sent you earlier- it was done prior to there being a written process so it just exists as the actual mapping

James Turner (jturner@shield-legal.com)
2024-10-14 17:12:47

Went ahead and converted it over

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-14 17:12:57

and uploaded it

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-15 15:17:02

https://www.wgu.edu/

Western Governors University
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 11:07:52

{\"Error:\":\"Nullable object must have a value.\"}

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 11:13:48

{\"Error:\":\"Index was outside the bounds of the array.\"}

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 11:19:45

2024-10-09 18:17:13.505859

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 11:41:15

[ { "contactid": 531752, "leadid": 603431, "casetypeid": 602, "storageurl": "https://console.cloud.google.com/storage/browser/shield-legal-602/531752/intake", "externalid": "246615", "intakeprocessedat": "2024-10-15 21:30:26.425367", "secondaryprocessedat": null, "intakeresponse": "response": null, "intakedocumentresponse": "[[\"603431-Hollis Davis-Intake.csv\", \"documentresponse": null, "secondaryleadid": null } ]

James Turner (jturner@shield-legal.com)
2024-10-16 11:42:33

CA Juv hall Abuse - Acts

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 14:00:40

Run this in the vscode powershell terminal: python -c "import sys;print(sys.executable)"

James Turner (jturner@shield-legal.com)
2024-10-16 15:53:27

python tools/dumplrquestions.py 448

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-16 16:02:47

python -c "import json;f=open('definition.json', 'r+');d=json.load(f);f.seek(0);json.dump(d,f,indent=4)"

James Turner (jturner@shield-legal.com)
2024-10-16 18:08:37

I /think/ I got main working based off the other code bases

James Turner (jturner@shield-legal.com)
2024-10-16 18:22:49
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-17 10:38:55

Push it to github and make a pull request. I will look at it there

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-18 12:11:54

https://documenter.getpostman.com/view/5921778/UVeJM5kQ#5459b434-513f-4e96-b3e9-721b07a9d5d1 PUT Update UDFs https://app.smartadvocate.com/CaseSyncAPI/case/udf

documenter.getpostman.com
James Turner (jturner@shield-legal.com)
2024-10-18 12:12:15

ty

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-19 14:29:15

I would not call it a lunch and learn unless lunch is provided

James Turner (jturner@shield-legal.com)
2024-10-21 10:40:47

I was goinng off what Nick said lol

James Turner (jturner@shield-legal.com)
2024-10-21 11:42:08
James Turner (jturner@shield-legal.com)
2024-10-22 17:14:48

https://www.bome.com/products/mtclassic

Bome Software
Time to read
Less than a minute
James Turner (jturner@shield-legal.com)
2024-10-22 17:15:16

https://www.nomachine.com/

NoMachine
James Turner (jturner@shield-legal.com)
2024-10-22 17:30:54

https://www.youtube.com/watch?v=4xDzrJKXOOY

YouTube
Lofi Girl (https://www.youtube.com/@LofiGirl)
James Turner (jturner@shield-legal.com)
2024-10-22 17:35:35

https://www.youtube.com/watch?v=-ailhp8kRzE

YouTube
EzPz (https://www.youtube.com/@ezpz9660)
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-24 13:40:49

Mark Mina <mmina@actslaw.com> Chloe Gelpieryn <cgelpieryn@actslaw.com>

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-24 14:02:31

I redid the Priority tab on the API Integrations Board. It only shows the status of "In Progress", "On Deck", "Backlog", "On Hold". And it sorts by "Priority" (High to Low) then "Target Date (Original)" (Oldest to Newest) then "Date Requested" (Oldest to Newest)

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-24 14:05:00

What are your thoughts on removing the following columns in the API Integrations Board: Automation Platform, Followers, Ticket, Request Notes, Date (At the very end)

James Turner (jturner@shield-legal.com)
2024-10-24 14:06:19

I like the idea- my only concern would be if theres any MPA stuff left that's hiding in the cracks but since we are moving everything to GCP anyway..

James Turner (jturner@shield-legal.com)
2024-10-24 14:06:24

I say go for it

James Turner (jturner@shield-legal.com)
2024-10-24 14:07:14

I'm also building a process to prevent the "well I wasn't told to do that specifically.. "\

James Turner (jturner@shield-legal.com)
2024-10-24 14:07:46

(Still editing)

James Turner (jturner@shield-legal.com)
2024-10-24 14:08:03
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-24 14:24:27

Process looks good. Lets implement for new campaigns

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-24 16:38:41

Add column for if campaign is open/closed

James Turner (jturner@shield-legal.com)
2024-10-28 12:09:28
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-28 17:43:52

for sean kelly with bay point. It almost seems like he does not care about pfas and only the sexual abuse case. @Zekarias Haile has most of the mapping done but sean only asked for a connection test by end of last week (which we did). also we have other cases to integrate not just his. maybe we should loop in meghan?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-29 13:47:14

requirements: • API Concurrency • API Page Limit • Need lead update date time and search by update time • Need to be able to keep our DB up to date with LR Trying to dump all lead data and keep up to date. Can use DB access.

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-29 15:21:42

Thanks for writing that up

James Turner (jturner@shield-legal.com)
2024-10-29 16:36:07

Sure thing' any word back on that email?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-29 16:36:37

> Thank you for the context. I'll review this information with upper management to determine how we can assist you with resources. I've also scheduled a call with our teams for tomorrow to discuss your needs and explore possible solutions.

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-10-29 16:47:46

cool

James Turner (jturner@shield-legal.com)
2024-10-30 11:10:33

I saw the new campaigns came in so I started working on a rudimentary mapping for Chowchilla Womens Prison Abuse - ACTS - Crump - Shield Legal

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 11:12:33

When you get some time can we update the progress column in Monday with the sub-items?

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 11:13:47

Also does the "Test Integration - 10/29" need to stay on the board?

James Turner (jturner@shield-legal.com)
2024-10-30 11:15:09

Sure thing' Can you please throw that on there as a task for me?

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-30 11:16:15

I use the test integration for automation stuff- I would like to keep it there if we can so I don't keep spamming the chat with making new ones lol

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-10-30 11:24:52

Does this link work for you? |https://tortintakeprofessionals.monday.com/docs/7745372257

tortintakeprofessionals.monday.com
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 11:25:37

Yes

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 15:06:47

Can I get edit access to the dashboard?

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 15:07:09

Can we filter out the blocked status from the Workload Chart

Dustin Surwill (dsurwill@shield-legal.com)
2024-10-30 15:08:56

Are you volunteering for 1871?

James Turner (jturner@shield-legal.com)
2024-10-30 15:11:17

edit access given, blocked/waiting has been removed from the workload chart

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-10-31 16:26:16

https://github.com/Nuitka/Nuitka May need joe to allow a c compiler, if we want to use it.

Website
<http://nuitka.net>
Stars
11959
James Turner (jturner@shield-legal.com)
2024-11-04 18:00:44

with our pipeline changing, we should probably do some digging on CCPA law, and GDPR law and build out our standards now rather than having to rebuild from scratch later https://www.youtube.com/watch?v=24Ki4Ck4Y2E

YouTube
IBM Technology (https://www.youtube.com/@IBMTechnology)
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-05 11:18:25
James Turner (jturner@shield-legal.com)
2024-11-05 11:21:54

Is there a way to make a copy of these so I can work on the copies, fact check results and then move results over?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-05 11:24:58

On the lead page Action Menu > Create a Copy. Use different contact, one that we use for testing, to prevent issues on live leads

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-05 12:03:20

The UDFs (User Defined Fields)

James Turner (jturner@shield-legal.com)
2024-11-06 11:18:41

Heyo- I want to create some test leads for that coding project, but I'm not seeing where to create new leads for an existing case on Lawruler

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 11:23:58

The "New Intake" button on the left side or you can clone from an existing the instructions: https://themedialaboratory.slack.com/archives/D07NEK10NTZ/p1730827498976749

Dustin Surwill (https://themedialaboratory.slack.com/team/U07LPFF756H)
James Turner (jturner@shield-legal.com)
2024-11-06 11:25:02

cool- I think I was looking around in the wrong place

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 11:26:16
James Turner (jturner@shield-legal.com)
2024-11-06 11:33:25

So just to confirm, we want to pull questions 25-31?

James Turner (jturner@shield-legal.com)
2024-11-06 11:33:49

And when you say "Match the leads"

James Turner (jturner@shield-legal.com)
2024-11-06 11:34:09

like we find the lead with the same ID and just move those fields over?

James Turner (jturner@shield-legal.com)
2024-11-06 11:34:24

or we move the whole lead over to the new campaign?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 11:47:18

The leads will have different lead ids but should have the same contact id. it is possible that we will have to match on name / phone / email when contact id does not match. We need to move the answers from Firefighting Foam MED - Nations - Levinson - Nations Q25-31 to Firefighting Foam - Nations - Levinson (TC) - Shield Legal Q71-77. It looks like some are already copied over, will need logic to check that.

James Turner (jturner@shield-legal.com)
2024-11-06 11:48:06

Cool, thank you for the clarification! I appreciate it

James Turner (jturner@shield-legal.com)
2024-11-06 11:49:02

Do you have any pre-existing code for similar cases I can look at to get an idea where to start? So far I made a test lead on one, but it looks like I'll have to make test leads on both to make sure it moves over correctly

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 12:06:31

This is what I have for talking to the API which about all i have: https://github.com/shield-legal/lawruler-ui/blob/main/func_fill_db/lawruler.py

James Turner (jturner@shield-legal.com)
2024-11-06 12:07:17

*Thread Reply:* All good it's a place to start, thank you!

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 12:06:52

Do you know anything about the Milestone tracking tab that is now on all case types?

James Turner (jturner@shield-legal.com)
2024-11-06 12:07:37

I do not- I was actually wondering about that myself.

James Turner (jturner@shield-legal.com)
2024-11-06 12:07:59

Where does this tab exist? Is it a lawruler tab on the leads??

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 12:08:31

Yes, on the form page with all the questions

James Turner (jturner@shield-legal.com)
2024-11-06 12:09:34

Hm- weird. I'm not familiar with it. I wonder if it got created by Aiden on the reporting team when he was editing fields for that Flatiron fire the other day

James Turner (jturner@shield-legal.com)
2024-11-06 12:16:07

Let me know if you end up figuring it out

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 12:22:00

It was Aiden

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-11-06 12:57:10

So I'm looking over the lawruler API docs and I'm running into some issues.. What I was thinking was..

  1. Pull a list of all Lead IDs and Contact IDs from campaign A..
  2. Do the same for campaign B.

  3. Pull all of the Question and Answers from each lead with a for loop and store that info in a dictionary.. (One dictionary per campaign, like campaignafulldict and campaignbfulldict)

  4. Go through the dictionary for campaign B and find all leads missing values for questions 71-77

  5. Make a list of those Lead IDs.. campaignbmissingvalueslist

  6. Use that list to Run some kind of logic to find the matches between Campaign A and B on name/phone/email, and make that into a json file or a dictionary, not sure which would work best..

  7. Now that I know what lead IDs are associated with eachother, and I have all the information I need stored in dictionaries, I should in theory be able to tell it to refer to the key in campaignafulldict and move that information to campaignbfulldict

James Turner (jturner@shield-legal.com)
2024-11-06 12:57:38

but I'm not seeing a way on the api to..

  1. Pull all lead info from case like that.
  2. Once I have a fully set up campaign B with the right info, upload it so only the missing pieces go in without it canceling out because of duplicates
James Turner (jturner@shield-legal.com)
2024-11-06 13:01:31

What are your thoughts? Would there be a better way to approach this?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 13:11:23
  1. ApiCases/SearchInboxItems with CaseTypes filter: lr.search_inbox(filters={'CaseTypes':[IDs for cases to search]})
  2. ApiIntakeForms/SetAnswer: https://apim.lawruler.com/tortintakeprofessionals/swagger/ui/index#!/ApiIntakeForms/ApiIntakeForms_SetAnswer I would do:
  3. SearchInbox for both case types
  4. Filter into a list per case_type {'case1': [leads], 'case2': [leads]}
  5. Build dict for contact id to leads {'contact': [lead from case1, lead from case2]} a. At the same time build list of leads that do not match
  6. For the list of leads that do not match by contact id try matching by name / phone / email and add to dict in step 3
  7. For each contact get answers from lead (case2) to post to
  8. Check if need to update / push those answers a. If need to update / push get answers from lead to pull from (case1) b. Push using ApiIntakeForms/SetAnswer
James Turner (jturner@shield-legal.com)
2024-11-06 13:16:10

This is cool- I haven't seen this swagger thing before- what is this?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 13:16:27

The API docs for lawruler

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 13:16:49

swagger is 1 of the tools to make API docs more readable

James Turner (jturner@shield-legal.com)
2024-11-06 13:17:05

Well dang- I was looking at this:

James Turner (jturner@shield-legal.com)
2024-11-06 13:17:15

Swagger makes this much better]

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 13:17:20

That is only for pushing new leads

James Turner (jturner@shield-legal.com)
2024-11-06 13:33:19

Where do we store our Lawruler api key?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 13:49:03

.env LRAPISECRET="3RsxCggviuYBdBZQ15DT1faJFOPRJLMG"

James Turner (jturner@shield-legal.com)
2024-11-06 13:49:14

thank youu

James Turner (jturner@shield-legal.com)
2024-11-06 14:16:31

Is there any kind of save state or rollback for campaigns? I just dont wanna break something I can't fix

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 14:17:32

Nope

James Turner (jturner@shield-legal.com)
2024-11-06 14:19:46

so how have we tested things historically?

James Turner (jturner@shield-legal.com)
2024-11-06 14:20:00

can we make copies of whole campaigns with all the leads?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 14:21:21

Test leads. I do not think there is a way. But the changes might get logged in the activity log

James Turner (jturner@shield-legal.com)
2024-11-06 14:29:56

Alrighty- I'ma try and figure out how to mod what I set up to work with individual leads so i can test but for now i'ma take lunch

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-06 16:32:52

Can you please look this over for me? I'm trying to test my functions independently and getting a 404 error for the url- I'm thinking I set it up wrong but I'm not sure how

James Turner (jturner@shield-legal.com)
2024-11-06 16:33:08
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 16:41:00

in training will look afterwards

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-11-06 18:01:01

Ended up figuring at least part of the issue out.. I was using "case_type" in my params instead of leadId and I was using the name instead of the number..

James Turner (jturner@shield-legal.com)
2024-11-06 18:01:16

I gotta build out the env file but I think i got quite a bit knocked out on it today

James Turner (jturner@shield-legal.com)
2024-11-06 18:01:42
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 18:31:47

Is there a reason you did not use the lawruler.py I linked too?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-06 19:07:33

I added a few comments marked by # TODO

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-07 13:45:40

Here are our case ids, case type names, acts case types. Please ask ACTS to verify: 363 | Chowchilla Abuse - ACTS - Laba Forman - Shield Legal | Sexual Abuse Chowchilla 402 | Rosemead High School Abuse - ACTS - Shield Legal | School 621 | Personal Injury - ACTS - SIL - ACTS | Pre-Lit PI Lead Docket 623 | Property Damage - ACTS - SIL - ACTS | Property Damage - Residential 626 | Construction Defect - ACTS - SIL - ACTS | Construction Defect 1670 | Birth Injury - ACTS - SIL - ACTS | Birth Injury 1686 | LA Juvenile Hall Abuse TV - ACTS - DLFlatirons - Shield Legal | Juvenile Detention 1766 | Chowchilla Womens Prison Abuse - ACTS - Levinson (TC) (TIP) - Shield Legal | Sexual Abuse Chowchilla 1767 | Chowchilla Womens Prison Abuse - ACTS - DicelloFlatirons (TIP) - Shield Legal | Sexual Abuse Chowchilla 1768 | Chowchilla - ACTS - Levinson (TC) - Long Form Interview | Sexual Abuse Chowchilla

James Turner (jturner@shield-legal.com)
2024-11-07 14:01:47

Sry didn't mean to get pulled away- just briefly wanted to show what I made on miro

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-07 17:53:46

sent

James Turner (jturner@shield-legal.com)
2024-11-07 17:58:06

https://www.youtube.com/watch?v=H7YzrfgOcUc

YouTube
The Front Bottoms - Topic (https://www.youtube.com/channel/UC5BNXI3BnCAB2XQJC-6jY_A)
James Turner (jturner@shield-legal.com)
2024-11-07 18:00:00
James Turner (jturner@shield-legal.com)
2024-11-07 18:00:07

nR83]8tq**>R1gn3%P8P]

James Turner (jturner@shield-legal.com)
2024-11-14 12:12:20

working on some stuff and I'm trying to figure out- for our new systems

James Turner (jturner@shield-legal.com)
2024-11-14 12:12:36

will we have a separation of data lake and data warehouse?

James Turner (jturner@shield-legal.com)
2024-11-14 12:17:52

Just in case you are wondering what I mean

James Turner (jturner@shield-legal.com)
2024-11-14 12:17:57
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 12:19:40

I assume Ryan will want a Data Warehouse but we will need a Data Lake before the Warehouse to process things. So a combination?

James Turner (jturner@shield-legal.com)
2024-11-14 12:20:22

I agree, It makes sense for us to have both, especially because of the kind of data and different places it's going

James Turner (jturner@shield-legal.com)
2024-11-14 12:22:05

I'm setting up a basic pipeline blueprint right now, I think this should help in the future-

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-14 12:33:50

What is the current proposed method of getting the info from lawruler to GCP

James Turner (jturner@shield-legal.com)
2024-11-14 12:34:03

manual python and API?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 12:34:14

yes

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 12:34:27

eventually a function

James Turner (jturner@shield-legal.com)
2024-11-14 12:38:25

Cool- and outside of the main.py we don't transform or process the data in any other way?

James Turner (jturner@shield-legal.com)
2024-11-14 12:49:42

Let me know if there's anything I should change

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 12:51:02

The API that triggers python is currently email automation from lr not manual

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-11-14 16:52:11

How much do you know about Tips financial Data pipelines??

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 16:52:41

Not much why?

James Turner (jturner@shield-legal.com)
2024-11-14 16:53:06

Trying to fact check myself and get an idea what's going on

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-14 16:53:13
Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 16:55:43

I did not know that the finance stuff used cloud storage

James Turner (jturner@shield-legal.com)
2024-11-14 16:56:14

I think it's currently using AWS but the plan is to move it all to GCP

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-14 16:56:25

would that make sense?

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 16:57:20

It is better to have you data in 1 place then spread across many, in terms of permissions and access.

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 16:57:33

but that 1 place better have redundacy

James Turner (jturner@shield-legal.com)
2024-11-14 16:57:33

I agree

James Turner (jturner@shield-legal.com)
2024-11-14 16:57:51

I'm trying to figure out what ryans vision is first before I say it's wrong lol

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-14 16:58:28

Im not sure anyone knows ryans vision besides ryan

🙃 James Turner
James Turner (jturner@shield-legal.com)
2024-11-21 15:43:21

Meeting with ryan is almost 2 hours over. I gotta meet with my team once I get out of this

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-11-21 15:44:36

sorry 🙃

James Turner (jturner@shield-legal.com)
2024-11-25 11:48:33

Good morning- if you would, Please remove me from the integrations@gmail.com ^-^

Dustin Surwill (dsurwill@shield-legal.com)
2024-11-25 11:57:11

It will be done today, I want to show @Nicholas McFadden how to do it as well.

👍 James Turner
James Turner (jturner@shield-legal.com)
2024-11-25 11:57:49

Seriously good job on the getting data over btw

😄 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-12-02 11:28:49

Do you think some of the tasks assigned to you in the integrations task board can be marked done?

James Turner (jturner@shield-legal.com)
2024-12-02 11:47:39

Likely yeah, I'll take a look now

James Turner (jturner@shield-legal.com)
2024-12-02 12:56:21

Hey there, can you give me a quick rundown of what the matter meeting is for?

James Turner (jturner@shield-legal.com)
2024-12-02 12:56:43

I see DicelloLevitt on there, not sure if it's a carry over from being on int

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-02 12:57:23

Darrell and Abe talking about the integration with DL's system Litify (Salesforce)

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-02 12:58:03

possibly a carryover, if Darrell does not realize you changed teams.

James Turner (jturner@shield-legal.com)
2024-12-12 17:52:33

I'm limping through this query that should be dummy simple in python, but I'm trying to get it to work in DBT or Bigquery..

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 17:52:53

need help?

James Turner (jturner@shield-legal.com)
2024-12-12 17:58:25

If you can yeah.

I am trying to build a new table with

lrdatasourcecasetype AS ( SELECT id AS casetypeid, name AS case_name FROM <a href="http://tort-intake-professionals.lr">tort-intake-professionals.lr</a>_data.case_type

simple enough - then I am trying to get each unique value within the case status column in tort-intake-professionals.lrdata.leadstatus`

For each unique value, that should be a new column in the new table..

However, DBT is being a pain in the butt because it doesn't want to support any kind of dyanmic queries from what I'm seeing

James Turner (jturner@shield-legal.com)
2024-12-12 18:01:13

and I could in theory run it in bigquery, because Bigquery supports pivot, but bigquerys pivot requires all pivoted columns be specified

James Turner (jturner@shield-legal.com)
2024-12-12 18:02:06

I could go through the hastle of trying to figure out dynamic sql in bigquery, but even if I do- I still need to ultimately get this running in dbt so I can make it automated without costing out the wazoo

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:02:53

view from postgres?

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:04:08

what value goes in the status columns?

James Turner (jturner@shield-legal.com)
2024-12-12 18:05:46

0s for now, but the plan is to import the table into re-tool and build a gui so that tony, ryan and them can easily update how many points each status change is worth per campaign

James Turner (jturner@shield-legal.com)
2024-12-12 18:06:35

that way they can update the table, and i can refer a looker dashboard to throw up on the big tvs so people know how much things are worth

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:08:12

There are 113 statuses in the db. sure you dont want to filter that?

James Turner (jturner@shield-legal.com)
2024-12-12 18:08:59

Ideally I want to build a table that shows all of the status's and if they are commissionable, billable, ect- and pull from that

James Turner (jturner@shield-legal.com)
2024-12-12 18:09:38

Ryan actually tasked me with that as well, but he never sent me the meeting notes on what tables to pull that data from

James Turner (jturner@shield-legal.com)
2024-12-12 18:10:01

and I haven't been able to get ahold of him today

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:12:12

I feel like this should be a table with the columns: casetypeid, statusid, points Then you join with casetype and lead_status to convert to names. This allows for the most flexability and expandability

James Turner (jturner@shield-legal.com)
2024-12-12 18:14:05

That's a good idea- but one case can have multiple statues each worth a different amount, and it goes as far as different departments could get different point values and commission amounts for the same status on the same case

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:14:33

then you add a column for department

James Turner (jturner@shield-legal.com)
2024-12-12 18:14:57

I guess this comes back to making that billable/commissionable status table first.. huh

James Turner (jturner@shield-legal.com)
2024-12-12 18:15:19

True, but wouldn't it need to be a new column for each department, and the points would just go there?

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:16:31
Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:17:05

for dbs think in terms of rows not columns

James Turner (jturner@shield-legal.com)
2024-12-12 18:19:15

ah gotcha, so we just double up rows where needed- like for each case_type, it can have a whole bunch of rows, one for each variable of commissionable status and department

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:19:56

yes

James Turner (jturner@shield-legal.com)
2024-12-12 18:20:35

My concern there is if there end up being 30 commissionable status's, and 5 departments, you're going to have 150 rows for each case type..

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:20:51

rows are cheap and easy. columns are hard

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:21:06

especially dynamic columns

James Turner (jturner@shield-legal.com)
2024-12-12 18:21:28

Yeah this could work because it should never have to be manually looked through anyway..

James Turner (jturner@shield-legal.com)
2024-12-12 18:21:50

and you can even add a commission value column and not have to change anything else..

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-12 18:21:59

yup

James Turner (jturner@shield-legal.com)
2024-12-18 17:54:44

Cam and Co inbound to check out the new integrations area!

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-12-26 14:10:16

Hey we're we ever able to get the questions imported?

James Turner (jturner@shield-legal.com)
2024-12-26 14:10:24

Or did all the hangups halt it?

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-26 14:53:38

Halt backfill

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-30 13:53:47

I believe the GCP Integrations is exempt from the API pause

James Turner (jturner@shield-legal.com)
2024-12-30 13:54:08

I would imagine so

Dustin Surwill (dsurwill@shield-legal.com)
2024-12-30 13:57:22

Maybe that should be a Monday Form or a Google Form?

James Turner (jturner@shield-legal.com)
2024-12-30 13:59:31

I don't forsee a reason people wouldn't be able to type it out in a word file and send it over to us. The little bit of extra effort it takes will be a good thing because it keeps people thinking about what they actually need vs just spamming requests.

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2024-12-30 14:16:09

is edward under you or brittany?

James Turner (jturner@shield-legal.com)
2024-12-30 14:17:07

Technically still Brittany

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2024-12-30 14:17:34

on paper I am still a regular data engineer like everyone else on your team

😑 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-01-03 10:15:57

Early meetings with Ryan so I'll be taking them from home and coming in a little later

Dustin Surwill (dsurwill@shield-legal.com)
2025-01-03 10:18:53

Ok

James Turner (jturner@shield-legal.com)
2025-01-09 11:21:25

Heyo~ I was tasked with coming up with a new naming convention for case types in Lawruler and I have my idea fleshed out. I wanna run it by you before I start working on it so data end can be ready

James Turner (jturner@shield-legal.com)
2025-01-09 11:21:31

Lemme know when you're available

👀 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-01-13 18:20:45

I'm trying to get a definitive count of the compaigns in lawruler so I can fact check my data and I'm running into some issues maybe you could clear me up on..

your lrdata.casetype shows 804 campaigns.. Ryans lrcasetypes from fivetran shows 807 The highest lawruler id is over 1900-

Do you know what you are filtering out??

Dustin Surwill (dsurwill@shield-legal.com)
2025-01-13 18:23:03

Not filtering out. New campaigns not in the db. The db has not been updated since the night of Jan 6. I just learned that lr added some reatelimits. Will be implementing that to the the db dump but it will be hobbled

James Turner (jturner@shield-legal.com)
2025-01-13 18:24:01

7 days shouldn't be a difference of 1100 campaigns though

James Turner (jturner@shield-legal.com)
2025-01-13 18:24:15

Do you know if the LR ids don't actually mean what they are led to mean?

Dustin Surwill (dsurwill@shield-legal.com)
2025-01-13 18:24:21

that would be diff of 3. between me and ryan

Dustin Surwill (dsurwill@shield-legal.com)
2025-01-13 18:25:23

i think at some point some case types were deleted which is the only thing that makes sense in my head for the numbers to be close to 2k but the count be <1k

James Turner (jturner@shield-legal.com)
2025-01-13 18:26:02

and that makes sense- I know there is a "deactivated" option so I thought people were doing that but theres only like 60 or so deactivated

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-02-03 13:08:57

Heyo~ have you connected to the gcp console via python before? Looking to set it up myself and I am not sure which service account we should be using

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 13:09:58

I use my account until it gets pushed to a function. If you use the application default credentials a lot of the auth and config is done for you

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 13:11:23

Most services have different ways to connect but they should all support the application default credentials.

James Turner (jturner@shield-legal.com)
2025-02-03 13:27:29

Have you had issues with creating Venv since the updates?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 13:32:08

what updates?

James Turner (jturner@shield-legal.com)
2025-02-03 13:32:25

Our pcs randomly turning off and back on on Friday

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 13:38:32

No, I created one with PyCharm Friday afternoon just fine

James Turner (jturner@shield-legal.com)
2025-02-03 13:40:12

Interesting. Okay.. mine is all failing, and when I go to check the pip version in my old vens they show up, and can even update, but when I go to do anything in a new venv is says it fails to create it, it shows up in my file explorer , but I can't pip install anything and it when I pip version, it supposedly doesn't exist.

James Turner (jturner@shield-legal.com)
2025-02-03 13:40:17

Weirdest thing

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 13:40:33

I can help for until 12 if you want

James Turner (jturner@shield-legal.com)
2025-02-03 13:45:09

If you wanna swing by and take a look I would appreciate!

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-03 14:17:17

<https://cloud.google.com/docs/authentication/set-up-adc-local-dev-environment>

James Turner (jturner@shield-legal.com)
2025-02-06 11:31:43

Hey what is your phone number again? For some reason my gmail isn't syncing

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-06 11:31:51

7023514212

James Turner (jturner@shield-legal.com)
2025-02-10 16:09:14

Hey there, what is the sql to generate this view? I see it hasn't been updated since January 30th so I want to set up a scheduled query

James Turner (jturner@shield-legal.com)
2025-02-10 16:09:24

I recall we talked about it before

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-10 16:11:38

At the bottom of the details tab but views do not update only the data they pull from which for that view is pctiddata.leadstatustrackermaterialized, lrdata.leadquestion, lrdata.casequestion

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-10 16:12:51

newest lead in leadstatustracker_materialized is from 2 hours ago

James Turner (jturner@shield-legal.com)
2025-02-10 16:21:36

Appreciate. Thank you

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-20 12:33:48
Dustin Surwill (dsurwill@shield-legal.com)
2025-02-20 12:39:30

If that code is in the Shield-Legal-BI Github org, I am not in that org

James Turner (jturner@shield-legal.com)
2025-02-20 12:39:52

I'm not sure, you may need to ask Mcfadden directly

James Turner (jturner@shield-legal.com)
2025-02-20 15:13:19
James Turner (jturner@shield-legal.com)
2025-02-21 14:45:35

Might be able to just schedule the report in Five9, and set it to FTP direct??

https://cloud.google.com/integration-connectors/docs/connectors/ftp/configure

Just gotta figure out that pipeline info

Google Cloud
James Turner (jturner@shield-legal.com)
2025-02-21 14:45:38
Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 14:06:31

The 2 leadspedia tables are updating every 30 minutes and takes about 8ish minutes

James Turner (jturner@shield-legal.com)
2025-02-25 14:39:03

You're amazing

James Turner (jturner@shield-legal.com)
2025-02-25 14:39:06

ty much

James Turner (jturner@shield-legal.com)
2025-02-25 15:40:56

REPORTNAME = "Five9Bulkcalldata1" FOLDER_NAME = "My Reports"

James Turner (jturner@shield-legal.com)
2025-02-25 15:42:57

REPORTNAME = Five9Bulkcalldata FOLDER_NAME = Shared Reports (Tort Intake Professionals)

James Turner (jturner@shield-legal.com)
2025-02-25 15:50:54

&lt;soapenv:Header&gt; &lt;adm:Authentication&gt; &lt;adm:user&gt;{self.username}&lt;/adm:user&gt; &lt;adm:password&gt;{self.password}&lt;/adm:password&gt; &lt;/adm:Authentication&gt; &lt;/soapenv:Header&gt;

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 16:20:50

https://documentation.five9.com/bundle/assets/page/assets/admin-pdfs.htm

documentation.five9.com
James Turner (jturner@shield-legal.com)
2025-02-25 18:07:03

tort-intake-professionals.five9_source

James Turner (jturner@shield-legal.com)
2025-02-25 18:07:04

This one

James Turner (jturner@shield-legal.com)
2025-02-25 18:15:44

Hey there, what is the refresh rate on this data?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 18:29:38

leadspedia allleads and allsold_leads are 30 minutes

James Turner (jturner@shield-legal.com)
2025-02-25 18:29:54

You're awesome! Thank you!

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 18:30:52

FYI: the five9 config webservices api is soap

James Turner (jturner@shield-legal.com)
2025-02-25 18:31:25

The one he led us to?

James Turner (jturner@shield-legal.com)
2025-02-25 18:33:31

Also, on the half hour mark or another time?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 18:33:57

on the half hour and hour (takes about 7 minutes)

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-02-25 18:34:08

Cool- thank you much!

James Turner (jturner@shield-legal.com)
2025-02-25 18:35:10
Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 18:36:34

This is the error I am currently running into, trying to work with Christian to get the permissions fixed. I can push the code to GitHub so you can try it if you want

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-02-25 18:37:01

I wonder if we have different permissions

James Turner (jturner@shield-legal.com)
2025-02-25 18:37:16

I wonder if it will work with my creds

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-25 18:48:32

The changes have been pushed. Adjust the comments at the bottom of five9_recordings.py

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-02-25 18:48:59

I'll check it out tomorrow AM

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-02-25 18:49:05

Gonna be heading out soon

James Turner (jturner@shield-legal.com)
2025-02-27 13:54:01

Hey did you fact check to see if the leadspediaallsold_leads was coming in right after you updated it?

James Turner (jturner@shield-legal.com)
2025-02-27 13:54:37

There's only 42,572 leads in there now, there was like 500k+ before

James Turner (jturner@shield-legal.com)
2025-02-27 13:56:03

And theres only 53k leads on leadspediaallleads, there used to be over 800k with Mcfaddens code

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 13:58:01

it was hitting the gcp memory limit. i have doubled the memory limit. it will run again in 3 minutes

James Turner (jturner@shield-legal.com)
2025-02-27 13:58:43

Cool thank you- a whole bunch of my stuff was showing incorrect data and I was like "what the.."

James Turner (jturner@shield-legal.com)
2025-02-27 14:06:47

When should I expect to see the rest of the leads populate again?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 14:07:14

Should be just about done

James Turner (jturner@shield-legal.com)
2025-02-27 15:07:41

Yeah still getting only 42k..

James Turner (jturner@shield-legal.com)
2025-02-27 15:08:26

Is there any way we can roll back the code temporarily to get a snapshot of what it's at now?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 15:13:24

I am looking into the problem.

James Turner (jturner@shield-legal.com)
2025-02-27 15:13:42

I appreciate, thank you!

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 15:45:07

allleads is now up to date. updating allsold_leads. The code uses ~4GB of RAM which GCP does not like, will need to change it to upload in chunks to prevent RAM overload, or only look back and update a couple of days worth instead of all time

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 15:45:29

I have paused the GCP automation for now while we fix this

James Turner (jturner@shield-legal.com)
2025-02-27 15:48:36

I appreciate you digging back into it- thank you!

James Turner (jturner@shield-legal.com)
2025-02-27 18:14:51

For clarification, did you just pull the allleads, or the allsold_leads as well?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 18:15:35

Just all leads. I was trying to do all sold leads as well but it errored and i have not had a chance to look into yet

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 18:49:41

the error for all sold leads was exceeded api rate limit

James Turner (jturner@shield-legal.com)
2025-02-27 18:54:55

would putting it in PostgreSQL and viewing to BQ solve that?

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 19:05:40

no, the api rate limit was leadspedia. although doing postgres would solve the ram issue. (I can also give the cloud function more ram but then it would cost more)

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 19:19:58

all sold leads is now updated. I have given the function more ram and uploaded the fix. it took 22 minutes for just all sold leads so i changed the trigger to every hour on the hour instead of every half hour

James Turner (jturner@shield-legal.com)
2025-02-27 19:20:18

That was quick

James Turner (jturner@shield-legal.com)
2025-02-27 19:20:19

Thanks man

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 19:21:05

I have turned back on the automation trigger. I will check the logs tonight to see if it takes over an hour, but we really should convert it to only checking the last few days of data instead of all time (easier to do when pushing into postgres)

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 20:39:27

The five9 report does not have an unique identifier. sessionid and callid are the same when the call is transfered

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 20:40:00

On the plus side, I may have found a way to make the import to postgres faster

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-27 20:41:04

the leadspedia automation for all leads and all sold leads is verified working. it is taking 39 minutes to run every hour

James Turner (jturner@shield-legal.com)
2025-02-28 11:18:53

Wow- I'll dig a little deeper on the five9 stuff today, but great job getting Leadspedia working

James Turner (jturner@shield-legal.com)
2025-02-28 11:19:08

What was the issue with it? 39 minutes every hour seems like a lot

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-28 11:53:39

It is pull all the data for the last few years everytime it runs

James Turner (jturner@shield-legal.com)
2025-02-28 13:08:48

That explains why it takes so long lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-02-28 14:42:39

Postgres (62ms, ~0.062s): SELECT ** FROM lr_data.lead_history WHERE date >= now() - interval '11 hours' and comment like '%Send to Five9' ORDER BY date BiqQuery (2.5s): SELECT ** FROM tort-intake-professionals.lr_data.lead_history WHERE date >= DATETIME_SUB(CURRENT_DATETIME(), interval 11 hour) and comment like '%Send to Five9' ORDER BY date;

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-03 18:10:12

let me know when your meeting is over. I want to show you something cool

James Turner (jturner@shield-legal.com)
2025-03-03 18:31:07

Sorry just got out of the meeting. Can you show me tomorrow if that's okay? I gotta get somwhere by 5

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-03 18:31:22

ok

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-04 18:29:23

https://github.com/gristlabs/grist-core https://www.getgrist.com/

Grist
Website
<https://www.getgrist.com>
Stars
8000
👍 James Turner
James Turner (jturner@shield-legal.com)
2025-03-05 17:44:09

Is there a way to see the history of every query that touched a table in postgresql?

James Turner (jturner@shield-legal.com)
2025-03-05 17:44:30

I see the query history tab, but ryan claims that's only personal doesn't know all queries

James Turner (jturner@shield-legal.com)
2025-03-05 17:44:39

and I don't have access to one to check

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-05 17:50:28

Both bq and postgres should have logs

James Turner (jturner@shield-legal.com)
2025-03-05 17:51:30

Do you know how to access those in Postgresql? I would play around with it myself but don't have access to any and don't recall how to get into Lr_data

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-05 17:54:39

logs for lr-data: https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloudsqldatabase%22%0Aresource.labels.databaseid%3D%22tort-intake-professionals:lrdata%22%0Aresource.labels.region%3D%22uswest4%22;cursorTimestamp=20250305T23:46:07.957600Z;startTime=20250303T23:48:31.053Z;endTime=20250305T23:48:31.053Z?project=tortintakeprofessionals|https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloudsql_database%22[…]25-03-05T23:48:31.053Z?project=tort-intake-professionals anything in particular i can filter it down to?

accounts.google.com
James Turner (jturner@shield-legal.com)
2025-03-06 15:31:55
James Turner (jturner@shield-legal.com)
2025-03-07 11:51:32

I understand lawruler is down now, but how far along did we get on the activity status log table?

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-07 11:52:09

~12k rows

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-07 11:52:36

now that is down, I can run my script to populate it from the activity log table

James Turner (jturner@shield-legal.com)
2025-03-07 11:53:20

If we can, that would be awesome. If you send me what the details of it are going to be in BQ, along with the schema, then I can start building on my end, even if I cant fully flesh it out

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-07 11:54:58

https://console.cloud.google.com/bigquery?project=tort-intake-professionals&ws=!1m5!1m4!4m3!1stort-intake-professionals!2slrdata!3sleadhistorystatus|https://console.cloud.google.com/bigquery?project=tort-intake-professionals&ws=!1m5!1m4!4[…]ort-intake-professionals!2slrdata!3sleadhistorystatus

accounts.google.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-03-07 12:08:47

historical status table up to date with 1,641,311 rows

James Turner (jturner@shield-legal.com)
2025-03-07 12:10:12

You're awesome! Thank you!

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-07 18:30:43

Duplicate call_ids are failed transfers according to @deleted-U062D2YJ15Y listening to the recordings

James Turner (jturner@shield-legal.com)
2025-03-07 18:36:44

Oh shoot huh

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-13 14:03:27

SUM(call time columns) FROM five9_source.five9_bulk_call_data_tabularv2 f9 GROUP BY f9.date, f9.skill, f9.campaign, f9.calltype ORDER BY f9.date DESC, f9.skill ASC, f9.campaign ASC, f9.calltype ASC

James Turner (jturner@shield-legal.com)
2025-03-13 14:32:08

Interesting

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-13 15:28:11

Useful?

James Turner (jturner@shield-legal.com)
2025-03-13 16:00:07

Potentially yeah! Thank you~

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-13 16:01:35

Want the query?

James Turner (jturner@shield-legal.com)
2025-03-13 16:01:44

Yes please lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-13 16:03:14

I saved it for you: https://console.cloud.google.com/bigquery?project=tort-intake-professionals&ws=!1m7!1m6!12m5!1m3!1stort-intake-professionals!2sus-west4!3s64ef1518-34aa-4e8b-9190-247db34d880c!2e1|https://console.cloud.google.com/bigquery?project=tort-intake-professionals&ws=!1m7!1m6!1[…]ls!2sus-west4!3s64ef1518-34aa-4e8b-9190-247db34d880c!2e1

accounts.google.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-03-18 17:03:02

its currently letsgo2025

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-19 14:25:47

oi_g8Jr~;PvqZoe6

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-19 17:40:29

ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT ON TABLES TO reporting; ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT ON TABLES TO ops; ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT ON TABLES TO integrations; ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT ON TABLES TO postgres; ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "144747688343-compute@developer"; ALTER DEFAULT PRIVILEGES IN SCHEMA five9 GRANT SELECT ON TABLES TO "service-144747688343@gcp-sa-bigqueryconnection.iam";

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-19 18:37:21

CREATE OR REPLACE VIEW five9.inbound_summary_per_hour AS SELECT agent, date_and_hour, EXTRACT(EPOCH FROM SUM(call_time)) AS call_time_total, EXTRACT(EPOCH FROM SUM(bill_time__rounded_)) AS bill_time_total, SUM(calls) AS call_count_per_hour FROM five9.five9_bulk_call_data_tabularv2 WHERE call_type = 'Inbound' GROUP BY date_and_hour, agent ORDER BY date_and_hour DESC, agent

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-19 18:40:15

Might need to drop and re-create because the columns changed from interval to int

James Turner (jturner@shield-legal.com)
2025-03-20 16:23:51

What time zone is Lawruler? PST or Utc?

James Turner (jturner@shield-legal.com)
2025-03-20 16:35:55

Does the lr status change table change it to utc?

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-21 13:28:53
James Turner (jturner@shield-legal.com)
2025-03-21 14:18:39

tort-intake-professionals.FinancialLogDataset tort-intake-professionals.five9measures tort-intake-professionals.five9source tort-intake-professionals.lrdata tort-intake-professionals.thecorner tort-intake-professionals.tipprodapplication

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-21 18:50:41

FORMAT_DATETIME( '%M:%S', DATETIME( 1970, 1, 1, 0, CAST(duration / 60 AS INT64), duration - CAST(duration / 60 AS INT64) ** 60 ) )

James Turner (jturner@shield-legal.com)
2025-03-26 18:14:25

abari jabari1mcdonnell@gmail.com 7025730973

3/26/25

Kathleen Tort Intake Professionals 5170 Badura Ave Las Vegas, NV 89169

Subject: My Glorious Exit from the Circus

Dear Kathleen,

After much thought (and a lot of deep sighing), I have decided to formally resign from my position at Tort Intake Professionals, effective 3/28/25.

Working here has been an experience one that has sharpened my ability to navigate undocumented policies, endure impromptu photo ops without consent, and master the art of receiving feedback via office gossip instead of direct coaching. I have had the privilege of operating in an environment where veteran employees treat mistakes like career opportunities (for them, not the person who made the mistake), and where competition is less about performance and more about who's dealt the better hand in the bad-lead lottery.

Management proudly touts an open-door policy, but in reality, it's more of an open-floor policy where employee performance, concerns, and careers are openly dissected right in the middle of the office for maximum public entertainment. Why waste time on professional one-on-one conversations when you can broadcast critiques like a live workplace drama? The level of unprofessionalism is truly groundbreaking.

I have often heard the phrase, maybe this isn't the right place for you thrown around as a catch-all excuse for why things never improve. It's a convenient way to dismiss real concerns without accountability, as if the problem is that employees just don't fit in rather than the reality that the culture thrives on inconsistency, favoritism, and blurred ethical lines. If the right fit means accepting workplace gossip as professional communication, competing on an uneven playing field, and pretending that lack of documentation is a feature, not a bug then you're absolutely right. This isn't the place for me.

And let's talk about competition for a moment. True competition drives people to be better, to push themselves and their peers toward excellence in a way that benefits the entire team. It's built on skill, innovation, and hard work not on tearing others down just to get a step ahead. But what thrives here is not competition it's a 1994 crabs-in-a-bucket mentality, where the moment someone tries to climb higher, others scramble to pull them back down. Instead of fostering growth, this culture rewards those who sabotage, backstab, or manipulate their way to the top. That's not competition; that's survival at the expense of progress. And frankly, I have no interest in playing that game.

And speaking of things that should be done professionally, documentation. Or, in this case, the complete and utter absence of it. Any well-run business knows that communication between employees and management should be documented not just for clarity, but to prevent the inevitable game of corporate telephone where today's verbal agreement turns into tomorrow's I never said that. Yet here, conversations vanish into thin air faster than accountability at a leadership meeting. No records, no paper trail, just a whole lot of I don't recall saying that. It's truly a marvel how policy can shift depending on what's asking, what mood management is in, and whether Mercury is in retrograde.

Now, credit where credit is due: the pay has been solid. It's just a shame that financial compensation was the only consistent thing about this job. The real prize has been the invaluable lesson that success in some workplaces isn't about skill or integrity it's about how well you can navigate chaos with a forced smile.

So, I'll take my skills (and my sanity) elsewhere, but I do wish the best to my former coworkers especially the ones who actually believe in teamwork and not just survival of the fittest. To everyone else, may your next clandestine hallway gossip session be as productive as the coaching meetings we never had.

Sincerely (and finally, freely), Jabari

James Turner (jturner@shield-legal.com)
2025-03-27 12:21:04

Hey there, I am attempting to set up Bigquery in Pycharm and set it up with the "New" button on the database tab, I initally tried to set it up as a google service account but got that no permissions error.

Attempted to set it up by going through google user account as authentication instead and it tested successful but it's super slow..

James Turner (jturner@shield-legal.com)
2025-03-27 12:21:23

Like I've been waiting for it to load the tables schema for a hot minute.

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-27 12:21:46
James Turner (jturner@shield-legal.com)
2025-03-27 12:26:22

How does this work without a key? It just checks if you're logged in locally?

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-27 12:26:53

the gcloud cli saves your creds on your device then the application default credentials uses that

James Turner (jturner@shield-legal.com)
2025-03-27 12:27:36

Does anything need to be imitated first locally? Sorry for potentially silly questions

James Turner (jturner@shield-legal.com)
2025-03-27 12:28:09

Well nevermind- It refused to connect and then started working on pycharm

James Turner (jturner@shield-legal.com)
2025-03-28 13:57:06

``` 704865 IL YTC Abuse - SGGH - GLF - Shield Legal Potential issue with LR_data 3/27/2025 19:53

704349  NJ Juvenile Hall Abuse - BG - Bowersox - Shield Legal   Potential issue with LR_data    3/27/2025 19:02```
Dustin Surwill (dsurwill@shield-legal.com)
2025-03-28 14:15:24

No issue I can find with db for 704865

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-28 14:19:19

704349 has more than 1k activity log entries. LR will only give me the latest 1k. The other statuses are before all the question updates which is what generated those entries

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-28 14:19:50

I only have 1015 of 1877 activity log entries for 704349 because of LR

Dustin Surwill (dsurwill@shield-legal.com)
2025-03-28 14:21:06

We can manually enter the status updates that you require

James Turner (jturner@shield-legal.com)
2025-03-28 17:29:30

Hey you need to read this

James Turner (jturner@shield-legal.com)
2025-03-28 17:29:32
James Turner (jturner@shield-legal.com)
2025-03-28 17:29:49

In the new con competition and non solicitation agreement

James Turner (jturner@shield-legal.com)
2025-03-28 17:33:42

Inventions and Original Works.

(a) Assignment of Inventions . Employee agrees that Employee will promptly make full written disclosure to the Company, will hold in trust for the sole right and benefit of the Company or the Affiliates, and hereby assign to the Company or an Affiliate(s), or their designee, all Employee's right, title and interest in and to any and all inventions, original works of authorship, developments, concepts, improvements, designs, discoveries, ideas, trademarks or trade secrets, whether or not patentable or registrable under copyright or similar laws, which Employee may solely or jointly conceive or develop or reduce to pr actice, or cause to be conceived or developed or reduced to practice, during the period of time Employee is in the employ of the Company, Affiliates or any of them (collectively referred to as "Inventions"), except as provided below, Employee further acknowledges that all original works of authorship which are made by Employee (solely or jointly with others) within the scope of and during the period of employment with the Company and which are protectable by copyright are "works made for hire," as that term is defined in the United States Copyright Act. Employee understands and agrees that the decision whether or not to commercialize or market any Invention developed by Employee solely or jointly with others is within the Company's sole and absolute discretion and for the Company's sole benefit and that no royalty will be due to Employee as a result of the Company's efforts or non-efforts to commercialize or market any such Invention.

6

(b) Maintenance of Records. Employee agrees to keep and maintain adequate and current written records of all Inventions made by Employee (solely or jointly with others) during the term of employment with the Company. The records will be in the form of notes, sketches, drawings, and any other format that may be specified by the Company or the Affiliates or any of them. The records will be available to and remain the sole property of the Company at all times.

(c) Patent and Copyright Registrations . Employee agrees to assist the Company, Affiliates or any of them or their designee, at the Company's expense, in every proper way to secure, protect and/or transfer the Company's or Affiliate's rights in the Inventions and any copyrights, patents, mass work rights or other intellectual property rights relating thereto in any and all countries, including the disclosure to the Company or the Affiliates of all pertinent information and data with respect thereto, the execution of all applications, specifications, oaths, assignments, licenses, and all other instruments which the Company or the Affiliates shall deem necessary in order to apply for and obtain such rights and in order to assign and convey to the Company or an Affiliate(s), their successors, assigns, customers, purchasers and nominees the sole and exclusive rights, title and interest in and to such Inventions, and any copyrights, patents, mask work rights or other intellectual property rights relating thereto. Employee further agrees that Employee's obligation to execute or cause to be executed, when it is in Employee's power to do so, any such instrument or papers shall continue after the termination of this Agreement. If the Company or the Affiliates are unable because of Employee's mental or physi cal incapacity or for any other reason to secure Employee's signature to apply for or to pursue any application for any United States or foreign patents or copyright registrations covering Inventions or original works of authorship assigned to the Company or the Affiliates as above, then Employee hereby irrevocably designates and appoints the Company or the Affiliates and its duly authorized officers and agents as Employees agent and attorney in fact, to act for and in Employee's behalf and stead to execute and file any such applications and to do all other lawfully permitted acts to further the prosecution and issuance of letters patent or copyright registrations thereon with the same legal force and effect as if executed by Employee.

James Turner (jturner@shield-legal.com)
2025-04-01 13:08:21

Question for ya:

What did I do wrong, and how can I fix it?

Explanation: The scope of this project grew past what I initially named my directory, so before manually changing my directory name and all code routes inside, I looked up to see if Pycharm had a tool for that. I saw it has a refactor ability when you rename a directory. I made a branch for safety, renamed my directory from Finlog_validation to NewFin and saw that it missed part of my python code. I changed it manually, and saved but now when I run the newly saved file, I get this error.

James Turner (jturner@shield-legal.com)
2025-04-01 13:09:43

Wait, I think I might of actually figured it out..

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:09:55

The run configs next to the play button in the top right

James Turner (jturner@shield-legal.com)
2025-04-01 13:10:15

I didn't realize it was holding onto a old thing here

James Turner (jturner@shield-legal.com)
2025-04-01 13:10:24

Changed that to current file and it seems to work now

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:10:55

It does that because you can change settings per file you run and run multiple files at the same time

James Turner (jturner@shield-legal.com)
2025-04-01 13:10:59

Now will this cause issues with the git?

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:11:28

it should not

James Turner (jturner@shield-legal.com)
2025-04-01 13:16:15

Cool, and follow up Q: After the refactor I saw some oddness with my Venv that I was able to resolve, but it got me thinking. Should I be adding the Venv to the Git in case people are running different versions of python??

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:19:11

No. but you should add a requirements.txt with the libraries and their versions that you use.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:19:26

There are better ways but I am not familiar with them

James Turner (jturner@shield-legal.com)
2025-04-01 13:19:41

Cool- I'll dig in on it when I get the chance

James Turner (jturner@shield-legal.com)
2025-04-01 13:19:44

Thanks Dustin!

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:21:19

The better ways require tools or libraries whereas the requirements.txt is built in to python. Here is an example: https://github.com/shield-legal/dialers/blob/main/requirements.txt

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-01 13:22:14

you can generate it with pip freeze &gt; requirements.txt but it will include every library that is installed. I like to only save the libraries I need not the libraries that they need.

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-04-02 11:54:09

Hey is there any known issues with the Lawruler extract? I don't have any leads after 11:36am yesterday

James Turner (jturner@shield-legal.com)
2025-04-02 11:56:33
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-02 11:57:54

I apparently did break it. I though my changes were fine. Thanks for catching it. I believe I have fixed the problem. It will probably take 1-2 hours to backfill

James Turner (jturner@shield-legal.com)
2025-04-02 11:58:27

No worries, Postgres and Pycharm made it an easy check lol

🎆 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-04-02 11:58:52

I saw 15 leads in my billable status table for yesterday and went "uh-oh"

James Turner (jturner@shield-legal.com)
2025-04-02 12:01:16

Thankfully today is a "get everything together from March" day

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-02 12:09:56

2728 leads to update. After 100, ETA for the rest is 1:41:00

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-02 12:49:57

The DB is working on the site: https://shieldlegal.dev/

James Turner (jturner@shield-legal.com)
2025-04-02 13:10:38

Just ran a larger query in Pycharm/Postgres for the first time and it gave me a lil notification when it was done. I gotta say..

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-02 13:11:50

You can also tell the results window to run the query on a timer

James Turner (jturner@shield-legal.com)
2025-04-02 13:13:21

Working in Pycharm/postgres feels so much more like actual engineering work than working out of BQ

James Turner (jturner@shield-legal.com)
2025-04-02 13:13:26

If that makes any sense

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-02 13:13:59

it does

😀 James Turner
James Turner (jturner@shield-legal.com)
2025-04-04 11:43:23
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-04 11:44:52

Didn't you mention that there was a discount code that we will need? Also how will we pay?

James Turner (jturner@shield-legal.com)
2025-04-04 11:46:28

GCNEXT25 is the discount code, and Ryan will be sending over the CC info

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-04-04 12:07:18

I recommend filling this out until you get to the payment spot, and I'll send you the payment info once ryan gets it to me https://cloud.withgoogle.com/next/25/plan-your-trip#tickets

cloud.withgoogle.com
👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-04 12:31:55

Should we register with our personal accounts but add the work email under business email? or only use the business email for both?

James Turner (jturner@shield-legal.com)
2025-04-04 13:35:33

sent

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-04 13:38:51

Complete.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-04 17:53:32
James Turner (jturner@shield-legal.com)
2025-04-04 17:59:29

Clicked my shield Legal one like 4 times and nothing happened. Closed it, opened back up, and got that

James Turner (jturner@shield-legal.com)
2025-04-04 18:00:35

Same thing going from browser https://shieldlegal.dev/

James Turner (jturner@shield-legal.com)
2025-04-04 18:00:45
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-04 19:17:38

fixed it. there were 3 small problems

James Turner (jturner@shield-legal.com)
2025-04-07 13:13:58

Interesting article- I'ma save that site for the future..

BTW, I know I'm making some silly mistake.

James Turner (jturner@shield-legal.com)
2025-04-07 13:14:14
James Turner (jturner@shield-legal.com)
2025-04-07 13:14:41

But I'm not sure where. My best guess is the link I'm grabbing

James Turner (jturner@shield-legal.com)
2025-04-07 13:50:34

Any known issues with LR-Data?

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-07 13:52:48

apparently I have not fully fixed the problems when LR reboots. It got stuck at 9:11 PM 4/5. It will start fixing at noon

James Turner (jturner@shield-legal.com)
2025-04-07 13:55:48

Interesting. The latest I'm seeing as far as billable Rets are April 5th 3:50pm

James Turner (jturner@shield-legal.com)
2025-04-07 13:56:55

Which uses the leadstatushistory

James Turner (jturner@shield-legal.com)
2025-04-07 13:57:17
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-07 13:57:27

apparently I have not fully fixed the problems when LR reboots. It got stuck at 9:11 PM 4/5. It will start fixing at noon

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-07 14:00:38

That is not UTC that is PST. which means it was fine until 9 PM 4/5 (my mistake was not paying attention to date)

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-07 14:01:09

~2575 leads to update. will probably be about 2 hours

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-04-16 12:15:48

Any ideas?

James Turner (jturner@shield-legal.com)
2025-04-16 12:16:21

I want to move more of my work into python rather than sql so I setting up the bigquery connection and my service account I set up is just not doing the thing

James Turner (jturner@shield-legal.com)
2025-04-16 12:17:03

Ward is in a meeting btw, otherwise I would say cmon over lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-16 12:18:17

Try now. I am also in a meeting

James Turner (jturner@shield-legal.com)
2025-04-16 12:18:30

No worries, I think I may have figured it out

James Turner (jturner@shield-legal.com)
2025-04-16 12:18:38

(Ain't that just how it goes..)

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-17 22:34:07

Would you like me to share some of the IT/programming/SQL articles I read that are interesting and most of the time relevant?

James Turner (jturner@shield-legal.com)
2025-04-18 14:23:16

Please do!

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-18 14:23:49

https://www.pcgamer.com/hardware/if-you-thought-usb-naming-was-nonsense-allow-this-professional-furry-engineer-explain-the-total-nightmare-that-is-the-underlying-hardware-complexity-of-usb-c/ https://dev.to/code42cate/serverless-is-a-scam-5fc0 https://www.kdnuggets.com/sql-cte-vs-subquery-this-debate-aint-over-yet

PC Gamer
DEV Community
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-22 14:49:18
James Turner (jturner@shield-legal.com)
2025-04-22 14:53:26

Lol awesome

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 01:14:38

https://dev.to/devnenyasha/if-youre-diving-into-devops-start-here-no-not-with-kubernetes-3gch

DEV Community
✅ James Turner
James Turner (jturner@shield-legal.com)
2025-04-24 12:01:44

So what I'm hearing from all this..

James Turner (jturner@shield-legal.com)
2025-04-24 12:01:48

Is I need to learn Linux

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:02:09

And do use it daily. Maybe replace windows

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:02:37

git bash was installed with git and lets you do some things

James Turner (jturner@shield-legal.com)
2025-04-24 12:02:49

I would be down, but gaming makes that such a difficult sell

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:03:12

I am currently dual booting for that purpose (VR and FPS games)

James Turner (jturner@shield-legal.com)
2025-04-24 12:03:38

Would it be possible to run linux on these machines? When I say possible I mean allowed and quick enough move over that it isn't going to halt things for weeks.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:05:20

I can boot from a flashdrive without IT. but flash drives do not have the longevity. I also have external ssds. I can get one running to show you tomorrow

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:05:28

does not take long to install

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:06:44

I would say for me it takes less than half a day to install linux, configure and install all the programs I need. For others it may take a couple of days

James Turner (jturner@shield-legal.com)
2025-04-24 12:08:23

Maybe I'll set it up on my personal laptop or desktop first

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:08:34

try a VM

James Turner (jturner@shield-legal.com)
2025-04-24 12:09:04

I also have an older (like 3-4ish years) HP laptop that might be fun to full boot over

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:09:44

beware you may need ethernet. sometimes wifi drivers do not work at first

James Turner (jturner@shield-legal.com)
2025-04-24 12:09:58

I have ethernet at home but also gross

James Turner (jturner@shield-legal.com)
2025-04-24 12:10:07

not gross to ethernet, I use it when I can\

James Turner (jturner@shield-legal.com)
2025-04-24 12:10:32

gross to driver incompatibility. I have been having to fight that nonstop on my full AMD build and it's been annoying.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:10:52

AMD is better on linux than Intel and NVidia

James Turner (jturner@shield-legal.com)
2025-04-24 12:11:59

I'm not sure why but that makes sense to me subconsciously.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:12:15

AMD has open-source drivers

James Turner (jturner@shield-legal.com)
2025-04-24 12:12:19

Maybe it's because AMD is a little more.. finnicky, but you get a better bang for buck

James Turner (jturner@shield-legal.com)
2025-04-24 12:12:28

Didn't know that, but it tracks.

James Turner (jturner@shield-legal.com)
2025-04-24 12:17:50

Is this sarcasm? I thought arch was generally unstable and you have to re-configure constantly.

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-24 12:18:37

It can be solid but you have to be careful. I suggest Debian or Fedora as the first distro to try

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-04-25 11:38:22

Heyo~ question for you when you get a chance..

James Turner (jturner@shield-legal.com)
2025-04-25 11:39:09

Any idea why these 10 leads show up in lrdata.lead , but not lrdata.contact?

James Turner (jturner@shield-legal.com)
2025-04-25 11:39:24
Dustin Surwill (dsurwill@shield-legal.com)
2025-04-25 11:40:15

are those lead ids or contact ids? the id column in the contacts table maps the contactid in the leads table

James Turner (jturner@shield-legal.com)
2025-04-25 11:42:22

Ah, that makes sense. Leadids. I spaced that. They show up on LRData, and are making their way into my billableleadsunique step, but aren't making their way through to the end of the newfin pipeline which is odd.

James Turner (jturner@shield-legal.com)
2025-04-25 11:42:31

I'll poke around some more. thank you

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-30 12:34:53

FYI: the five9 call report table has not updated since 5 PM April 28th

Dustin Surwill (dsurwill@shield-legal.com)
2025-04-30 12:35:05

FYI: the five9 call report table has not updated since 5 PM April 28th

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 11:59:25

You should take a look at this tool: https://learn.microsoft.com/en-us/windows/powertoys/ It can installed without admin with winget install microsoft.powertoys

learn.microsoft.com
James Turner (jturner@shield-legal.com)
2025-05-02 12:07:03

Looks really cool

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:12:40

Its one of my standards to install on windows machines I use. I only a few functions but all of them are useful

James Turner (jturner@shield-legal.com)
2025-05-02 12:14:33

i'm excited to play with it, but the installer won't launch lol

James Turner (jturner@shield-legal.com)
2025-05-02 12:14:42

Might have to restart pc

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:14:59

I can help in a few minutes after this meeting

James Turner (jturner@shield-legal.com)
2025-05-02 12:15:22

no worries, I'm OOO today. I think it's just joes IT being Joes IT

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:15:38

did you use the winget command I gave?

James Turner (jturner@shield-legal.com)
2025-05-02 12:16:04

No I missed that part of the message, lemme try

James Turner (jturner@shield-legal.com)
2025-05-02 12:19:02

Looks like it's going through now. The Microsoft store version crashes out hard

James Turner (jturner@shield-legal.com)
2025-05-02 12:44:25

I like the fancyzones lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:44:51

I thought you would. I think I tried telling you about it before

James Turner (jturner@shield-legal.com)
2025-05-02 12:44:57

You did

James Turner (jturner@shield-legal.com)
2025-05-02 12:45:02

I also like Find my mouse

James Turner (jturner@shield-legal.com)
2025-05-02 12:47:01

Omg command palette is great

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:48:41

try WIN+SHIFT+?

James Turner (jturner@shield-legal.com)
2025-05-02 12:50:13

Especially with my pc doing this constantly

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 12:50:53

And that is why having web search enabled is a bad idea but you can only turn it off using admin

James Turner (jturner@shield-legal.com)
2025-05-02 12:52:12

huh clipboard history thats nice

James Turner (jturner@shield-legal.com)
2025-05-02 12:53:17

This is cool

James Turner (jturner@shield-legal.com)
2025-05-02 14:05:34

I know how you feel about Bigquery (lol) but have you used their data canvas feature?

James Turner (jturner@shield-legal.com)
2025-05-02 14:11:59

The AI aspect of is pretty trash but as a tool to view multiple table schemas and pipelines at once, and build out new pipelines

James Turner (jturner@shield-legal.com)
2025-05-02 14:12:04

It's the best option I've seen

James Turner (jturner@shield-legal.com)
2025-05-02 14:12:26

It's a bit laggy but I'm not sure if that's our machines

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 14:31:33

I have not seen it

James Turner (jturner@shield-legal.com)
2025-05-02 16:53:38

Heyo~ lr_data question, do we pull this section here?

That is where we declare if a lead is a inital lead vs referral and I need to be able to tag referral leads

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-02 16:55:06

lead_source holds the options and lead.sourceid is the selected option

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-08 16:00:13

*Thread Reply:* here ^

James Turner (jturner@shield-legal.com)
2025-05-02 16:56:00

A step ahead of me! Love it!

James Turner (jturner@shield-legal.com)
2025-05-05 13:00:36

Looks like they are stored in Pacific time in Lawruler

James Turner (jturner@shield-legal.com)
2025-05-05 13:55:53

What do you think we should do? change all sources into UTC???

James Turner (jturner@shield-legal.com)
2025-05-05 13:56:07

or say heck it and keep it all Pacific time?

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-05 13:57:30

Should probably change all but it will be a task. We will need to identify all columns using PST then update the DB (UPDATE query) and change the database dump code before it runs again

James Turner (jturner@shield-legal.com)
2025-05-05 13:58:52

I'm trying to get it consistent across my end, but even just the things i've built, it's a nightmare trying to move it all over. Might be worth keeping it in PST if we can't get the full scope of what we are effecting but idk

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-05 13:59:52

All times in a DB should be UTC since daylight savings and timezones affect it if not

James Turner (jturner@shield-legal.com)
2025-05-05 14:00:06

Yeah you right

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-05 14:02:46

Have a few to talk about other data?

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-07 16:37:20

My subconscious was correct. Before I got back from lunch I got the thought that it was a GCP permissions issue. When I checked the logs, I was correct

James Turner (jturner@shield-legal.com)
2025-05-07 17:04:13

Haha nice

James Turner (jturner@shield-legal.com)
2025-05-08 12:57:55

I'm gonna make a Postgres server bc I wanna poke around in it and use it for a simple project to get my feet wet

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-08 12:58:15

If you do it in GCP it will cost

James Turner (jturner@shield-legal.com)
2025-05-08 13:00:28

What kind of cost are we looking at? I recall you saying it's a blanket cost rather than how BQ does it, but I'm seeing hourly pricing here

James Turner (jturner@shield-legal.com)
2025-05-08 13:02:26

Is that like processor time an hour, or is that like, like.. 60 cents an hour all the time, meaning 460 bucks a month no matter what

James Turner (jturner@shield-legal.com)
2025-05-08 15:57:43

Hey there, please remind me, where is marketingsource ( if it is a referal or not) held in lrdata?

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-08 16:00:15

here ^

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-09 00:02:28

https://www.cio.com/article/3979014/12-reasons-to-ignore-computer-science-degrees.html?amp=1

CIO
Written by
Anonymous
Est. reading time
9 minutes
James Turner (jturner@shield-legal.com)
2025-05-09 11:01:16

Lmao thats funny

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-09 18:15:19

https://www.theregister.com/2025/05/09/37signals_cloud_repatriation_storage_savings/

theregister.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-16 12:55:13
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-19 01:58:50

https://blog.det.life/why-are-there-so-many-databases-87d334c5dce6

Medium
Reading time
13 min read
James Turner (jturner@shield-legal.com)
2025-05-20 10:37:38

Ohh that looks interesting

James Turner (jturner@shield-legal.com)
2025-05-20 11:39:04

That is pretty nice actually

James Turner (jturner@shield-legal.com)
2025-05-20 11:39:08
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 11:39:41

new laptop?

James Turner (jturner@shield-legal.com)
2025-05-20 11:42:11

Yee

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 17:16:23
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 17:24:58

gcloud init gcloud auth application-default login

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 18:20:19
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 19:03:55
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-20 19:57:15

You left your water bottle near our whiteboard

James Turner (jturner@shield-legal.com)
2025-05-20 20:45:55

Oh dang

James Turner (jturner@shield-legal.com)
2025-05-20 20:45:58

Thanks for letting me know

James Turner (jturner@shield-legal.com)
2025-05-21 01:44:28
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-21 11:28:56

Heads up looking to rename at least 1 of the 2 case types named Camp Lejeune - Dicello - Crump (TC) - BLX

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-21 12:41:30

DB dump just restarted since LR update at midnight. ETA for update is probably 1.5 hours

James Turner (jturner@shield-legal.com)
2025-05-21 13:05:27

Good to know- Ty! Updated Ward as well

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-21 19:07:40
James Turner (jturner@shield-legal.com)
2025-05-22 12:23:16

Does Five9 natively bring talk_time in as a datetime64 or did you use some sort of code to convert it? It seems odd that it does not live natively as a timedelta64

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-22 12:28:19

Gets CSV from five9 and converts timestamp column to datetime: https://github.com/shield-legal/dialers/blob/973bf5decca8b92ded82c0f2bea6f0fe3aad65ed/five9_reports.py#L40-L51 If table does not exist in Postgres import from json to pandas then replace types to match Postgres before creating table: https://github.com/shield-legal/dialers/blob/973bf5decca8b92ded82c0f2bea6f0fe3aad65ed/cloudpostgres.py#L89-L105

James Turner (jturner@shield-legal.com)
2025-05-22 12:28:47

Ah makes sense- Thank you

James Turner (jturner@shield-legal.com)
2025-05-22 12:28:51

I was just curious

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-22 12:29:44

Once table is created manually go through to update column types. Postgres then handles the conversions for new (on insert) and old data (on column type update)

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-22 14:01:42

https://www.cnn.com/2025/05/14/us/triple-fatal-climbing-fall

CNN
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-25 15:33:44

https://dev.to/shayy/the-serverless-dream-is-dead-2945

DEV Community
James Turner (jturner@shield-legal.com)
2025-05-27 12:16:07

I read that article, and I feel a little silly asking this but it keeps referring to 'state'

James Turner (jturner@shield-legal.com)
2025-05-27 12:16:16

I understand state as the status of a variable

James Turner (jturner@shield-legal.com)
2025-05-27 12:16:27

but that doesn't really make sense with what they are talking about

James Turner (jturner@shield-legal.com)
2025-05-29 15:36:52

Hey I think something might of bugged out on the postgresql server.

I ran a query that normally takes like 2-3 minutes, and walked away, came back and it was still running at 40min. I canceled it but that's odd right???

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-29 15:42:11

Did you start it around the hour?

James Turner (jturner@shield-legal.com)
2025-05-29 15:58:15

Probably

James Turner (jturner@shield-legal.com)
2025-05-29 15:58:23

I took the screenshot right before I sent it to you

James Turner (jturner@shield-legal.com)
2025-05-29 15:58:57

so probably like 12:55ish?

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-29 16:10:25

Possible stuck in a db lock during the table update process. Will have to check logs to be sure and check if there are any other impacts. Try running it now and see if it is running normally

James Turner (jturner@shield-legal.com)
2025-05-29 16:14:02

Running now-

James Turner (jturner@shield-legal.com)
2025-05-29 16:19:17

Did a very odd thing. It initially never reported it as finished, so I waited until 6 minutes and force ended it. After force ending it, it read as a success. I attempted to use the dataframe the results were set to be saved to, and Pycharm is saying it doesn't exist in the traceback error.

James Turner (jturner@shield-legal.com)
2025-05-29 16:21:25

Checking my database services and it failed to cancel server side on the earlier one, despite reporting canceled on my jupyter notebook

James Turner (jturner@shield-legal.com)
2025-05-29 16:22:05
James Turner (jturner@shield-legal.com)
2025-05-29 16:22:40

Checking my database services and it failed to cancel server side on the earlier one, despite reporting canceled on my jupyter notebook

James Turner (jturner@shield-legal.com)
2025-05-29 16:23:43

Restarting PC, hopefully that forces closed the connection

Dustin Surwill (dsurwill@shield-legal.com)
2025-05-29 18:12:43

Can I get access to Paul's repo in the tip GitHub?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:09:24

*Thread Reply:* bump

James Turner (jturner@shield-legal.com)
2025-06-02 13:20:07

*Thread Reply:*

James Turner (jturner@shield-legal.com)
2025-06-02 13:20:22

*Thread Reply:* haha Bump- it's been a hot minute since I saw that in forums and such

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:23:12

*Thread Reply:* accepted

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:23:17

*Thread Reply:* thanks

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-05-29 18:36:53

Ward told Brittany & Paul they are not allowed to deploy code without my or McFadden's approval

James Turner (jturner@shield-legal.com)
2025-06-02 10:58:00

Hey there, any known issues with the Lr_data extract? Cam is not seeing the notifications he should be seeing so I'm trying to get a quick backup system set up.

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 11:12:32

Not atm. Just pulled into office. Give 5 minutes to look

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 11:19:24

No errors

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:09:26

bump

James Turner (jturner@shield-legal.com)
2025-06-02 13:09:50

Thanks for reminder

James Turner (jturner@shield-legal.com)
2025-06-02 13:10:35

Doing it now

James Turner (jturner@shield-legal.com)
2025-06-02 13:52:51

How we doing on getting LR-data to every half hour?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:54:26

It was changed at 9:33am, just after I sent: https://themedialaboratory.slack.com/archives/C08UUCKAYKD/p1748881968616799

Dustin Surwill (https://themedialaboratory.slack.com/team/U07LPFF756H)
James Turner (jturner@shield-legal.com)
2025-06-02 13:55:09

Oh I didn't realize it was gonna be that quick

James Turner (jturner@shield-legal.com)
2025-06-02 13:55:19

I figured it would take code changes and testing

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-02 13:55:53

No, its controlled by cloud scheduler. Thats why I checked the metrics

James Turner (jturner@shield-legal.com)
2025-06-02 14:01:53

Oh cool, I didn't kow that

James Turner (jturner@shield-legal.com)
2025-06-02 14:01:54

awesoem

James Turner (jturner@shield-legal.com)
2025-06-02 14:01:57

Awesome**

James Turner (jturner@shield-legal.com)
2025-06-03 12:11:33

Found a better way then deleting it

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-03 12:11:45

?

James Turner (jturner@shield-legal.com)
2025-06-03 12:12:19

> Open the view > make an edit > save view > save as > write the exact same table name and over-write will appear which updates the schema.

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-06-03 12:12:31

Sorry wasn't done typing lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-06 13:57:33

my current notes for paul

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-06 14:01:35

Also his code is not pythonic. it is structured as a c project...

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-06 14:03:11

That tool currently uses gcloud cli and google console permissions. That means it would not work for CSP. (that is why I spun up the website)

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-06 14:43:59

Thinking about it, part of the problem is the constant references to the past or other companies

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-06 16:28:01

https://peps.python.org/pep-0008/ https://google.github.io/styleguide/pyguide.html

Python Enhancement Proposals (PEPs)
google.github.io
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 13:01:41

Whats your opinion on rearranging slack so that shield people are external users to tort workspace and tort are external users to shield workspace instead of some people having accounts in both?

James Turner (jturner@shield-legal.com)
2025-06-09 13:11:34

Honestly, it would be more trouble than it's worth

James Turner (jturner@shield-legal.com)
2025-06-09 13:11:38

imo

James Turner (jturner@shield-legal.com)
2025-06-09 13:11:53

I think it makes sense, but with all the other stuff going on, doesn't make sense to do rn

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 13:14:35

What are you saying the masters that be cannot multi-task?

😆 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 13:14:40

What are you saying the masters that be cannot multi-task?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 13:15:35

It does seem like something we can do ourselves

James Turner (jturner@shield-legal.com)
2025-06-09 13:55:22

Potentially? Might cause a lot of confusion for non technical people though. Also on a personal/selfish note I just don't want to change everything over

James Turner (jturner@shield-legal.com)
2025-06-09 13:57:02

Any reason my global Data sources would disappear on PC restart??

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 13:57:53

No idea. Try restarting PyCharm?

James Turner (jturner@shield-legal.com)
2025-06-09 13:58:43

Pycharm was being funky (Not updating data set that it should of) so I closed out all windows, restarted PC and now my whole pc is CHUGGING despite sitting at 18-20% cpu

James Turner (jturner@shield-legal.com)
2025-06-09 13:58:55

Might just do a full shut down, and leave it off for a few minutes

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:06:29

shutdown is better than restart, (cold boot vs warm boot)

James Turner (jturner@shield-legal.com)
2025-06-09 14:20:25

Weird. I full shutdown, left it down for 10 minutes, turned it back on and I'm sitting at 30-50% cpu usage idle

James Turner (jturner@shield-legal.com)
2025-06-09 14:20:37

with Joes Sentinel taking 10-25%

James Turner (jturner@shield-legal.com)
2025-06-09 14:20:59

and my global database connections are wiped from all my projects

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:22:54

Did pycharm update?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:34:48

I had the wrong path. Anything here?

James Turner (jturner@shield-legal.com)
2025-06-09 14:35:23

Checking

James Turner (jturner@shield-legal.com)
2025-06-09 14:38:40

Looks like some of the files are hidden but was able to get it to it through powertoys helpfulness

James Turner (jturner@shield-legal.com)
2025-06-09 14:39:29

Looks like some of the files are hidden but was able to get it to it through powertoys helpfulness

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:39:40

Thats the wrong path. try inserting C:\Users\James\AppData\Local\JetBrains into explorer

James Turner (jturner@shield-legal.com)
2025-06-09 14:40:12

I navigated to that from where I got before

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:42:10

check the PyCharm2025.1/data-source folder. if empty replace with mine once pycharm is closed

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:42:15
James Turner (jturner@shield-legal.com)
2025-06-09 14:45:29

Gotchu. Extracted and brought over-

James Turner (jturner@shield-legal.com)
2025-06-09 14:45:36

I actually didn't even have a data-source file anymore

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 14:46:38

wrong folder. put in the folder without a space

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-06-09 14:49:43

Not empty oddly enough

James Turner (jturner@shield-legal.com)
2025-06-09 14:50:00
James Turner (jturner@shield-legal.com)
2025-06-09 14:53:02

Saved mine as a zip, deleted it out, copied yours into the file path. Gonna go for one more re-start and hopefully things pop

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-06-09 14:56:38

Saved mine as a zip, deleted it out, copied yours into the file path. Gonna go for one more re-start and hopefully things pop

James Turner (jturner@shield-legal.com)
2025-06-09 14:58:56

Nothin'

James Turner (jturner@shield-legal.com)
2025-06-09 14:59:18
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 15:00:27

try using file > manage ide settings > import settings and point it to this zip

James Turner (jturner@shield-legal.com)
2025-06-09 15:03:07

Cool looks like that worked, just gotta go into properties on each one and change user / delete what I don't use

James Turner (jturner@shield-legal.com)
2025-06-09 15:03:10

?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-09 15:03:28

yep

James Turner (jturner@shield-legal.com)
2025-06-09 15:15:04

Think I got it for Bigquery- Trying to remember for Postgresql because I remember it was different..

James Turner (jturner@shield-legal.com)
2025-06-09 17:26:50

Bro- why so long?? It seems to be all over the place. Sometimes takes a minute or 2, sometimes like 6??

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-10 00:33:22

https://www.bytebase.com/blog/features-i-wish-mysql-had-but-postgres-already-has/

Bytebase
😆 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-11 02:09:31

https://www.blog4ems.com/p/being-an-engineering-manager-today-has-never-been-harder

blog4ems.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-13 16:37:56

https://blog.cloudflare.com/cloudflare-service-outage-june-12-2025/

The Cloudflare Blog
Written by
Jeremy Hartman
Filed under
Outage,Post Mortem
James Turner (jturner@shield-legal.com)
2025-06-13 17:06:26

Good article ty

🙃 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-14 00:02:57

https://dev.to/coingecko/scaling-postgresql-performance-with-table-partitioning-136o

DEV Community
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-14 00:16:34

I was right. The outages were related https://www.bleepingcomputer.com/news/technology/google-cloud-and-cloudflare-hit-by-widespread-service-outages/

BleepingComputer
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-15 08:42:40

https://dev.to/shayy/postgres-is-too-good-and-why-thats-actually-a-problem-4imc

DEV Community
James Turner (jturner@shield-legal.com)
2025-06-16 11:16:38

Interesting. Good to know, thank you

James Turner (jturner@shield-legal.com)
2025-06-16 13:53:04
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 13:56:04

So when are we flipping the db to utc?

James Turner (jturner@shield-legal.com)
2025-06-16 14:09:10

Probably after we audit and document where everything is right now.

James Turner (jturner@shield-legal.com)
2025-06-16 14:10:28

This came up because I was requested to build a data privacy and model governance policies for Sphere

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 14:31:04

Also I would list Python in the data transformation area with BQ, Postgres & DBT

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-06-16 14:38:52

Good call- Been staring at this too long lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 14:51:23

And Ive been in the desert too long

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 14:53:20

This is where I am and my desk.

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 14:53:32
James Turner (jturner@shield-legal.com)
2025-06-16 14:57:23

Lol working out of a military base pretty much

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 14:57:52

With walls made of 2x4 and plywood on the edge of salt flats

James Turner (jturner@shield-legal.com)
2025-06-16 15:02:30

Stuck in a meeting, but feel free to start jackson thing w/o me

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 15:03:03

He already started, Me, McFadden and Brittany are in it

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-16 17:54:46

So it is hard to dump the image I have of what the program should look like into words

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-17 16:00:58

This is my basic plan:

James Turner (jturner@shield-legal.com)
2025-06-17 17:02:33

Nice- According to Jackson the part that takes awhile isn't the checking or lawruler stuff, it's the call recordings

James Turner (jturner@shield-legal.com)
2025-06-17 17:02:46

Did you look into what I shared for call recording transcripts by any chance?

James Turner (jturner@shield-legal.com)
2025-06-17 17:02:56

Did you look into what I shared for call recording transcripts by any chance?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-17 17:03:46

I am leaving the transcripts to @Nicholas McFadden

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-17 17:04:16
James Turner (jturner@shield-legal.com)
2025-06-17 17:06:15

Makes sense- He communicated that to me, I should of passed that on.

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 13:17:33

Not to make more work, but I'm surprised HIPPA is not mentioned

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 13:17:44

in your data standards and policies doc

James Turner (jturner@shield-legal.com)
2025-06-19 14:23:40

I have a meeting with Tim in legal tomorrow to go over any extra legal stuff

James Turner (jturner@shield-legal.com)
2025-06-19 14:24:02

but we have documents that people sign that cover Hippa stuff

James Turner (jturner@shield-legal.com)
2025-06-19 14:24:47

I wanted to go GGWP policies, which would cover everything but was told that would be overkill

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-06-19 14:25:14

I wanted to go GGWP policies, which would cover everything but was told that would be overkill

James Turner (jturner@shield-legal.com)
2025-06-19 14:36:27

I'm having a hard time trying to figure out RBAC because we have no roles to begin with

James Turner (jturner@shield-legal.com)
2025-06-19 14:36:47

So I'm thinking of making permission sets, and each user can have multiple permission sets assigned to them

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 14:36:54

Ill make you admin in site so you can see what I have setup

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 14:38:10

permissions assigned. I have roles which can be assigned to users or groups. pemissions are put on the roles

James Turner (jturner@shield-legal.com)
2025-06-19 14:42:29

Send site link again?

James Turner (jturner@shield-legal.com)
2025-06-19 15:21:51

Thoughts?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 15:42:25
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-19 15:49:17

I think the comments in the permissions tab is funcky

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-21 16:23:52

https://userjot.com/blog/postgres-jsonb-vs-mongodb/

userjot.com
James Turner (jturner@shield-legal.com)
2025-06-23 11:15:03

Excited to blab with you about how your week in the desert went

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:50:48
James Turner (jturner@shield-legal.com)
2025-06-23 11:56:54

What part?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:57:10

the blue underline

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:57:15

a missing word

James Turner (jturner@shield-legal.com)
2025-06-23 11:57:15

Btw, I left in the bit about the weekend to see who actually read it.

James Turner (jturner@shield-legal.com)
2025-06-23 11:57:18

Ah thank you

James Turner (jturner@shield-legal.com)
2025-06-23 11:57:27

Removed should, and forgot to add must there. Thank yu

James Turner (jturner@shield-legal.com)
2025-06-23 11:57:31

You**

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:58:40

I saw it

James Turner (jturner@shield-legal.com)
2025-06-23 11:59:01

Lol I knew you would, you read the emails

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:59:12

Also wondered about it since you set the deadline as wednesday

James Turner (jturner@shield-legal.com)
2025-06-23 11:59:35

Other than the missing word, any changes you see that need to be made? Any additions?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 11:59:44

no

James Turner (jturner@shield-legal.com)
2025-06-23 17:28:07

https://cloud.google.com/bigquery/docs/partitioned-tables?hl=en&_gl=1**w8z6mc**_ga**MTQwMTQwMzI0NS4xNzQ3NDI0ODA2**_ga_WH2QY8WWF5**czE3NTA3MTQ2NDMkbzY2JGcxJHQxNzUwNzE3MzE1JGoyNSRsMCRoMA..

Google Cloud
Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 17:29:10

? You can partition in postgres + have multiple indexes to improve performance

James Turner (jturner@shield-legal.com)
2025-06-23 17:29:30

Oh I know I just wanted to share that with you in case you weren't aware

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 17:29:48

I was

James Turner (jturner@shield-legal.com)
2025-06-23 17:30:01

Cool

James Turner (jturner@shield-legal.com)
2025-06-23 18:19:28

Have you read Orileys Fundamentals of Data Engineering?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-23 18:24:48

No

James Turner (jturner@shield-legal.com)
2025-06-24 12:13:56

When building out RBAC, do you recommend building by data bucket?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-24 12:14:35

data bucket?

James Turner (jturner@shield-legal.com)
2025-06-24 12:21:55

I'm not sure how to explain it. The drop down bucket tables live in.

org.project.bucket.table

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-24 12:22:15

we can talk after this meeting

James Turner (jturner@shield-legal.com)
2025-06-24 12:23:46

I have a meeting at 11 but any time today

These

James Turner (jturner@shield-legal.com)
2025-06-25 14:47:53

Hey there, I am working with Murilo, data engineer for sphere and he is attempting to understand what is going on with integrations side.

Would you know the answer for this?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 15:29:42

Yes that is a GCP project for integrations

James Turner (jturner@shield-legal.com)
2025-06-25 15:56:54

There is a GCP project for integrations?

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 15:57:05

Yes

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 15:57:16

There are multiple GCP project and probably will be more

James Turner (jturner@shield-legal.com)
2025-06-25 18:25:47

Guy requesting read only access to integrations: mcamargos@sphereinc.com

James Turner (jturner@shield-legal.com)
2025-06-25 18:26:01

From Sphere, we were requested to give them whatever they need

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 18:29:50

fine

Dustin Surwill (dsurwill@shield-legal.com)
2025-06-25 18:29:54

its done

James Turner (jturner@shield-legal.com)
2025-06-25 18:34:07

I dunno man. I have the same concerns but we can only do what we can do

James Turner (jturner@shield-legal.com)
2025-06-25 18:34:15

lol

James Turner (jturner@shield-legal.com)
2025-07-01 12:41:14

Remind me one more time because brain go brrrr

James Turner (jturner@shield-legal.com)
2025-07-01 12:41:24

lr_data, PST or UTC in the database?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 12:43:40

I think PST

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 19:51:04

Do these numbers make sense?

James Turner (jturner@shield-legal.com)
2025-07-01 19:51:15

??

James Turner (jturner@shield-legal.com)
2025-07-01 19:51:46

Looking, but that's showing up SUPER weird on mobile

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 19:51:50

billable vs signed vs signed_declined for DL campaigns

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 19:52:07

I blame slack. It renders excel / csv weird period

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 19:52:13

This is all time BTW

James Turner (jturner@shield-legal.com)
2025-07-01 19:53:09

Where did you get the numbers? And for billable is it any status deemed billable in our status table?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 19:54:29

billable is based on the statuses with billable=true in iotiplrstatusrates the numbers are from the attached sql

James Turner (jturner@shield-legal.com)
2025-07-01 20:08:05

Ones where current status is a billable =True?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 20:24:59

Yes

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 20:25:25

For the billable column and just final or retriggered for the signed column

James Turner (jturner@shield-legal.com)
2025-07-01 20:26:17

What are they trying to gather from the table?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-01 20:28:29

How many emails we may have to re-trigger for finals since the email automations for dl have been turned on and off without integrations in place. I think Abe was angry about missing cases

James Turner (jturner@shield-legal.com)
2025-07-02 15:57:48

Sorry I got pulled into other things last night

James Turner (jturner@shield-legal.com)
2025-07-02 15:57:58

Did we ever change five9v2 over to UTC?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-02 16:17:19

No, looks like PST

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-07-07 15:34:55

In your opinion, what is the best way to run a scheduled query, that gets seconds as an int from a 'time' datatype and returns it as new column on a medium sized but growing dataset (five9)

I wrote this up which you think would be easy to run, but the estimated time to run it is wild-

```CREATE OR REPLACE TABLE tort-intake-professionals.tipopsdashboards.five9summarydata AS

SELECT -- Convert timestamps from PST to UTC DATETIME(TIMESTAMP(timestamp, 'America/LosAngeles'), 'UTC') AS timestamp, DATETIME(TIMESTAMP(contactcreatetimestamp, 'America/LosAngeles'), 'UTC') AS contactcreatetimestamp,

-- Raw fields abandoned, ani, calltype, campaign, customername, disposition, dnis, listname, sessionid, skill, aftercallworktime, calltime, handletime, holdtime, ivrtime, queuewaittime, talktime, timetoabandon, transfers, agentname, email, firstname, lastname, leadid,

-- Duration fields converted to seconds EXTRACT(HOUR FROM aftercallworktime) ** 3600 + EXTRACT(MINUTE FROM aftercallworktime) ** 60 + EXTRACT(SECOND FROM aftercallworktime) AS aftercallworktime_seconds,

EXTRACT(HOUR FROM calltime) ** 3600 + EXTRACT(MINUTE FROM calltime) ** 60 + EXTRACT(SECOND FROM calltime) AS calltime_seconds,

EXTRACT(HOUR FROM handletime) ** 3600 + EXTRACT(MINUTE FROM handletime) ** 60 + EXTRACT(SECOND FROM handletime) AS handletime_seconds,

EXTRACT(HOUR FROM holdtime) ** 3600 + EXTRACT(MINUTE FROM holdtime) ** 60 + EXTRACT(SECOND FROM holdtime) AS holdtime_seconds,

EXTRACT(HOUR FROM ivrtime) ** 3600 + EXTRACT(MINUTE FROM ivrtime) ** 60 + EXTRACT(SECOND FROM ivrtime) AS ivrtime_seconds,

EXTRACT(HOUR FROM queuewaittime) * 3600 + EXTRACT(MINUTE FROM queue_wait_time) * 60 + EXTRACT(SECOND FROM queuewaittime) AS queuewaittime_seconds,

EXTRACT(HOUR FROM talktime) ** 3600 + EXTRACT(MINUTE FROM talktime) ** 60 + EXTRACT(SECOND FROM talktime) AS talktime_seconds,

EXTRACT(HOUR FROM timetoabandon) * 3600 + EXTRACT(MINUTE FROM time_to_abandon) * 60 + EXTRACT(SECOND FROM timetoabandon) AS timetoabandon_seconds

FROM tort-intake-professionals.five9source.five9bulkcalldata_tabularv2```

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:43:52

Whats the estimate for BQ?

James Turner (jturner@shield-legal.com)
2025-07-07 15:44:44

I ran it for a few minutes, it hit a slot time of 1hr 50min and I canceled

James Turner (jturner@shield-legal.com)
2025-07-07 15:46:02

I could partition, but I am not sure how to do it effectively

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:46:21

It has to scan the whole table for that query. postgres will return 500 rows in 0.7s. I suggest a view in postgres that you connect to BQ for further processing

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:47:03

Remember do most queries in Postgres then link the outputs to BQ if needed (views...)

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:48:16

It only takes postgres 3.5s to run the query. the rest of the time is downloading on our slow network

James Turner (jturner@shield-legal.com)
2025-07-07 15:48:35

That makes sense- I need to figure out how to set it up on Postgres and connect it as a view but that makes sense to me

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:48:55

I can show you. it only takes a few minutes

James Turner (jturner@shield-legal.com)
2025-07-07 15:48:59

I know Postgres is faster, but /why/ is it that much faster?

James Turner (jturner@shield-legal.com)
2025-07-07 15:49:13

I appreciate

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:49:59

now?

James Turner (jturner@shield-legal.com)
2025-07-07 15:50:35

If you have time?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 15:51:07

I need 4 minutes to finish this email, then I can help

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-07-07 15:51:14

Appreciate you

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 16:06:16
  -- Convert timestamps from PST to UTC
  timezone('UTC', (timestamp AT TIME ZONE 'America/Los_Angeles')) AS timestamp,
  timezone('UTC', (contact_create_timestamp AT TIME ZONE 'America/Los_Angeles')) AS contact_create_timestamp,

  -- Raw fields
  abandoned,
  ani,
  call_type,
  campaign,
  customer_name,
  disposition,
  dnis,
  list_name,
  session_id,
  skill,
  after_call_work_time,
  call_time,
  handle_time,
  hold_time,
  ivr_time,
  queue_wait_time,
  talk_time,
  time_to_abandon,
  transfers,
  agent_name,
  email,
  first_name,
  last_name,
  lead_id,

  -- Duration fields converted to seconds
  EXTRACT(EPOCH FROM after_call_work_time) AS after_call_work_time_seconds,

  EXTRACT(EPOCH FROM call_time) AS call_time_seconds,

  EXTRACT(EPOCH FROM handle_time) AS handle_time_seconds,

  EXTRACT(EPOCH FROM hold_time) AS hold_time_seconds,

  EXTRACT(EPOCH FROM ivr_time) AS ivr_time_seconds,

  EXTRACT(EPOCH FROM queue_wait_time) AS queue_wait_time_seconds,

  EXTRACT(EPOCH FROM talk_time) AS talk_time_seconds,

  EXTRACT(EPOCH FROM time_to_abandon) AS time_to_abandon_seconds

FROM five9_bulk_call_data_tabularv2
James Turner (jturner@shield-legal.com)
2025-07-07 16:22:08

35.236.22.77 35.236.51.71 35.235.83.177

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-07 16:25:58

oi_g8Jr~;PvqZoe6

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-09 13:53:24

Do you do any of the financials for secondaries or is only @deleted-U05EFH3S2TA?

James Turner (jturner@shield-legal.com)
2025-07-09 13:54:14

What do you mean? Like What status's are considered billable?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-09 13:55:25

yes

James Turner (jturner@shield-legal.com)
2025-07-09 13:59:37

SELECT ** FROM `tort-intake-professionals.tip_prod_application.io_tip_lr_status_rates` LIMIT 1000

James Turner (jturner@shield-legal.com)
2025-07-09 14:00:41
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-09 14:01:57

The I have a message chain for you to read while your over here for the next meeting

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:22:54

~40 minutes for DB dump to finish backfill from last night

James Turner (jturner@shield-legal.com)
2025-07-11 12:29:20

Cool thank you

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:29:36

Now its running in to the memory limit

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:29:43

there must be a memory leak somewhere

James Turner (jturner@shield-legal.com)
2025-07-11 12:37:54

Memory leak?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:38:14

its now maxing 2 GB of RAM where as before it was sitting at 600 MB

James Turner (jturner@shield-legal.com)
2025-07-11 12:40:20

Still think we can get it fixed in a couple of hours?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:40:37

Im trying but also my laptop is not letting me debug it...

James Turner (jturner@shield-legal.com)
2025-07-11 12:50:07

How so?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 12:52:07

errors that I have fixed. Now I am debugging the memory leak. I think I know about where in the code is the issue is. The bug that LR fixed is that the drop down items are now be supplied from the LR endpoint

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-11 14:26:30

completed @ 12:16

James Turner (jturner@shield-legal.com)
2025-07-11 15:16:44

Good stuff- keep me updated on if anything breaks

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-14 13:10:43

Who should handle this request from the meeting last week?

Carter Matzinger (https://themedialaboratory.slack.com/team/U09518Z90MB)
James Turner (jturner@shield-legal.com)
2025-07-14 13:33:39

Since it's a verification process for integrations, It would make sense for integrations to own it, but I would be happy to contribute my system checks for billable leads so you guys can see how many leads we have, and measure that leadid list against what got sent to firms

James Turner (jturner@shield-legal.com)
2025-07-14 13:35:14

The two tables it would make sense for yall to use are likely these ones:

If you are just checking retainers it would be the first one here, if you are checking secondarys it would be the second

👍 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-07-15 11:48:02

Is the contactid key from contact_address table, the same key as 'id' from the contact table?

James Turner (jturner@shield-legal.com)
2025-07-15 11:48:12

Is the contactid key from contact_address table, the same key as 'id' from the contact table?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-15 11:48:15

yes

James Turner (jturner@shield-legal.com)
2025-07-15 11:48:18

cool ty

James Turner (jturner@shield-legal.com)
2025-07-15 11:51:50

Btw if you need an easy summary table of all the LR data

James Turner (jturner@shield-legal.com)
2025-07-15 11:51:56

tort-intake-professionals.tipopsdashboards.AllLawRulerLeadsWithEnrichment

James Turner (jturner@shield-legal.com)
2025-07-15 11:52:18

or I can give you the sql so you can host in postgres if u want

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 11:43:12

Can you help with the following query? The numbers seem off

    leads as (
        select l.id, casetypeid, ct.name from lead l
        INNER JOIN case_type ct ON l.casetypeid = ct.id
        WHERE
            (ct.name LIKE '%DL%' OR ct.name ILIKE '%DiCello%')
            AND l.id IN (
                SELECT DISTINCT leadid
                FROM lead_history_status
                WHERE tostatus = 'Signed e-Sign FINAL'
            )
    ),
    sent as (
        SELECT COUNT(DISTINCT lh.leadid) as count, l.casetypeid
        FROM lead_history lh
        inner join leads l on l.id=lh.leadid
        WHERE lh.username ILIKE '%@dicellolevitt.com%'
        group by lh.leadid, l.casetypeid
    )
select count(leads.id), name as case_type_name, leads.casetypeid as case_type_id, sum(sent.count) as sent_leads from leads left join sent on leads.casetypeid=sent.casetypeid group by leads.casetypeid, leads.name
James Turner (jturner@shield-legal.com)
2025-07-17 11:52:15

Currently working through my own weird broken query but sure I'll take a look lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 11:52:47

warning not bq. straight in postgres

James Turner (jturner@shield-legal.com)
2025-07-17 11:53:18

What are you trying to find with it, and what makes you believe that it is off about it?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 11:54:38

I am trying to find the count of all leads that should have been sent to DL and the count of the ones that have been sent via email (to get the count of not sent). I will need to also add count of ones sent via integration but that is extra

James Turner (jturner@shield-legal.com)
2025-07-17 11:59:02

I wouldn't ever go off the case type name, too risky of things being set up wrong or typoed.. You might also be picking up campaigns with DL belonging to another campaign.

I recommend using the PCTID table but If you are gonna do it without it, normalize it first by forcing lower case before checking like

Also if for any reason a status is copied, and made as 'Signed e-Sign FINAL' out of the gate (Should not happen but it does) you're going to miss it with the current query because that change does not exist in history

James Turner (jturner@shield-legal.com)
2025-07-17 12:00:05

For something as delicate as DL cases, I also wouldn't rely on count- I would get two complete lists of the leadids, and use a comparison script to spit out any leadids that are in one list but not the other.

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 12:02:39

Then you do it. They asked for count, that is what I was trying to do. I am SWAMPED

James Turner (jturner@shield-legal.com)
2025-07-17 12:04:38

I get the frustration, you have a wild amount of things coming down on you all at once.

I need to step away from my current project anyway- I'll take a crack at this and see what I can find

James Turner (jturner@shield-legal.com)
2025-07-17 12:07:00

Are you looking for JUST DiCello as the primary firm, or if they are associated with the case at all?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 12:08:06

cases that need to get to DL

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 12:08:19

I assumed all

James Turner (jturner@shield-legal.com)
2025-07-17 12:08:50

I'll set it up as all for now- if something changes it should be an easy fix

James Turner (jturner@shield-legal.com)
2025-07-17 12:57:36

```-- Comparison Script for Finding Emailed leads vs All leads that DL is part of the case

WITH signedesignfinalleads AS ( SELECT DISTINCT statushistory.leadid FROM tort-intake-professionals.lr_data.lead_history_status statushistory LEFT JOIN tort-intake-professionals.lr_data.lead lead ON statushistory.leadid = lead.id WHERE LOWER(TRIM(statushistory.tostatus)) = 'signed e-sign final' OR lead.statusid = 1075 -- signed e-sign final OR lead.statusid = 3063 -- RE triggered ), lawrulerdicelloleads AS ( SELECT enriched.lawrulerleadid, enriched.lawrulercasetypename, enriched.lawrulercasetypeid, enriched.allfirmsarray FROM tort-intake-professionals.tip_ops_dashboards.All_LawRuler_Leads_With_Enrichment enriched JOIN signedesignfinalleads statuscheck ON enriched.lawrulerleadid = statuscheck.leadid WHERE EXISTS ( SELECT 1 FROM UNNEST(enriched.allfirms_array) AS firm WHERE LOWER(TRIM(firm)) LIKE '%dicello levitt%' ) ),

emaileddicelloleads AS ( SELECT leadhistory.leadid, lead.casetypeid FROM tort-intake-professionals.lr_data.lead_history leadhistory INNER JOIN tort-intake-professionals.lr_data.lead lead ON lead.id = leadhistory.leadid WHERE LOWER(leadhistory.username) LIKE '%@dicellolevitt.com%' ),

comparison AS ( SELECT dicelloleads.lawrulerleadid, emailedleads.leadid, dicelloleads.lawrulercasetypename, dicelloleads.lawrulercasetypeid, CASE WHEN dicelloleads.lawrulerleadid IS NOT NULL AND emailedleads.leadid IS NOT NULL THEN 'Match' WHEN dicelloleads.lawrulerleadid IS NOT NULL AND emailedleads.leadid IS NULL THEN 'Missing in Emailed Leads' WHEN dicelloleads.lawrulerleadid IS NULL AND emailedleads.leadid IS NOT NULL THEN 'Missing in LawRuler Leads' END AS comparisonresult FROM lawrulerdicelloleads dicelloleads FULL OUTER JOIN emaileddicelloleads emailedleads ON dicelloleads.lawrulerleadid = emailedleads.leadid )

SELECT ** FROM comparison WHERE comparisonresult != "Match" ORDER BY comparisonresult;```

James Turner (jturner@shield-legal.com)
2025-07-17 12:57:47
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:17:01
James Turner (jturner@shield-legal.com)
2025-07-17 14:18:22

That's why I included it, just in case.. looks like something odd though where the lead id is being repeated on the email side

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:19:24

Hospital Portal Privacy - Dicello - Shield Legal

James Turner (jturner@shield-legal.com)
2025-07-17 14:20:22

I took the logic for the email ones from what you had but looking at what I wrote, it looks like those leads may have had 3 separate history logs with the email

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:20:35

emailed_dicello_leads AS ( SELECT distinct lead_history.leadid, lead.casetypeid FROM `tort-intake-professionals.lr_data.lead_history` lead_history INNER JOIN `tort-intake-professionals.lr_data.lead` lead ON lead.id = lead_history.leadid WHERE LOWER(lead_history.username) LIKE '%@dicellolevitt.com%' ), Adding the distinct should fix the duplicates...

James Turner (jturner@shield-legal.com)
2025-07-17 14:21:28

I would want to inspect the leads to see why it appears multiple times, but yeah distinct will cut it down.

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:21:29

or a groupby

James Turner (jturner@shield-legal.com)
2025-07-17 14:21:56

And see if those leads are in Lawruler still to see what happened and why they aren't populating in my dataset

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:22:21

They are in LR and the DB

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 14:22:35

maybe the case type is not marked as DL in PCTID?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 15:19:47

Case types missing DL in PCTID: Paraquat - DL - ML - Shield Legal CA Juv Hall Abuse - ACTS - DL Flatirons - Shield Legal

How soon can you update that?

👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 19:54:37

With a few tweaks we should be able to use for the report Carter was asking about... WITH signed_esign_final_leads AS ( SELECT DISTINCT status_history.leadid, lead.casetypeid FROM `tort-intake-professionals.lr_data.lead` lead LEFT JOIN `tort-intake-professionals.lr_data.lead_history_status` status_history ON status_history.leadid = lead.id WHERE ( LOWER(TRIM(status_history.tostatus)) = 'signed e-sign final' OR lead.statusid = 1075 -- signed e-sign final OR lead.statusid = 3063 -- RE triggered ) AND lead.id NOT IN (657524, 393041, 582410, 511461, 581845, 692908, 711950, 581002, 657500, 623587, 395951, 651893, 556126, 679106, 647070, 712339, 562398, 643270, 580995, 610079, 381596) -- test leads ), lawruler_dicello_leads AS ( SELECT enriched.lawruler_lead_id, enriched.lawruler_case_type_name, enriched.lawruler_casetype_id, enriched.all_firms_array FROM `tort-intake-professionals.tip_ops_dashboards.All_LawRuler_Leads_With_Enrichment` enriched INNER JOIN signed_esign_final_leads status_check ON enriched.lawruler_lead_id = status_check.leadid WHERE EXISTS ( SELECT 1 FROM UNNEST(enriched.all_firms_array) AS firm WHERE LOWER(TRIM(firm)) LIKE '%icello levit%' OR LOWER(TRIM(firm)) LIKE '%latiron%' ) ), emailed_dicello_leads AS ( SELECT DISTINCT lead.leadid AS leadid, lead.casetypeid FROM signed_esign_final_leads lead INNER JOIN `tort-intake-professionals.lr_data.lead_history` lead_history ON lead.leadid = lead_history.leadid WHERE LOWER(lead_history.username) LIKE '%@dicellolevitt.co%' AND lead.casetypeid NOT IN (1703, 515, 351, 562, 309, 523) -- moved leads ), comparison AS ( SELECT COALESCE(dicello_leads.lawruler_lead_id, emailed_leads.leadid) AS leadid, dicello_leads.lawruler_case_type_name, dicello_leads.lawruler_casetype_id, CASE WHEN dicello_leads.lawruler_lead_id IS NOT NULL AND emailed_leads.leadid IS NOT NULL THEN 'Match' WHEN dicello_leads.lawruler_lead_id IS NOT NULL AND emailed_leads.leadid IS NULL THEN 'Missing in Emailed Leads' WHEN dicello_leads.lawruler_lead_id IS NULL AND emailed_leads.leadid IS NOT NULL THEN 'Missing in LawRuler Leads' END AS comparison_result FROM lawruler_dicello_leads dicello_leads FULL JOIN emailed_dicello_leads emailed_leads ON dicello_leads.lawruler_lead_id = emailed_leads.leadid ) SELECT ** FROM comparison ORDER BY comparison_result;

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-17 21:13:39

https://www.kdnuggets.com/10-surprising-things-you-can-do-with-pythons-collections-module

KDnuggets
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-20 15:14:01

Below is the list that showed in the query we made the other day as DL. Please verify the firms are correct in PCTID.

MD Juv Hall Abuse - BG - Issacs and Issacs - Shield Legal Camp Lejeune EO - Bailey Glasser - FLG - Shield Legal Firefighting Foam - BG - Bowersox - Shield Legal MD Juv Hall Abuse - BG - Bowersox - Shield Legal Illinois Juv Hall Abuse - BG - Bowersox - Shield Legal Michigan Juv Hall Abuse - BG - Bowersox - Shield Legal Camp Lejeune - Bailey Glasser - FLG - Shield Legal Michigan Juv Hall - BG - Isaacs - Shield Legal Illinois Juv Hall - BG - Isaacs - Shield Legal MD Juv Hall - BG - FLG - Shield Legal PA Juv Hall - BG - Bowersox - Shield Legal

James Turner (jturner@shield-legal.com)
2025-07-21 11:10:04

Sure thing! On it now~

James Turner (jturner@shield-legal.com)
2025-07-21 11:12:00

Just checked the first one- weirdly enough DL is showing up as a partner firm.. I wonder if these campaigns changed name at some point??

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-21 11:12:34

Maybe ask @Malissa or @deleted-U055HQT39PC?

James Turner (jturner@shield-legal.com)
2025-07-21 11:13:25

These are also campaign IDs like 400s-early 500s

James Turner (jturner@shield-legal.com)
2025-07-21 11:14:11

So it's possible something went weird

James Turner (jturner@shield-legal.com)
2025-07-21 11:14:17

but I'm fixing them all now

James Turner (jturner@shield-legal.com)
2025-07-21 11:18:21

Cleaned all of the cases, give it a lil time and it will clear DL off of the "All_Firms" field

James Turner (jturner@shield-legal.com)
2025-07-21 11:21:57

Just force updated it

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-23 00:22:53

Do you have a flow chart that shows how integrations works from a technical side? If not do you have any questions / opinions about the below steps that can help me make a useful diagram? Status change in lr (lead finalizes) Lr generates questionnaire doc Lr sends email with questionnaire and retainer Gcp code checks inbox every 20 minutes Gcp code grabs oldest 100 unread emails For each email: Logs in db table Gets latest answers from lr Uploads email docs and answers to cloud storage Checks if case type automation is enabled for destination (firm crm) Sends lead to function for that firm: Translates the fields to the crm fields Sends to crm Logs response in db table

James Turner (jturner@shield-legal.com)
2025-07-23 11:44:44

Let me take a look- I know I built some when I was over there, not sure how much has changed

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-23 22:09:23

https://techxplore.com/news/2025-07-source-tool-complex.html

techxplore.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-25 03:23:41

https://www.bitecode.dev/p/what-parse-dont-validate-means-in

bitecode.dev
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-30 14:42:18

https://blog.jetbrains.com/pycharm/2025/07/faster-python-unlocking-the-python-global-interpreter-lock/

The JetBrains Blog
👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-07-31 17:12:41

ready for some postgres arrays?

James Turner (jturner@shield-legal.com)
2025-07-31 17:31:04

Finishing up something rn, but I'll be available after. I do have to get out at 4:25 though to get to the pharmacy before they close at 5

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-31 17:31:22

i have possible meeting at 4

James Turner (jturner@shield-legal.com)
2025-07-31 17:33:43

Did your 3pm one get pushed back?

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-31 17:33:56

no it only lasted 15 minutes

Dustin Surwill (dsurwill@shield-legal.com)
2025-07-31 22:26:58

https://www.infoq.com/news/2025/07/cloudflare-timescaledb-olap/

InfoQ
James Turner (jturner@shield-legal.com)
2025-08-01 14:36:57

wanna add me back to shield legal git? lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-01 14:40:12

He constantly makes new repos but doesn't manage the permissions. Me, Ryan and McFadden can see no matter what

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-01 15:31:00

access given

James Turner (jturner@shield-legal.com)
2025-08-01 15:56:13

Wouldn't you be able to see it anyway because of Admin access?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-01 15:56:35

yes: me, NM and RV

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-01 15:56:41

I gave you access

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-01 15:57:11

and told him to think about the audience when sending a message (attach instead of link if some people do not have github)

James Turner (jturner@shield-legal.com)
2025-08-06 13:38:52

Nothing confirmed, so keep it quiet but we are looking for new medical record solutions. We may need your team to build an Agent portal on the website to send a api post to a medical record company.

James Turner (jturner@shield-legal.com)
2025-08-06 13:39:02

As I said, nothing confirmed- it's still in proposal mode

James Turner (jturner@shield-legal.com)
2025-08-06 13:39:15

but I wanted to show you the Draw.io Chart I made

James Turner (jturner@shield-legal.com)
2025-08-06 13:39:46
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-06 16:13:58

Agents cannot log into the website currently. You need to have a valid tort or shield email to login. Do the supervisors have emails?

James Turner (jturner@shield-legal.com)
2025-08-06 17:03:39

Some do, but I'm not sure of the scope. I'll learn more and let you know, don't stress for now

👍 Dustin Surwill
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-07 00:31:33

https://www.kdnuggets.com/top-10-collections-of-cheat-sheets-on-github

KDnuggets
👍 James Turner
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-08 01:14:41

https://youtu.be/1AUaxhyFlII

YouTube
Level1Links With Friends (https://www.youtube.com/@Level1LinksWithFriends)
James Turner (jturner@shield-legal.com)
2025-08-08 11:09:20

Lol is this one of those youtubers you were telling me about?"

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-08 11:14:09

Maybe?

James Turner (jturner@shield-legal.com)
2025-08-08 12:00:38

"Bunch of lonely kids, being led into devil worship by chatgpt" LOL

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-10 22:30:04

https://www.xda-developers.com/why-switching-from-brave-huge-mistake/

XDA
James Turner (jturner@shield-legal.com)
2025-08-11 15:09:33

mmhh.. Good Chart

James Turner (jturner@shield-legal.com)
2025-08-11 15:10:50

I like Draw.io but certain parts of it are a big pain in the butt, like it's framing system is either super janky, or unintuitive enough it's a problem

James Turner (jturner@shield-legal.com)
2025-08-11 18:56:22

RING CENTRAL SELECT ** FROM EXTERNAL_QUERY("<a href="http://tort-intake-professionals.us">tort-intake-professionals.us</a>.tort-intake-professionals-lr-data", "SELECT ** FROM ring_central.call_log;"); Invalid table-valued function EXTERNAL_QUERY PostgreSQL type in column type is not supported in BigQuery. You can cast it to a supported type by PostgreSQL CAST() function. at [1:15]

James Turner (jturner@shield-legal.com)
2025-08-11 19:04:14

-- If legs is STRING, cast it; if it's JSON already, drop the CAST(...) SELECT JSON_VALUE(leg, '$.to.phoneNumber') AS to_phone, JSON_VALUE(leg, '$.from.name') AS from_name, JSON_VALUE(leg, '$.action') AS action, JSON_VALUE(leg, '$.result') AS result, SAFE_CAST(JSON_VALUE(leg, '$.durationMs') AS INT64) AS duration_ms, JSON_VALUE(leg, '$.direction') AS direction, JSON_VALUE(leg, '$.startTime') AS start_time FROM `your_dataset.your_table` t CROSS JOIN UNNEST(JSON_QUERY_ARRAY(CAST(t.legs AS JSON), '$')) AS leg;

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-12 11:23:19

*Thread Reply:* I did not try this

James Turner (jturner@shield-legal.com)
2025-08-11 19:05:11

not starttime or json values breaking it

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-11 19:34:27

bigquery doesnt like postgres enums

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-11 19:35:39

the link has been created: https://console.cloud.google.com/bigquery?project=tort-intake-professionals&inv=1&invt=Ab5PJA&ws=!1m5!1m4!4m3!1stort-intake-professionals!2sringcentral!3scalllog|https://console.cloud.google.com/bigquery?project=tort-intake-professionals&inv=1&invt=Ab[…]m3!1stort-intake-professionals!2sringcentral!3scalllog

accounts.google.com
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-11 19:35:57

apparently bigquery sees the postgres json as string

James Turner (jturner@shield-legal.com)
2025-08-12 11:04:21

So does the script cited above not work?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-12 11:23:20

I did not try this

James Turner (jturner@shield-legal.com)
2025-08-18 11:01:59

I am looking through the Lawruler Q&A and I am seeing a lot of answers that is just "1" Is 1 true and 0 or a non answer false??

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 11:08:53

?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 11:10:35
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 11:11:22
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 11:11:42

Those 2 examples are different leads but the same case type: Gaming Addiction - Meadow Law/Levinson/TC (TIP) - Shield Legal

James Turner (jturner@shield-legal.com)
2025-08-18 11:49:29
James Turner (jturner@shield-legal.com)
2025-08-18 11:51:08

It seems like sometimes it's Yes / No or 1

James Turner (jturner@shield-legal.com)
2025-08-18 11:57:42
James Turner (jturner@shield-legal.com)
2025-08-18 11:58:32

I imagine it's a simple 1 = Check Box checked

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 12:08:02

Those seem to be on the Form Fields tab which comes from the media source (Meta, TikTok, Web Form)

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-18 12:08:23

Maybe add filter to remove the form fields tab from your search?

James Turner (jturner@shield-legal.com)
2025-08-19 14:49:04

Hey there, on lr_data where would I look to find the id of the closing agent?

James Turner (jturner@shield-legal.com)
2025-08-19 19:00:23

Hey there, is lr_data broken for the user field?

I'm only getting like 783 leads with a valid intake_agent and most of them are really really old

James Turner (jturner@shield-legal.com)
2025-08-19 19:00:56
  l.id                      AS leadid,
  l.casetypeid       AS lr_id,
  TRIM(l.casedescription)   AS lp_lead_id,
  l.displayname             AS lr_lead_displayname,
  l.createdate,
  l.contactid,
  l.sourceid,
  u.name                    AS intake_agent
FROM postgres.public.lead AS l
LEFT JOIN postgres.public.user AS u          -- "user" is a reserved word in Postgres
  ON l.contactid = u.id

WHERE u.name IS NOT NUL
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-19 19:01:19

should l.userassigneeid not l.contactid on the join

James Turner (jturner@shield-legal.com)
2025-08-19 19:05:15

damnit- that was obvious, I should of seen'

James Turner (jturner@shield-legal.com)
2025-08-19 19:05:31

Brain tired typo lol

James Turner (jturner@shield-legal.com)
2025-08-20 14:12:24

In relation to the meeting we just got out of, what do you think of using VertexAi for it since it's scaleable?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 14:13:10

No idea

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 17:55:06

• LR Job Title field but not returned via API • Cannot find Groups or Roles in settings • What about Ad Campaign per lead?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 17:56:32

FYI - Found a whole tab dedicated to keeping track of order medical records...

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 17:56:47

and one for fee splits / co-counsels

James Turner (jturner@shield-legal.com)
2025-08-20 18:01:31

That's awesome, but I wonder why we haven't used it yet? What broken old system relies on that? lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-20 18:04:14

You can also add multiple contact cards to to a lead...

James Turner (jturner@shield-legal.com)
2025-08-21 12:52:44

Hey I still don't have access to the conference rooms- can you look and see if anything is available for 11??

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 13:49:08

Does BQ remove empty lines from the scheduled query details page?

James Turner (jturner@shield-legal.com)
2025-08-21 14:02:35

What do you mean? like if all values in a row are null?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 14:04:08

The query string in the image

James Turner (jturner@shield-legal.com)
2025-08-21 14:05:11

Oh! That's where it represents the string condensed. if you want to see the query as written do this... (video incoming)

James Turner (jturner@shield-legal.com)
2025-08-21 14:07:02
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 14:07:06

Also @Ryan is arguing with me about the source of table when I looked into it and he didnt... https://themedialaboratory.slack.com/archives/C02EGTD8LPP/p1755801094015249

Ryan Vaspra (https://themedialaboratory.slack.com/team/UJF2W0EB1)
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 14:08:00

Ah the Edit button. I am blind

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 14:13:59

Sounds like @Ryan will give you the task of updating the queries to use lr_data instead to make sure their up to date.

James Turner (jturner@shield-legal.com)
2025-08-21 15:02:46

Joy- I haven't been explicitly asked yet, but I'm working on like 3 other tasks for him rn

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-21 15:03:27

Maybe he meant the other James? It will probably come once this meeting ends

James Turner (jturner@shield-legal.com)
2025-08-22 11:21:48

Good morning! Could you please put me down for 11am for conference room 2?

sorry to treat you like a secretary lol

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 11:24:17

CR2 is already booked from 0900 to 1330

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 11:24:45

CR1 is available from 1130 to 1300

James Turner (jturner@shield-legal.com)
2025-08-22 11:25:57

I appreciate you looking -Who has it from 09 to 1330?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 11:29:29

• 0900 - 1000 | CSP Mtg • 1000 - 1100 | LDS AWKO CALL • 1030 - 1100 | S&R Huddle (@deleted-U04GZ79CPNG) • 1100 - 1130 | SL Data Sync (My team + @Carter Matzinger, @deleted-U06VDQGHZLL, @deleted-U06F9N9PB2A) • 1130 - 1300 | BCL - Ariana • 1300 - 1330 | Weekly ASA Check In (@deleted-U04GZ79CPNG, jscott@tortintakeprofessionals.com)

James Turner (jturner@shield-legal.com)
2025-08-22 11:33:19

Cool ty

James Turner (jturner@shield-legal.com)
2025-08-22 11:33:44

I'll just do it on a google meet

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 11:40:36

I have found that you need to reserve the room at least the day before if not earlier. when it comes to the day of, the people that get in early will reserve the rooms

James Turner (jturner@shield-legal.com)
2025-08-22 12:02:15

Makes sense

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 12:30:12

Do you think it would be useful to pull some of the monday boards into the DB (such as open/closed tracker)?

James Turner (jturner@shield-legal.com)
2025-08-22 13:53:45

If we can guarantee that those are consistently updated and correct then yeah for sure

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-22 18:04:58

your tip email should now be able to see the conference room calendar

James Turner (jturner@shield-legal.com)
2025-08-27 11:40:44

Is there a way to get PG Admin without Joe?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-27 11:41:41

why not just use pycharm? winget install postgresql.pgadmin

James Turner (jturner@shield-legal.com)
2025-08-27 11:44:49

I guess I could huh? I need to get access to Ryans 'public' dataset which I need to learn to set up

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-27 11:45:46

His AWS postgres?

James Turner (jturner@shield-legal.com)
2025-08-27 12:25:43

I think so? Not anything you need to do- i'm mostly just thinking "out loud"

James Turner (jturner@shield-legal.com)
2025-08-28 13:09:20

Do you think I should set up associated campaigns as an array, so as many as needed can be added, or set up "auxillary campaign 1", "Auxillary campaign 2", "Medical Records Campaign"?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-28 13:12:33

to be dynamic an array but we would have to tag the purpose of each (JSON dict instead?). But for ease of dashboards seperate columns. We talked about 4; SEC, Docs, Medical Records, SEC/Docs 2

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-28 13:12:58

unless you think the dynamicness can be handled...

James Turner (jturner@shield-legal.com)
2025-08-28 13:19:38

Researching and it looks like Looker Enteprise CAN handle json nests, but it just requires some extra code on the presentation layer..

I just don't know how I would set that up in an easy to use front end system like what we have now

James Turner (jturner@shield-legal.com)
2025-08-28 13:21:12

It's actually kind of weird. It can't handle array values right, but it has a JSON_EXTRACT_SCALAR() function that allows us to split it into new dimensions for presentation

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-28 13:24:51

And would Re-tool allow for manipulating it? Or are we going with the internal site where we can do anything?

James Turner (jturner@shield-legal.com)
2025-08-28 13:26:17

I would love to do it on the internal site, but because Chris isn't truly dedicated to the project, I don't want to rely on it if that makes sense

James Turner (jturner@shield-legal.com)
2025-08-28 13:26:30

and idk how long it would take for him to build it and have it be consistent/functional

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-28 13:27:39

So then can re-tool manipulate the JSON in the way we want? That would give us the answer between columns or dynamic

James Turner (jturner@shield-legal.com)
2025-08-28 13:42:43

It looks like it has a JSON option, for data types on a table, but idk how well it handles it or limitations for data entry using it. I need to build some kind of test for it

👌 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-08-28 14:35:19

Looks like you can edit it, but you edit it like it was a string, it doesn't break it out in a way that makes sense to non-engineers

James Turner (jturner@shield-legal.com)
2025-08-28 14:35:48

Looks like you can edit it, but you edit it like it was a string, it doesn't break it out in a way that makes sense to non-engineers

James Turner (jturner@shield-legal.com)
2025-08-29 11:53:50

Looks like Retool re-vamped how their database connections work.. I wonder if it will work now?

👀 Dustin Surwill
James Turner (jturner@shield-legal.com)
2025-08-29 11:54:59
James Turner (jturner@shield-legal.com)
2025-08-29 11:58:02
Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:13:09

I added the retool ips to the DB. Do you have a postgres account you can use for retool, or want me to make one?

James Turner (jturner@shield-legal.com)
2025-08-29 12:28:01

Make one please- I'm still very inexperienced with Postgres

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:34:47

retool oqMU/C(fI%7ro;hY

James Turner (jturner@shield-legal.com)
2025-08-29 12:35:59

Potentially dumb question but is that a 'user' login or a database user/pass?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:36:24

database user/pass

James Turner (jturner@shield-legal.com)
2025-08-29 12:37:03

what is the host and port?

James Turner (jturner@shield-legal.com)
2025-08-29 12:37:17

what is the host and port?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:37:29

34.125.228.252:5432

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:37:54

db name is postgres

James Turner (jturner@shield-legal.com)
2025-08-29 12:38:39

Not a immediate need, but is that something we plan on changing to be more clear down the line?

Like we might have an 'engineering_postgres"

James Turner (jturner@shield-legal.com)
2025-08-29 12:39:05

Not a immediate need, but is that something we plan on changing to be more clear down the line?

Like we might have an 'engineering_postgres"

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:39:38

is possible but would break everything and make things much harder. thats why we do the split at the schema level

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:40:06

cannot join between databases (in same postgres or different). can only join between schemas

👍 James Turner
James Turner (jturner@shield-legal.com)
2025-08-29 12:40:16

Kind of like if we changed the bigquery setup to have different projects, with multiple buckets instead of a single project?

James Turner (jturner@shield-legal.com)
2025-08-29 12:40:17

makes sense

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 12:40:27

yes

James Turner (jturner@shield-legal.com)
2025-08-29 12:41:09

in BQ you are able to join across multiple projects but it's additional steps- I do understand what you're saying though so ty! Let me test this out

James Turner (jturner@shield-legal.com)
2025-08-29 12:42:45

10:42:06 AM Test Connection Failed

  1. ▶️{query: "Select 1 as result", error: Object} a. query: "Select 1 as result"
  2. ▶️error: Object a. message: "pg_hba.conf rejects connection for host "35.90.103.134", user "retool", database "postgres", no encryption"
James Turner (jturner@shield-legal.com)
2025-08-29 13:11:26

30 second inspection on postgres, makes it look like internal_tools would be the right location to store PCT-ID

Does that sound right to you?

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 13:12:04

I think the public schema since its all LR data

James Turner (jturner@shield-legal.com)
2025-08-29 13:16:38

In a few years when we are departed from Lawruler, and the "lr" in lr_data becomes "Lead Repository" instead of "Law Ruler" I foresee situations where we may want to give read-only PCT-ID access without giving read access to all of our client data. Thoughts?

James Turner (jturner@shield-legal.com)
2025-08-29 13:16:58

(Came up with Lead Repository on the spot, but I think that's pretty clever)

James Turner (jturner@shield-legal.com)
2025-08-29 13:32:31

Nevermind- I see pctid_v2 already exists within the public set

James Turner (jturner@shield-legal.com)
2025-08-29 13:32:35

no worries

Dustin Surwill (dsurwill@shield-legal.com)
2025-08-29 15:52:48

You should be able to add / modify the columns for pctid_v2 in postgres

James Turner (jturner@shield-legal.com)
2025-08-29 16:06:44

Thank you

James Turner (jturner@shield-legal.com)
2025-08-29 17:50:19

tort-intake-professionals.tipprodapplication.iotiplrstatusrates