mapping of Chowchilla - ACTS - Levinson (TC) - Long Form Interview with both original and longform questions
when you get back can you re send the nec wagstaff tests?
done. Juel test for re triggering and jack tester for signed declined
Tywan Saunders-David 24-0329 Kyle Simmers 24-0236 Matthew Wiggins 24-0197
Please. I will check the logs when I get home in about 2 hours
Probably the zapier. Will let you know if it was the gcp imap
see you tomorrow. enjoy your evening
Only 1 triggered without docs: Our lead id: 570887 Their lead id: 73452
Really? Hmm I wonder if that’s in relation to that failed email from Juel test
wagstaff ids: 73464, 73463 will need to test once more after I fix a bug and eat lunch
Juel Test: 73466 Jack Benson Tester: 73465
You can now reply to Hillel. In addition to your reply ask him to check (Wagstaff) Lead ID 73540 for any issues, it should be a sign decline lead by the name of Stitch Test
did you do any paraquat wagstaff triggers today?
python .\tools\dumplrquestions.py 401
[ { "externalid": "73701" }, { "externalid": "73700" } ]
Which of these is correct for 431? https://github.com/shield-legal/gcp-integrations/pull/14 https://github.com/shield-legal/gcp-integrations/pull/13
Can you send an email to Hilil and Carter about the following leads that Carter could not see but we have record of: Name - Wagstaff Lead ID Michael Myers - 73701 Paul Anderson - 73078 Thomas Molino - 73700
can you send me carter's email please?
also what do you want this email to entail? confirmation that we have it with the lead ids or concern that they don't ?
I think carters email is: cm@gfoamllc.com We need to ask them if the can find those IDs and if they cant to let us know so we can resend
Hey Dustin I'm assuming you saw Hillel's email regarding Paul Anderson's missing custom fields
I saw it come in but have not been able to read through it
unless you mean created in law ruler?
07/25/2024 08:29:05 PM according to the activity log
but if you mean when did we re trigger?
if i remember correctly we might have done it twice due to some issues they were having previously
I am then assuming that was sent via MPA since I started 9/9. Go ahead and re-trigger, so it goes through GCP.
I will get the id for you to send, in a little while
Here is the Wagstaff ID for Anderson: 73748
Depo-Provera - Crump - Napoli - Shield Legal Updates: Secretary at Napoli has said he will try to get the API key, API URL, and Field Mapping by tomorrow morning.
to get address1 = Contact/Addresses/0/Address1
I am working through our mapping and it seems that I've hit a bit of a snag. Unfortunately our intake questions and your intake questions are pretty different. I have added below both files below. Anything that you see as "string", defaults, or any empty quotations on the main.py file is what we haven't been able to find and I don't think I've been able to find any matching questions from our intake file. How would you like to proceed? Perhaps there is a comment box we can dump all the information in?
Change: data["072.124.073 - Is this a dropped case?"] = "N" if intake["Lead Data"]["StatusId"] != 1074 else "Y" to data["072.124.073 - Is this a dropped case?"] = "No" if intake["Lead Data"]["StatusId"] != 1074 else "Yes"
check lr automatino for CA Juv Hall Abuse - Miller - Woods - Shield Legal. looks like it is not setup for signed & declined
you want me to added the status to a current webhook or just create a new one
add signed & declined to currect gcp webhook
Did you retrigger 550227 after adding the status to the webhook?
no , but i'll do it now
LA Foster main.py has 072.124.073 - Is this a dropped case? which needs to be 072.126.00 Is this a dropped case?
When you get back, send a test to Napoli. Get their ID then send them an email talking about the test we sent and that we cannot match their intake since ours was approved by them.
"Please pay attention to the required fields and schema of each Post. To send a Test Lead POST, use “Test” as the first or last name of the test. Not only will you receive confirmation (200 Response) from the API but you will receive email confirmation as well. Tests will be discarded and you will receive an additional email that the Test was discarded.
To test an entire sequence of events you need to use a “Mock” client. If you send a client with the name Test, the Lead will be discarded and the remaining posts will fail.
Use, “Mock” as the last name and let me know when you send it so that I can verify everything for you."
according to their information, what should i name the test lead? Test Mock, or Test Test
[Anything] Mock Anything cannot be test
I sent them an email saying we would send a test later today or tomorrow
What does the bottom of that log section show?
perhaps main.py wasn't updated on git ?
Let me know if its good to resend the test
I just wanted to give you a quick update. I have been running tests and debugging all of yesterday and today to attempt to send a test lead over. Here are some SysIDs that we have sent over GetStageBySysId however that endpoint seems to be missing on your webhook index. So the last one we sent over to the GetLeadBySysId endpoint
SYSID CD39FB92C90D91B7 SYSID CA2784BA55D89585 SYSID C6BD44EDFCB49FB7 SYSID CDBE116985F14DF7 SYSID CFCDDB89A33BCFED SYSID C44D6396DD04C828 SYSID C3F7693AB4294BBA SYSID C856515EEE04FD6E0 SYSID C728D1147243605B
They have all of their stages have been set to pending. Can we send docs and other information in the pending stage? Also, I would like to make note for future reference that all of the cases in your API docs are probably out of date. Just an example, it is saying an "s" in "sys" is lower case when it should be upper. Please let me know.
It looks alright. Also define a comments / notes box and bug Alfredo and Larry about your previous questions on Nov 12
ashleyf@yourcase.works mary.mick@yourcase.works
from urllib.parse import **quote**
name2 = quote(name)
Did you push the changes from earlier to GitHub?
though... i will say, i pushed them right as i got my internet fucked
Try again, last commit on GitHub was Friday
might be a syntax error when we did the copy
no error in main anymore (thank god), though case logs is spitting this out now , along with all the information
<Response [500]> There was an error and it was logged. Unable to determine database for endpoint. It is possible you are providing a SYSID that has not posted yet or was a Duplicate. Please check the Client Stage (/api/ClientStage/{leadSourceId}/{leadId}) before posting to SYSID endpoints.
Anthony just reachout to saying he is settings up questions and customs for napoli
but if they don't get approved they won't add them
Hey did anyone response to Napoli?
Good morning Chris,
Thank you for the response. There was a concern I raised last week because our questions and your questions did not match at all, I will attach our differing questions to this email. I have gotten confirmation of approval to add the below questions to our intake:
• Maiden/Other Name(s) Used: • Social Security No: • Date of Death: • Home Phone: • Work: • Significant Other, if applicable: Name: • Their phone: • Mailing address is not broken up by address, city, state, zip • If completing on behalf of injured party (signer info) entire section • Address, city, state, zip of emergency contact • If the injured party is deceased (entire section) • Reason injured person used Depo-Provera: • Name, address and phone number of the physicians who prescribed Depo-Provera to the injured person: • Name, address and phone number of the pharmacy/pharmacies where injured person purchased Depo-Provera: • Name, address and phone to the doctor(s)/hospital(s) that diagnosed the injuries above: • Phone number of treating physician(s)/facility(s) • Name, address and phone number to your primary care physician(s):
We are working on adding them and I will update you when that is complete. Also, it looks like in our most recent tests the SSN numbers have been pushing through correctly. Here are some more SYSIDs we've received through testing: CDAEE801FF73D4C4 CDA509D383523433 C971CA182BB69886 CED440C464B2AE83 C430691BC2B348F5
Thank you,
Daniel Schussler Shield-Legal Data Engineer
Double check with Anthony but I think these will only be added to new intakes. If that is the case then make it clear in the email. The rest of the email is good
Forgot to mention, in my latest test for napoli, im still getting this error "<Response [500]> There was an error and it was logged. Unable to determine database for endpoint. It is possible you are providing a SYSID that has not posted yet or was a Duplicate. Please check the Client Stage (/api/ClientStage/{leadSourceId}/{leadId}) before posting to SYSID endpoints."
/api/ClientInjuries/{sysid}
Client_injuries = {}
Client_injuries["sysid"] = sys_id
Client_injuries["hcpid"] = hcP_ID
Client_injuries["injury_ID"] = -1
inj_response = <a href="http://requests.post">requests.post</a>(url + f"/ClientInjuries/{sys_id}/{}/{hcP_ID}", headers = headers, json = [Client_injuries])
can't put -1 in the brackets can i?
then that endpoint only works when the lead stage is posted which may take up to an hour which our system will not support. Lets remove that endpoint and move the injurydate to the notes field with our full question
inj_response = <a href="http://requests.post">requests.post</a>(url + f"/v1/ClientInjuries/{sys_id}/{injury_ID}/0", headers = headers, params = {"injuryDate":intake["c-22988"]})
postgres.update_lead_intake_response(intake["Lead ID"], f"{sys_id_response1.__str__()} {sys_id_response1.text}\n {healthcare_response.__str__()} {healthcare_response.text}\n {healthcare_response2.__str__()} {healthcare_response2.text}\n {Residential_response.__str__()} {Residential_response.text}\n {inj_response.__str__()} {inj_response.text}")
So i can get rid of the whole thing, or just the inj_response
injury_ID = -1
match intake["c-23383"]:
case "Spinal Tumor":
injury_ID = 684
case "Meningioma":
injury_ID = 685
case "Brain Tumor":
injury_ID = 657
looks like this whole snippet at the end either needs to be removed or changed, that question doesn't exist anymore
according to Sunnie the new one, Custom23615, is a drop down
we can just check it against a string say
that question still applies for the leads before today
you are correct you can check the new question against a string
ah right crap we do need to keep it
which means i still need that questions in the main.py
maybe? you are using the intake variable which does not depend on the mapping
right but that snippet of code relies on the answer from the intake c-23383
<Response [201]> {"LeadID":"530321","CCODE":"DPA","Salutation":"","Lname":"Lead","Fname":"Lastname","MI":"m","Address1":"427 E 5th St","Address2":"","City":"Los Angeles","State":"CA","ZipCode":"90013","Country":null,"Province":"","HomePhone":null,"WorkPhone":null,"MobilePhone":"+12132857564","EmailAddress":"<a href="mailto:testtesting123@gmail.com">testtesting123@gmail.com</a>","SSN":"988_98_5414","DOB":"1990-01-16T00:00:00","Injury":"","AdditionalNotes":"{\n \"Is the injured party currently represented by an attorney for this matter? (MUST BE NO)\": \"No\",\n \"S1\": \"849849129\",\n \"Has the injured party spoken to another attorney about this matter?\": \"No\",\n \"ALT ID\": \"779841\",\n \"Has the injured party signed any documents with another law firm about this matter? (MUST BE NO)\": \"No\",\n \"Comments\": \"comments section\",\n \"What is the signer's name?\": \"Test Test\",\n \"What is the injured party's DOB?\": \"01-16-1990\",\n \"Best phone number to reach you?\": \"(213) 285-7564\",\n \"What is your mailing address?\": \"427 E 5th St, Los Angeles, CA 90013\",\n \"What is your email address?\": \"<a href="mailto:testtesting123@gmail.com">testtesting123@gmail.com</a>\",\n \"Do we have permission to communicate with you via email?\": \"Yes\",\n \"Do we have permission to communicate with you via SMS/text messages in order to collect additional information and provide you documents for your potential case?\": \"Yes\",\n \"Do you have an alternate contact number?\": \"(649) 798-4561\",\n \"Whose phone number is this?\": \"Friend\",\n \"What is the name of the friend or relative whose phone number you provided?\": \"someone else\",\n \"Do we have permission to contact this person if we are unable to get a hold of you?\": \"No\",\n \"Do we have permission to reference your case to this person? (We will not discuss your case with anyone without your permission)\": \"No\",\n \"Notes\": \"notes section\",\n \"Did you or loved one receive the Depo-Provera injection:\": \"yes\",\n \"Were you or a loved one diagnosed or developed a Brain, Spinal or Meningioma Tumor after use:\": \"yes\",\n \"Year of diagnosis:\": \"2014\",\n \"State where Depo Provera injection was given:\": \"NV\",\n \"How long was Depo-Provera used:\": \"3 years\",\n \"Do you already have a lawyer:\": \"no\",\n \"Your relation to the injured party:\": \"Claimant is injured party\",\n \"Full name of Claimant (injured Party):\": \"Test Test\",\n \"Did you or a loved one receive Depo-Provera injections? (MUST BE YES)\": \"Yes\",\n \"How many injections did you receive?\": \"5+\",\n \"Note: If the claimant has NOT been diagnosed with a Meningioma they MUST have been experiencing headaches AND vision problems and be willing to see their doctor to seek a Meningioma diagnosis. (MUST BE YES TO AT LEAST ONE OR BOTH QUESTIONS)\": \"\",\n \"Was the injured party diagnosed with Meningioma after receiving Depo-Provera injections for at least one year?\": \"Yes\",\n \"If no, will the injured party be willing to seek a diagnosis of Meningioma? (MUST BE YES)\": \"Yes\",\n \"If not diagnosed, did the injured party regularly experience migraines/headaches AND vision problems?\": \"Yes\",\n \"Are you experiencing any of the following symptoms?\": \"Migraines/Headaches and Vision Problems\",\n \"Please describe in detail the symptoms (this should be a narrative of the symptoms, ie how long did they have symptoms, frequency)\": \"PNC has been experiencing migraines/headaches since 2017. The migraines will come one to two times a week and sometimes they are so severe that PNC has to take the day off from work. During the migraines/headaches, the PNC's vision gets blurry and she begins to see stars and \\\"floating spots\\\".\",\n \"Date of last symptoms:\": \"10-20-2023\",\n \"Date of diagnosis:\": \"03-01-2022\",\n \"If diagnosed, has the injured party undergone surgery or radiation to treat Meningioma?\": \"Yes\",\n \"If yes, did you receive/schedule any of the following treatment after diagnosis?\": \"Surgery\",\n \"If Scheduled to have radiation, the date scheduled:\": \"\",\n \"If Scheduled to have surgery, the date scheduled:\": \"11-03-2015\",\n \"Prior to diagnosis did you experience any of the following symptoms?\": \"Migraines/Headaches and Vision Problems\",\n \"Please describe in detail the symptoms BEFORE diagnosis (this should be a narrative of the symptoms, ie how long did they have symptoms, frequency)\": \"PNC was experiencing severe headaches/migraines to the point she couldn't go to work or perform daily activities. PNC's vision has slowly deteriorated, she is now seeing spots and double vision. PNC does not drive at night due to her vision problems.\",\n \"Age at time of Diagnosis: (Must be 70 or UNDER with a diagnosis)\": \"32\",\n \"Treatments\": \"\",\n \"Treatment 1\": \"Surgery\",\n \"Treatment 1 Date:\": \"10-01-2022\",\n \"Treatment 2\": \"Radiation\",\n \"Treatment 2 Date:\": \"04-12-2018\",\n \"Treatment 3\": \"Radiation AND Surgery\",\n \"Treatment 3 Date:\": \"11-15-2021\",\n \"Additional Treatment:\": \"nope\",\n \"Current age: (Must be 70 or UNDER with a diagnosis)\": \"34\",\n \"Current age: (Must be 70 or UNDER)\": \"34\",\n \"Doctor and Health Insurance Information\": \"\",\n \"Shot 1:\": \"\",\n \"Shot 2:\": \"\",\n \"Shot 3:\": \"\",\n \"Shot 4:\": \"\",\n \"Health insurance carrier:\": \"Blue Cross Blue Shield\",\n \"Health insurance policy number:\": \"1245678910\",\n \"Did the injured party have Depo-Provera injections in 1992 or after? (MUST BE YES)\": \"Yes\",\n \"Date of injection 1:\": \"01-03-2016\",\n \"Date of injection 2:\": \"04-01-2016\",\n \"Date of injection 3:\": \"07-01-2016\",\n \"Date of injection 4:\": \"10-01-2016\",\n \"Date of injection 5:\": \"01-01-2017\",\n \"Date(s) of injection(s) 6+\": \"PNC has been receiving Depo shots every 3 months from 2016 to 2022.\",\n \"If not diagnosed with Meningioma, did the injured party receive Depo-Provera shots within the past 10 years? (MUST BE YES)\": \"Yes\",\n \"Did the injured party receive Depo-Provera injections regularly for at least one year as prescribed? (MUST BE YES)\": \"Yes\",\n \"Diagnosis Questions\": \"\",\n \"Maiden/Other Name(s) Used:\": \"\",\n \"Injured party's SSN:\": \"\",\n \"Home Phone:\": \"\",\n \"Work Phone:\": \"\",\n \"Significant Other, if applicable, Name:\": \"\",\n \"Significant Other, If applicable, their Phone:\": \"\",\n \"Mailing Address Line 1&2: (Ex. 123 Main St, Apt 1)\": \"\",\n \"City:\": \"\",\n \"State:\": \"\",\n \"Zip:\": \"\",\n \"Signer's Maiden/Other Name(s) Used:\": \"\",\n \"Signer Mailing Address Line 1 & 2: (123 Main St, Apt 1)\": \"\",\n \"Signer's City:\": \"\",\n \"Signer's State:\": \"\",\n \"Signer's Zip:\": \"\",\n \"Signer Mobile Phone:\": \"\",\n \"Signer Home Phone:\": \"\",\n \"Signer Work Phone:\": \"\",\n \"Signer DOB:\": \"\",\n \"Signer email address:\": \"\",\n \"Signer SSN:\": \"\",\n \"Emergency Contact Mailing Address Line 1 & 2: (123 Main St, Apt 1)\": \"\",\n \"Emergency Contact City:\": \"\",\n \"Emergency Contact State:\": \"\",\n \"Emergency Contact Zip:\": \"\",\n \"Emergency Contact Work Phone:\": \"\",\n \"Emergency Contact Home Phone:\": \"\",\n \"Emergency Contact Email Address:\": \"\",\n \"What was the cause of Death:\": \"\",\n \"Has an Estate been opened: (If yes, please attach copy of Court papers)\": \"\",\n \"Reason the injured party used Depo-Provera:\": \"\",\n \"Name, address and phone number of the physicians who prescribed Depo-Provera to the injured person:\": \"\",\n \"Name, address and phone number of the pharmacy/pharmacies where injured person purchased Depo-Provera:\": \"\",\n \"Name, address and phone to the doctor(s)/hospital(s) that diagnosed the injuries above:\": \"\",\n \"Phone number of treating physician(s)/facility(s):\": \"\",\n \"Name, address and phone number to your primary care physician(s):\": \"\",\n \"Which condition were you diagnosed with? (MUST BE MENINGIOMA BRAIN TUMOR)\": \"\",\n \"Was the injured party diagnosed with a Brain Meningioma? (MUST BE YES)\": \"\"\n}","Deceased":false,"DateOfDeath":null,"Trade":"","Industry":"","CampaignID":"Depo Provera - Ben Crump - Napoli - Shield Legal","LeadSourceID":296,"ID":187405,"DateEntered":"2024_11_20T14:00:21.8944003_05:00","Processed":false,"ProcessedDate":null,"ActionID":0,"SYSID":"CF0DEDC41F7ECC9D"}
<Response [201]> {"HCP_ID":118438,"FacilityName":"Kaiser Permanente West Los Angeles Medical Center","FName":null,"LName":null,"Address1":"6041 Cadillac Ave","Address2":null,"City":"Los Angeles","State":"CA","Zip":null,"PrimaryHCP":false,"InitialVisit":null,"LastVisit":null,"Notes":null,"SYSID":"CF0DEDC41F7ECC9D","ZipPlus4":null,"Phone":null,"FaxNumber":null,"NPI":null,"RoleDetail":null,"SpecialtyDetail":null}
<Response [201]> {"HCP_ID":118439,"FacilityName":"Planned Parenthood","FName":null,"LName":null,"Address1":"495 S Ramsey Ave","Address2":null,"City":"Los Angeles","State":"CA","Zip":null,"PrimaryHCP":false,"InitialVisit":null,"LastVisit":null,"Notes":null,"SYSID":"CF0DEDC41F7ECC9D","ZipPlus4":null,"Phone":null,"FaxNumber":null,"NPI":null,"RoleDetail":null,"SpecialtyDetail":null}
<Response [201]> {"AddressID":994308,"SYSID":"CF0DEDC41F7ECC9D","Address1":"427 E 5th St","Address2":"","City":"Los Angeles","State":"CA","Zip":"90013","ZipPlus4":"","StartDate":"","EndDate":"","InUtero":true,"WaterSupplyType":0,"PropertyType":0,"TypeDescription":null}
they have to approve that they are receiving everything first
Do you mind me giving the LegaFi integration to @Dwight Thomas ?
you should always include the name and client's id when asking them to review data
ok. I didn't in the original email because chris already had access to the tests and could see them.
But I will for future emails
your casetype will now run integrations
thanks im going to do another test
Leave the lead in API TEST for a few minutes. I do not think the automation can trigger in the 5 seconds you gave it
Such as leave it until you see the email
napoli did not reply all, they only replied to you
lastname and firstname were flipped on the napoli mapping. why is us highlighted?
We forgot the custom hostname they use: https://github.com/shield-legal/gcp-integrations/pull/57/files#r1854453589
Yeah i saw your email, fixing it now. thanks
I'll send a test again
404, Looks like caseworks has not updated their sa in a while. copy the code from the smartadvocate template to your main.py and change the following urls: f"https://{hostname}/SAService/sawebservice.svc/Receiver/officecalls/{key}" & f'https://{hostname}/saservice/SAWebservice.svc/Receiver/UploadDocument' to the urls in the casework's document
Also see if you can remove the definition.json & filename & getstate files from your MR
add import requests to the top of the file. let me check for other issues
I think that is the only thing that needs to be done at this time
import request or import requests
BQ says: <Response [200]> Empty Email/Phone will not generate case.
huh... i see that. what does that mean
I don't know if thats insinuating that the phone/email fields are empty
but they aren't and they are mapped
Looking through your mapping is see the following that need changes:
• L3: Firm ID should be FirmID
• L7: acquiringLawFirm needs to be deleted
• L8: source needs to be deleted
• L9: caseType needs to be deleted
• L10: firstName needs to be FirstName
• L 11: lastName needs to be LastName
• L13: address needs to be Address
• L17: email needs to be Email
• L18: dob needs to be DoB
• L20: Prefix needs to be deleted (not required)
• Add MiddleName
• Add Referral_LawFirm of The Nations Law Firm
• All Provider3 fields need to be deleted (not required)
• Before send_info in main.py (L142) we need to change the filenames according to page 6 of integration docs
• They give us example information to use for testing starting on page 7
I put them the other way because thats how smart advocate usually does it
but if that's whats messing it up, it makes sense
i am a bit confused by that page 6. They want us to change the name of the document we are sending to "format to upload" based on what type of document we are sending?
and how is the best way to create this? Have a list comprehension with the document types and then create a for loop to check against and change the file name based on the document?
set it after line 41 , in the def upload_doc
check the upload_doc function for an example:
subcategory = [cat for search, cat in SUBCATEGORY_MAP.items() if search in filename]
subcategory = subcategory[0] if subcategory else 'Other'
print(f'Uploading: "{filename}" as "{subcategory}"')
no i've seen this, we had to hard code it into the main.py remember? do we have recorded somewhere the type of document it is?
I can help after 2:45
it looks like everything got filled out correctly
L130 state needs to be State in main.py
Case Type Name: Gaming Addiction - Ben Crump Law - Meadow Law - Shield Legal Retrigger all esign finals. do not retrigger 630331
We need to reach out to napoli again. We still have no response to our latest test lead
From larry "Your test submission seems to be in order. Is there any way that you can send us the first 5 leads so that we can verify the live system?" Should I just retrigger 5 leads to them?
Please add a signed retainer to your test lead for napoli: 530321
Hey man, can you send me direct me to the full payload for the last test we sent to caseworks? Ashley is asking for it
Looks like we forgot to do data['Case Details'] = json.dumps(data['Case Details'], indent=4)
New retainer for napoli has been uploaded. Please us that one instead if possible
You mean for caseworks? I'll add it in
meant for napoli but yes, should always include a retainer in the tests
oh sorry, i didn't want to make a thread because its a terrible feature here
but I meant for this snippet of codedata['Case Details'] = json.dumps(data['Case Details'], indent=4)
ok. I'll add it in
yes before L194 but after L169
Deleting the fields did not work either. I will email ashley for next steps
hey man, you find anything yet in the code that i might able to change for testing FFF ?
Yes, got side tracked on my way to talk
send a test with those mapping updates
I did before I left for lunch. I’ll see the results when I get back.
I will look after I take care of another issue
wanted to double check with you. about to do a cure for wagstaff. I wanted to make sure that GCP didn't change any operations for cures and i can just do it same as before through postman
Just need to change status to re-triggered, then it will send via GCP
Im guess the GCP has changes for updated documents
AFFF Nations (Caseworks) [1810] has been pushed and is currently deploying. Send test after 12:01
Did you turn FFF nations off? email sent but test didn't trigger
went through again, but back to the original error
id 529616 530436 531108 532070 534324 535328 535510 537738 538197 538280 538762 556650 557385 557762 559894 560824 560871 561478 563439 563818 564665 564984 566251 567583 568824 570168 572370 583721 585873 586064 587106
Can you take this task? https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7994662260
Probably, if I can figure out how to do so. Is there specific case type or all of them?
Firefighting Foam - Crump - ELG - BLX / Firefighting Foam - Crump - ELG - Shield Legal where statuses are Signed eSign% and have not been sent (matched back to the sheet above) to BCL SA system.
from the file that you attached? so just to confirm, you want someone to go through all the plaintiffs from the spread sheet you attached and just report on which ones are still in in signed eSign?
This is a task from Ryan. We need a report of our leads that are in any status that starts with signed esign and are not in the attached file
OK i think i can do this by building a report. I'll start working on it and get back to you
Morning. Mind letting me know when you get get a chance to read Larry's follow up?
Larry says we are basically good to go. He did mention that they want the LeadSourceID needs to be 358. Right now its 296 but not hard coded. This is what the map looks like now.
"leadSourceID": "Lead Data/Source/Id"
though the main.py has the leadsource part of the response
lead_source_id = sys_id_response["LeadSourceID"]
go ahead and hard code it: "leadSourceID": 358.
Also i see somehow the @ was removed from the begininning of functions_framework.http which should be @functions_framework.http on L87
can you remove 1 last file from your PR napolidpaininjuries.json? Then it should be good to merge in
Hey man, yeah i just deleted them. if you want to confirm
> Great news. Once I get confirmation, I can turn it on. We got confirmation. I believe a better sentence would be something along the lines of > Thank your for the confirmation, we move this integration to production shortly.
haha I was literally about to change the status of the depo provera automation
Yeah I went on there and saw you changed it 2 before I did. Beat me
actually it still says API test, I'll get rid of that
Mind letting me know when I can do the LR dump please?
do the following command then you should be good to lr dump:
git rebase origin/main
Please set a few signed e-sign qa and signed e-sign final for depo napoli to signed e-sign re-triggered. 5 of each as a test
when your back from lunch please re-trigger the rest of signed e-sign qa and signed e-sign final for depo napoli then add those statuses to trigger the email automation
I will retrigger them they want to be automated for those status' too?
Hey umm we need to stop automations for depo for a second. the sign esigned finals were not suppose to be triggered
Here is the nations id I got: 30085460~SL~612031
Add a retainer to 612031 and git pull your branch
Here are the changes I made: https://github.com/shield-legal/gcp-integrations/pull/57/commits/a57696a71f63aee5cb7eed278f6d1236ded19eb2 I also made it up to date with origin/main to pull the USSTATESFLIPPED from gcp_utils
We need to make a change to the code for caseworker before we send anything
still nothing from the oxbryta test BTW
Hey heads up, a dude just came into the office and said that Joe said to turn off any processes. Something about law ruler
He called me. I have paused integrations and lr-data dump
Did you trigger 650389? The email processing broke on it
Here is the mapping:
{
"firstName": "tester",
"lawrulerid": "99999",
"lastName": "last tester 1",
"email": "<a href="mailto:test@test.com">test@test.com</a>",
"phone": "<tel:222-222-1122|222-222-1122>",
"websource": "Website",
"intakeStatus": "Working",
"caseType": "NEC"
}
Did you test https://github.com/shield-legal/gcp-integrations/pull/79? and is it ready to merge?
From McFadden: > Alan sent me this: > > PLEASE PLEASE PLEASE - Secondary Interviews must be in Secondary Interview -Retrigger and not Signed E-sign Retrigger. That is a status for Intake only. Examples... 546838 > 552128 > 545730 > 557680 > 555728 > 562000 > 562004 > 539501 > 559882 > 545141 > 539494 > 539508 > 539474 > 539468 > 539366 > 551087 > 545924 > 539459 > 544636 > 539444 > 546837 > 543176 > 539512 > 556287 > 556195 > 553630 > 540335 > 539320 > 539525 > 558734 > 539360 > 542776 > 560670 > 539477 > 539484 > 543868 > 543720 > 539370 > 563334 > 539460 > 544056 > 539450 > 543872 > 539524 > 557677 > 539325 > 556238 > 554201 > 539513 > 550153 > 559879 > 560460 > 542472 > 541957 > 541882 > 554202 > 562331 > 543177 > 539489 > 553059 > 546804 > 544634 > 539481 > 548411 > 547235 > > If we move them to that status make sure no automation pushes them again but we will need to have that established to trigger moving forward if not already
secondary re-triggered statussecondary re-triggered (must be after moving the leads to prevent dups with the firm). secondary complete to make sure the integration workssecondary complete to secondary re-triggered then add secondary complete to the automationChowchilla - Van - Long Form Interview
Check the automation for chowchilla - van - long form interview gcp webhook, there is more than just the lead id in the email body
once that is done you need to re-trigger 539320
looks like a bunch of the chowchillas got triggered. did you set the automation to trigger off the new status before setting the old status to the new status?
by new triggered do you mean the ones you just told us to do?
if so you also stated it must be AFTER moving the leads ?
did you set the automation to trigger on the secondary retriggered status before moving the lead ids from above to secondary retriggered? did you trigger more than 1 secondary complete to secondary retriggered?
And I did not trigger any secondary complete because I knew we were backlogged with integrations turned off
check the automation email body and wait
Run the following command in Terminal: winget install PostgreSQL.pgAdmin
Spam ESC when the Admin permissions popup appears
I sent you a new pull request before the end of friday. I think we spoke about that. If there is nothing that you deem needs to be changed or fixed. I can start testing
It looks like there is duplicate code sending attachments
ok I'll comment out the second piece for now
should comment out the first one. documents normally need to come after intake to be able to use the external id
to send a post request to the URL, and grab the matter ID for later
doesnt that already happen 50-55? also the post on line 73 uses the uploadurl vs intakeurl
ok i commented that part out as well
Please see for mapping: https://tortintakeprofessionals.monday.com/boards/4677317281/pulses/7262150284/posts/3730288710 Please see for NEC API page 2-end: https://docs.google.com/document/d/1lDwbM4GSoh7P3a9TnEc96fLY-zV59IhNb3fDvce446I/edit?tab=t.0#heading=h.dp91jt3h38o8
you are missing FileName and ParentId from the post and you have to use the url you get from the post to do a put to upload the attachment
Here is what Ryan asked Desiree and she responded with the fields I put in Monday
Ok you got the customs from her? I'll follow up with Desiree. Thanks
"Thanks for getting back to me. I reviewed your email with the team and Daniel does have a concern. It's looking like the token for the injury endpoint on your end is resetting too quickly. By the time our system is getting access, the token resets. We're exploring solutions on our end, but we did want to let you know that we're encountering that issue. We are working quickly to find a resolution."
Based on what I can recall from the depo-provera testing the injury endpoint gave errors based on the lead post status even when we gave it 10 minutes to reach the desired status before sending the injury
On my way to the office I’ll fix it when I get there
These are the changes I think should happen in the depo napoli branch
In this file, • white means the same • green means add • orange means remove ?
yes. green + orange right next to each means something changed in that line
Once I add them in I'll be able to understand them more clearly
if you are on the correct branch you can run git apply depo.patch to apply the changes
terminal at the root of the project with the depo.patch file in the root of the project as well
I'm assuming that the file name has to be in the command somewhere as well?
PS C:\Users\Daniel\git_code\gcp-integrations\intake_1855> git apply depo.patch
error: No valid patches in input (allow with "--allow-empty")
the file is located in intake_1855
> terminal at the root of the project with the depo.patch file in the root of the project as well
root of the project is gcp-integrations
i moved it to gcp-integrations , same issue
PS C:\Users\Daniel\git_code\gcp-integrations> git apply depo.patch error: No valid patches in input (allow with "--allow-empty")
Here are the 2 reports for AFFF Crump ELG. Please make a report that shows any leads that are in our system (Firefighting-Foam-Crump-ELG-Shield-Legal-All Fields All Time-2025-01-12.xlsx) but not in Crump's system (webDGCase (7).xlsx). Once the report is compiled and approved we will re-trigger them (to send).
Any not billable declined by firm for wagstaff will need a cure and to be put into signed & declined retriggered. Per Nick M, to prevent duplicate sends to wagstaff when they decline a lead.
Ok, do we know which those are specific?
no at the moment i think. but it will be the process moving forward
I pushed to GCP manually. not sure why github is not triggering but dont have time to find out today
[
[
"530321-Lead middlename Mock-IntakeForm.pdf",
"<Response [201]>",
"{\"UploadId\":96665,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":64,\"Description\":\"530321-Lead middlename Mock-IntakeForm.pdf\",\"UploadDate\":\"2025_01_15T18:30:22.1609817_05:00\",\"ExecutionDate\":null,\"FileName\":\"530321-Lead middlename Mock-IntakeForm\",\"FileType\":\".pdf\"}"
],
[
"Affidavit.pdf",
"<Response [201]>",
"{\"UploadId\":96666,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":50,\"Description\":\"Affidavit.pdf\",\"UploadDate\":\"2025_01_15T18:30:22.3883007_05:00\",\"ExecutionDate\":null,\"FileName\":\"Affidavit\",\"FileType\":\".pdf\"}"
],
[
"HIPAA.pdf",
"<Response [201]>",
"{\"UploadId\":96667,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":50,\"Description\":\"HIPAA.pdf\",\"UploadDate\":\"2025_01_15T18:30:22.5447029_05:00\",\"ExecutionDate\":null,\"FileName\":\"HIPAA\",\"FileType\":\".pdf\"}"
],
[
"HITECH.pdf",
"<Response [201]>",
"{\"UploadId\":96668,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":50,\"Description\":\"HITECH.pdf\",\"UploadDate\":\"2025_01_15T18:30:22.626748_05:00\",\"ExecutionDate\":null,\"FileName\":\"HITECH\",\"FileType\":\".pdf\"}"
],
[
"530321-Lead middlename Mock-IntakeForm.pdf",
"<Response [201]>",
"{\"UploadId\":96663,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":64,\"Description\":\"530321-Lead middlename Mock-IntakeForm.pdf\",\"UploadDate\":\"2025_01_15T17:30:29.5167713_05:00\",\"ExecutionDate\":null,\"FileName\":\"530321-Lead middlename Mock-IntakeForm\",\"FileType\":\".pdf\"}"
],
[
"Lead-530321-SignedContract.pdf",
"<Response [201]>",
"{\"UploadId\":96664,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":50,\"Description\":\"Lead-530321-SignedContract.pdf\",\"UploadDate\":\"2025_01_15T17:30:29.8195605_05:00\",\"ExecutionDate\":\"2025_01_15T17:30:29.566686_05:00\",\"FileName\":\"Lead_530321_SignedContract\",\"FileType\":\".pdf\"}"
],
[
"530321-Lead middlename Mock-IntakeForm.pdf",
"<Response [201]>",
"{\"UploadId\":95715,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":64,\"Description\":\"530321-Lead middlename Mock-IntakeForm.pdf\",\"UploadDate\":\"2024_12_19T18:32:45.8070903_05:00\",\"ExecutionDate\":null,\"FileName\":\"530321-Lead middlename Mock-IntakeForm\",\"FileType\":\".pdf\"}"
],
[
"Lead-530321-SignedContract.pdf",
"<Response [201]>",
"{\"UploadId\":95716,\"SysID\":\"CCA6B77CFE80F581\",\"LockCode\":1,\"LockID\":0,\"TypeCode\":50,\"Description\":\"Lead-530321-SignedContract.pdf\",\"UploadDate\":\"2024_12_19T18:32:46.665443_05:00\",\"ExecutionDate\":\"2024_12_19T18:32:45.940998_05:00\",\"FileName\":\"Lead_530321_SignedContract\",\"FileType\":\".pdf\"}"
]
]
Nov 19 2024: Daniel Schussler [1:58 PM] Forgot to mention, in my latest test for napoli, im still getting this error "<Response [500]> There was an error and it was logged. Unable to determine database for endpoint. It is possible you are providing a SYSID that has not posted yet or was a Duplicate. Please check the Client Stage (/api/ClientStage/{leadSourceId}/{leadId}) before posting to SYSID endpoints."
Dustin Surwill [2:00 PM] try this endpoint instead: image.png
Daniel Schussler [2:08 PM] got it
Daniel Schussler [2:24 PM] which end point am i replacing?
Dustin Surwill [2:24 PM]
/api/ClientInjuries/{sysid}
Daniel Schussler [2:31 PM]
Client_injuries = {}
Client_injuries["sysid"] = sys_id
Client_injuries["hcpid"] = hcP_ID
Client_injuries["injury_ID"] = -1
[2:31 PM] Daniel Schussler
inj_response = <a href="http://requests.post">requests.post</a>(url + f"/ClientInjuries/{sys_id}/{}/{hcP_ID}", headers = headers, json = [Client_injuries])
[2:31 PM] Daniel Schussler
can't put -1 in the brackets can i?
Daniel Schussler [3:15 PM] still the same error
Dustin Surwill [3:19 PM]
then that endpoint only works when the lead stage is posted which may take up to an hour which our system will not support. Lets remove that endpoint and move the injurydate to the notes field with our full question (edited)
Daniel Schussler [3:20 PM] ok [3:22 PM] Daniel Schussler
inj_response = <a href="http://requests.post">requests.post</a>(url + f"/v1/ClientInjuries/{sys_id}/{injury_ID}/0", headers = headers, params = {"injuryDate":intake["c-22988"]})
postgres.update_lead_intake_response(intake["Lead ID"], f"{sys_id_response1.__str__()} {sys_id_response1.text}\n {healthcare_response.__str__()} {healthcare_response.text}\n {healthcare_response2.__str__()} {healthcare_response2.text}\n {Residential_response.__str__()} {Residential_response.text}\n {inj_response.__str__()} {inj_response.text}")
[3:23 PM] Daniel Schussler
So i can get rid of the whole thing, or just the inj_response
591397 Lane, Jeffery 652377 Griffin, Jacky
Can you review https://github.com/shield-legal/gcp-integrations/pull/93 and if you approve squash and merge please
Desiree just confirmed with me that birth injury will not need an integration
select ** from lr_data.lead_history where leadid in (select id from lr_data.lead where casetypeid=1855 and statusid=1073) and comment like '%Signed e-Sign QA' order by date
File Upload Endpoint: Shield Legal Files
Endpoint URL (multipart/form-data): https://dmamt.leaddocket.com/opportunities/uploadfiles?opportunityId=YOUR_OPPORTUNITY_ID&CreatedBy=Opportunity%20API
Rules: Endpoint is available for 10 minutes after an opportunity is created. If the Opportunity was auto converted to a lead, the uploaded files will attach to the lead.
Parameters: • OpportunityId ◦ The returned opportunityId returned from a successful opportunity creation ◦ Data Type: numeric • CreatedBy ◦ Name of the file uploader (optional) ◦ Data Type: text • Files ◦ List of files to upload ◦ Data Type: File
```def sendnapolidocs(session: Session, attachments: Iterable[tuple[str, bytes]], sysid: str, url: str) -> list[list[str]]: newattachments = [] for name, content in attachments: if name.endswith(".pdf") and "SignedContract" in name: splitresult = splitpdfifneeded(content) if splitresult: # Ensure it's not None or empty newattachments.extend(splitresult) else: print(f"Warning: splitpdfifneeded returned None or empty for '{name}'") else: new_attachments.append((name, content))
document_response = []
for name, content in new_attachments:
if name.endswith(".csv"):
continue
subcategory = [cat for search, cat in SUBCATEGORY_MAP.items() if search in name]
subcategory = subcategory[0] if subcategory else 50
document_body = {
'SysID': sys_id,
'TypeCode': subcategory,
'Description': name
}
if "signed" in name.lower():
document_body["ExecutionDate"] = datetime.now(UTC).isoformat()
try:
doc_response = <a href="http://session.post">session.post</a>(
f"{url}/FileUpload",
data=document_body,
files={"File": (name, content)}
)
document_response.append([name, str(doc_response), doc_response.text])
except Exception as e:
print(f"Error uploading file '{name}': {e}")
return document_response```
Double check the LR automation for chowchilla miller flanagan and set it to trigger on final. send anything that is already in final (re-trigger)
its not set to re-trigger yet, im assuming set it to trigger on re-trigger as well
Desiree confirmed with me Birth injury can be removed
Does that mean this task can be closed? https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7789752673
Hey Dustin, Darrell is in. He is asking about that error for NEC baby formula that we got when we initially started testing. I went into GCP and the error logs and could not find it. there are no errors there. Is there any where else it could be ?
You dont have any integrations in progress. What are you working on?
outside of NEC baby formula, which Darrell and I suppose to work on at some point this week, I've been creating test leads for Dwight. There was also mention of a salesforce project nick wanted me to work on with Darrell but that might be in regards to the campaign as well. I asked you about those matchings for the flatirons stuff, so I'm available for that if you need assistance. Did some stuff for VSS and their reporting and also waiting for the ACTS campaigns to be available so i can help Dwight Complete those quickly. Outside of that I have open availability for assistance.
we might get those api docs for the AFFF campaigns sitting in on deck tomorrow. I will gladly create those integrations if so.
What about the Crumps on deck? You are assigned to 1
Please create a custom report layout with all the fields from the campaigns with "DL Check" == "DL" and "Intake" == "Y"
Please review: https://github.com/shield-legal/gcp-integrations/pull/117
https://console.cloud.google.com/cloudscheduler?project=integrations-tip
<Response [400]> {"error":"invalid_client","error_description":"invalid client credentials"}
Sorry about the Monday mixup, apparently those tasks were already created.
Try testing with my changes: https://github.com/shield-legal/gcp-integrations/pull/80/commits/29fb3b39b0b73e0826b66b7d7ce8cf2785693ed5
run git pull --ff-only to download my changes
Please mark the error from gcp for 1927 as resolved
https://www.coursera.org/professional-certificates/google-it-automation
``` # Check to see who is the signer parent1 = data['Parent1']['item/litifypmFirstNamec'].lower().replace(" ", "") signer = intake['c-25782'].lower().replace(" ", "")
# Compare values and update data dictionary accordingly
if parent1 == signer:
data['Parent1']['item/SL_Automations__c'] = True
else:
data['Parent2']['item/SL_Automations__c'] = True ```
then i think its good now
Dont forget that for 1799 you will probably need to duplicate or loop over line 66 for each person in the mapping
oh right because they want 4 different "instances" right ?
yes, i believe they call them accounts
maybe get Darrell to sign off on the logic (maybe make a diagram?) before testing
assuming i'll have to change the json as well every time? json = data[Child], json = data[Parent1] , etc.
I wasn't planning on testing it without Darrell here but if its urgent then probably should
Build diagram that shows all the views and the original tables for the table matviewfinancialdetails
Build on https://www.drawio.com/ and share with me
git reset origin/NEC-baby-Formula\-\-\-DL\-\-\-Flatirons\-\-\-Shield-Legal
This is where I got the intake url from: https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/walkthrough_using_curl.htm better version: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_curl.htm
Hey, looks like Zek's car didn't get fixed so hes dropping his car off again and im going to go grab him
I have finished my version of the diagram (Page-3). Attached is the text used to generate it (https://mermaid.js.org/syntax/stateDiagram.html). Can you try adding color to help visually see the lines in Color of Page-3? Pick a color per box (can reuse if they do not connect anywhere) and then color the lines from that box to the other boxes the same color (only lines going right should match the color of the box)
Every push to SA generates a new ID. The current logs override
same lead id should be different externalid and intakeresponse
unless it didn't update but there were no errors
then i would say that the new one did not run. check the logs on the function or in lawruler activity log
activity log says email delivered
what is the leadid and the case type id?
They might have the dup checker enabled. try new contact info
ugh a whole new lead? ok that might take a little
copy with new contact. I can show you how after this meeting
oh i .... i think showed me already, give me a sec helping out Zek
Did we every try using? https://pypi.org/project/simple-salesforce/
Troy Maxwell <tmaxwell@elglaw.com>, Jonathan Sharp <Jonathan@elglaw.com>, "Treven J. Pyles" <Treven@elglaw.com>,
<Response [200]> {"response":{"scriptResult":"{\"idEntity\":\"270869\",\"idRepresentation\":\"113001\",\"statusCode\":\"200\"}","scriptError":"0","recordId":"109781","modId":"0"},"messages":[{"code":"0","message":"OK"}]}
They both failed:
DL:
[["Child", "<Response [400]>", "{\"message\":\"Illegal assignment from String to Boolean\",\"logId\":\"a0EVT00000BAgHP2A1\",\"isSuccess\":false,\"intakeId\":null,\"accountId\":null}"]]
Seeger:
<Response [400]> {"message":"{\"message\":\"Invalid date: 1990\",\"logId\":\"a7OUd0000001HI9MAM\",\"isSuccess\":false,\"intakeId\":null,\"accountId\":null}","logId":null,"isSuccess":false,"intakeId":null,"accountId":null}
Child was created successfully for NEC but incorrect logic on line 93, we need to check for status code 200 not 201
yeah i saw that it was a 200 and got excited for a second lol \
Depo Seeger worked as well. I will push the changes in a minute and you can review if you wish
https://console.cloud.google.com/bigquery/scheduled-queries?invt=AbtMAQ&project=tort-intake-professionals
Add a filter of destination dataset=Financial_Log_Dataset
Looks good. Did you get the scheduled queries from BQ?
I know that most of the tables in FinancialLogDataset are views or scheduled queries of other tables
oh no i dont think so . probably need to make those adjustments
instead of account["Name"]: do account.get('lastName', '').strip():
good to test 638 from the gcp/bq side
Good morning! Paraquat 12 should be good to merge
Good morning! Paraquat 12 should be good to merge
I dont know if that would affect things, but im going to retrigger a lead
AFFF DL flatirons also good to merge
tested and works
1674 Illinois Juvenile Hall Abuse - Dicello - Flatirons NC (TIP) - Shield Legal. Next campaign im working on for your reference so you can add it to monday when you get a chance
also might need assistance. my python commands aren't working in the terminal.
Looks like it could be a permissions thing after an update. Did you any updates recently?
Does python --version work when you are not in the virtual environment?
No updates that I’m aware of. I went look for a way to update before I messaged you
I’ll check in a normal cmd terminal once I get out of the meeting
Then your python install seems broke. It will either need and update or reinstall
well, i can't install it because joe
Blame windows.
Try this in a normal terminal window: winget upgrade --id Python.Python.3.12
No installed package found matching input criteria
For now get someone else to run the dump tool and give you the files. I can you repair python on Monday
Hey dustin we are ready to test 1674.
You are good to test
Also Darrell just told me that paraquat DL legafi is intermittently missing docs
Also Darrell just told me that paraquat DL legafi is intermittently missing docs
Do you mean the docs we send or docs from dl to legafi
apparently when we send a lead to DL only sometimes does it also come with docs
Google doesn't seem to be working for me
I think @Darrell posted them in before we had our system running
thats what i think we are putting together
the lead he gave me was pushed on the 2nd
And our integration was started and approved the 7th
yeah. so we are working on a solution, its going to be some combination of retriggering and deleting dups i'll keep you updated
intake 1674 (Illinois Juvenile Hall Abuse - Dicello - Flatirons NC (TIP) - Shield Legal) confirmed working
thanks. I am now re-triggering said leads for Darrell
and all came through successfully
Ok great, yeah i wasn't sure if we were allowed send it and i didn't want to make any promises
Ok great, yeah i wasn't sure if we were allowed send it and i didn't want to make any promises
oh their docs? so we already have them?
You can send the API docs that Anthony's team creates and attaches to Monday
Will need to download from sheets then attach in an email
NJ Juvenile Hall Abuse - DL - Flatirons - Shield Legal 1806
https://github.com/shield-legal/gcp-integrations/pull/66/commits/b856fe7170f2cff771a01f0ef223ab040bf33f95 It was silly and treated the folder renames as creating a new main.py...
Please open the Google meet for Dwight. I will be a little late to the 10
MD Juv Hall Abuse - DL/BG - Flatirons - Shield Legal
Los Padrinos Juv Hall Abuse - DL - Flatirons - Shield Legal
Please give me screen of what shows up when you go to: https://shieldlegal.dev/
Michigan Juvenile Hall Abuse - DL - Flatirons - Shield Legal another one to add to the monday board
i guess since those questions aren't ready yet PA Juvenile Hall Abuse - DL - Flatirons - Shield Legal
Well theres one of them
can you make 1807 available for testing please
and can you add 1915 Chowchilla Womens Prison Abuse - DL - Flatirons - Shield Legal to monday, if you can find it lol
1807 already available for testing. I enable it when I see the PR created. You can check by looking at the integration active column of integrations-tip.gcp_integrations.api_case_types
Can you log in to the meeting so Ahsan can join us?
Look at using https://pypi.org/project/simple-salesforce/ to push the intake questionnaires over. Start writing the code for pushing the intake questionnaires over. Attached is a report with all questions from all campaigns.
looks like the changes made to 1997 worked. i can be merged
Exception on / [POST]
Traceback (most recent call last):
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(****view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/execution_id.py", line 106, in wrapper
return view_function(**args, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/__init__.py", line 142, in view_func
return function(request._get_current_object())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/__init__.py", line 121, in wrapper
return func(**args, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/workspace/main.py", line 182, in main
response = requests.put(signed_url, data=attachment[1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/api.py", line 130, in put
return request("put", url, data=data, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/sessions.py", line 484, in prepare_request
p.prepare(
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/models.py", line 367, in prepare
self.prepare_url(url, params)
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/requests/models.py", line 438, in prepare_url
raise MissingSchema(
requests.exceptions.MissingSchema: Invalid URL '': No scheme supplied. Perhaps you meant https://?
File "/workspace/main.py", line 182, in main
response = requests.put(signed_url, data=attachment[1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
that line there specifically is interesting
Without looking at the code, I think it has to do with the document upload
We should look at BQ and the function logs
[["all", "<Response [200]>", "{\"=?UTF-8?b?NzIzODg4LVph4oCZTGF5bHlubiBKYWNraWVhIFRob21hcy1JbnRha2UuY3N2?=\":{\"SignedUrl\":\"<https://09af2598-5435-4a4c-b8a5-163617620137-us-east-2-documents.s3.us-east-2.amazonaws.com/a1eVT000004DAX7YAO?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAY4ZFPUF6EH2ILR5A%2F20250506%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20250506T213108Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKX%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMiJHMEUCIQDXMXq3uHKM1E54Du4ud6mmac2qrEUqed2EXtjWJjOSzQIgI4SmAKyaWiWkljvhoJrr9ddyFRNdC3%2F5O7HuechmWFIqwwMITxABGgw2MTE1NzQ1ODc3NzIiDIFLdEIyCXBEVpqtTSqgA%2FK9l7Nmza1S0Drot3upS0EASWOzz%2FEPnEg6O%2FUBLAxUtzRd1knfXaTni1qc6OumzhAL3aly7cqw3u6a1UOuTeNk7DFXioG7iVP4FggWdVU0jlMxqRhRE4jttNiF9kVnvix%2BDkVi0rnA8iVFPweR8iurdjH3NjsCvXSRKnOo2JJhiGUsYCTUgqU98f0FX4kvsWVqSxDiC2VoBunLwbDnQ6uH39foVdLRCsfByKdizZVKptiLj1Lc%2B7We3j%2BKLWH3Jk8B6UJpgY%2BjgOO6iJaXwFcTHb0qb1j%2Bix3oF3k9mPtT1gXS2vX6sVOtsSxVGUjy%2FZgz4SUcXvMSrBtvGZzLqD4Tnwv6%2FnENxOeECkCzY7K0hI9VbCS4wl8rj0QqEsErxV1%2F2iPB%2BDfhOQVkA7eLNX0JljcnHsVeVgnR5kV8vJpb0zXOPi7TRiN5cfxAxch0eu9SYMd7sOZmmaDTUFHkGbYzU44EQTMFtELTSlJR3OlFCpronsp8lWQkPrcJNqU2DpvZvcnt82T5qfBXFHJqbehDWAAdbWhvk8DQK6k6HaJJMI3%2F6cAGOp4BmV2ZdxH5N7pMDaXgD0oh5ODlhLZBj%2F76TFb5CZanH32mGi8P3SB41RgCSagX%2FhtPPbXJuQK%2F0dBAV9K97hGNqu0EVou3u5415r9U5O5dx0R7aQTU1Z9TOEZdlTEBqpm8qu5VbC%2FV%2B%2FCzBZhlwBC%2BRczGpqLI%2Bf6xt0qtJLUoxucrsyiycmuPYHwmTWw%2FmQSgyYeqDUQgu6Kg42s%2FzEg%3D&X-Amz-Signature=8e6718e934c821f2f97344d954e21a4e8b904546c4dd049902f759d3bef8ab3b&X-Amz-SignedHeaders=host&x-id=PutObject>\",\"Expires\":\"2025_05_06T22:31:08.696Z\",\"Id\":\"a1eVT000004DAX7YAO\",\"Name\":\"=?UTF_8?b?NzIzODg4LVph4oCZTGF5bHlubiBKYWNraWVhIFRob21hcy1JbnRha2UuY3N2?=\",\"litify_docs__Related_To__c\":\"a0CVT00004cnMgt2AE\",\"litify_docs__External_ID__c\":\"723888\"},\"=?UTF-8?b?NzIzODg4LVph4oCZTGF5bHlubiBKYWNraWVhIFRob21hcy1JbnRha2VGb3Jt?= =?UTF-8?b?LnBkZg==?=\":{\"SignedUrl\":\"\",\"Expires\":\"\",\"Name\":\"=?UTF-8?b?NzIzODg4LVph4oCZTGF5bHlubiBKYWNraWVhIFRob21hcy1JbnRha2VGb3Jt?= =?UTF-8?b?LnBkZg==?=\",\"litify_docs__Related_To__c\":\"a0CVT00004cnMgt2AE\",\"litify_docs__External_ID__c\":723888},\"Za_Laylynn-723888-SignedContract.pdf\":{\"SignedUrl\":\"<https://09af2598-5435-4a4c-b8a5-163617620137-us-east-2-documents.s3.us-east-2.amazonaws.com/a1eVT000004DAX9YAO?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAY4ZFPUF6EH2ILR5A%2F20250506%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20250506T213108Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKX%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMiJHMEUCIQDXMXq3uHKM1E54Du4ud6mmac2qrEUqed2EXtjWJjOSzQIgI4SmAKyaWiWkljvhoJrr9ddyFRNdC3%2F5O7HuechmWFIqwwMITxABGgw2MTE1NzQ1ODc3NzIiDIFLdEIyCXBEVpqtTSqgA%2FK9l7Nmza1S0Drot3upS0EASWOzz%2FEPnEg6O%2FUBLAxUtzRd1knfXaTni1qc6OumzhAL3aly7cqw3u6a1UOuTeNk7DFXioG7iVP4FggWdVU0jlMxqRhRE4jttNiF9kVnvix%2BDkVi0rnA8iVFPweR8iurdjH3NjsCvXSRKnOo2JJhiGUsYCTUgqU98f0FX4kvsWVqSxDiC2VoBunLwbDnQ6uH39foVdLRCsfByKdizZVKptiLj1Lc%2B7We3j%2BKLWH3Jk8B6UJpgY%2BjgOO6iJaXwFcTHb0qb1j%2Bix3oF3k9mPtT1gXS2vX6sVOtsSxVGUjy%2FZgz4SUcXvMSrBtvGZzLqD4Tnwv6%2FnENxOeECkCzY7K0hI9VbCS4wl8rj0QqEsErxV1%2F2iPB%2BDfhOQVkA7eLNX0JljcnHsVeVgnR5kV8vJpb0zXOPi7TRiN5cfxAxch0eu9SYMd7sOZmmaDTUFHkGbYzU44EQTMFtELTSlJR3OlFCpronsp8lWQkPrcJNqU2DpvZvcnt82T5qfBXFHJqbehDWAAdbWhvk8DQK6k6HaJJMI3%2F6cAGOp4BmV2ZdxH5N7pMDaXgD0oh5ODlhLZBj%2F76TFb5CZanH32mGi8P3SB41RgCSagX%2FhtPPbXJuQK%2F0dBAV9K97hGNqu0EVou3u5415r9U5O5dx0R7aQTU1Z9TOEZdlTEBqpm8qu5VbC%2FV%2B%2FCzBZhlwBC%2BRczGpqLI%2Bf6xt0qtJLUoxucrsyiycmuPYHwmTWw%2FmQSgyYeqDUQgu6Kg42s%2FzEg%3D&X-Amz-Signature=527f3bff62476d85f87580e187461db2adec9f4e89a72b1c96ebee309e8be640&X-Amz-SignedHeaders=host&x-id=PutObject>\",\"Expires\":\"2025_05_06T22:31:08.696Z\",\"Id\":\"a1eVT000004DAX9YAO\",\"Name\":\"Za_Laylynn_723888_SignedContract.pdf\",\"litify_docs__Related_To__c\":\"a0CVT00004cnMgt2AE\",\"litify_docs__External_ID__c\":\"723888\"}}"], ["=?UTF-8?b?NzIzODg4LVph4oCZTGF5bHlubiBKYWNraWVhIFRob21hcy1JbnRha2UuY3N2?=", "<Response [200]>", ""]]
well it stops short of finishing , ends on a 200
{\"Message\":\"Files successfully uploaded.\",\"Successes\":[{\"litify_docs__Version_Id__c\":\"MACUeP5JEyPqAQkihgWZsLAp9Es0LRn3\",\"litify_docs__Source__c\":\"Docrio Api\",\"litify_docs__File_Type__c\":\"text/csv\",\"litify_docs__File_Size__c\":2009,\"litify_docs__Do_Not_Archive__c\":false,\"SKCH_Is_Private__c\":false,\"litify_docs__Has_Attachments_Legacy__c\":false,\"litify_docs__Delete__c\":false,\"litify_docs__Updated_By_Name__c\":\"Darrell McCraken\",\"litify_docs__Updated_On__c\":\"2025_05_06T21:01:35.599Z\",\"litify_docs__Updated_By__c\":\"005VT0000039p6QYAQ\",\"litify_docs__Folder_Path_Last_255__c\":\"[]\",\"litify_docs__Folder_Path_First_255__c\":\"[]\",\"litify_docs__Latest_Version__c\":0,\"litify_docs__Related_To__c\":\"a0CVT00004co7o02AA\",\"litify_docs__Related_To_Api_Name__c\":\"litify_pm__Intake__c\",\"litify_docs__OCR_Compatible__c\":false,\"litify_docs__Latest_Version_Formula__c\":0,\"litify_docs__Folder_Path__c\":\"[]\",\"litify_docs__File_Link__c\":\"/lightning/r/litify_docs__File_Info__c/a1eVT000004D8ez/view\",\"litify_docs__External_ID__c\":\"723844\",\"litify_docs__Complete__c\":true,\"SystemModstamp\":\"2025_05_06T21:01:32.000Z\",\"LastModifiedById\":\"005VT0000039p6QYAQ\",\"LastModifiedDate\":\"2025_05_06T21:01:32.000Z\",\"CreatedById\":\"005VT0000039p6QYAQ\",\"CreatedDate\":\"2025_05_06T21:01:32.000Z\",\"Name\":\"723844-Paislee Pugh-Intake.csv\",\"IsDeleted\":false,\"OwnerId\":\"005VT0000039p6QYAQ\",\"Id\":\"a1eVT000004D8ezYAC\"},{\"litify_docs__Version_Id__c\":\"_E58tM9UAodA2TWYarFmG080DvkBY0vs\",\"litify_docs__Source__c\":\"Docrio Api\",\"litify_docs__File_Type__c\":\"application/pdf\",\"litify_docs__File_Size__c\":73178,\"litify_docs__Do_Not_Archive__c\":false,\"SKCH_Is_Private__c\":false,\"litify_docs__Has_Attachments_Legacy__c\":false,\"litify_docs__Delete__c\":false,\"litify_docs__Updated_By_Name__c\":\"Darrell McCraken\",\"litify_docs__Updated_On__c\":\"2025_05_06T21:01:35.601Z\",\"litify_docs__Updated_By__c\":\"005VT0000039p6QYAQ\",\"litify_docs__Folder_Path_Last_255__c\":\"[]\",\"litify_docs__Folder_Path_First_255__c\":\"[]\",\"litify_docs__Latest_Version__c\":0,\"litify_docs__Related_To__c\":\"a0CVT00004co7o02AA\",\"litify_docs__Related_To_Api_Name__c\":\"litify_pm__Intake__c\",\"litify_docs__OCR_Compatible__c\":false,\"litify_docs__Latest_Version_Formula__c\":0,\"litify_docs__Folder_Path__c\":\"[]\",\"litify_docs__File_Link__c\":\"/lightning/r/litify_docs__File_Info__c/a1eVT000004D8f0/view\",\"litify_docs__External_ID__c\":\"723844\",\"litify_docs__Complete__c\":true,\"SystemModstamp\":\"2025_05_06T21:01:32.000Z\",\"LastModifiedById\":\"005VT0000039p6QYAQ\",\"LastModifiedDate\":\"2025_05_06T21:01:32.000Z\",\"CreatedById\":\"005VT0000039p6QYAQ\",\"CreatedDate\":\"2025_05_06T21:01:32.000Z\",\"Name\":\"723844-Paislee Pugh-IntakeForm.pdf\",\"IsDeleted\":false,\"OwnerId\":\"005VT0000039p6QYAQ\",\"Id\":\"a1eVT000004D8f0YAC\"},{\"litify_docs__Version_Id__c\":\"QujOAairONdyPcGc.JFtfMPcywHfagkr\",\"litify_docs__Source__c\":\"Docrio Api\",\"litify_docs__File_Type__c\":\"application/pdf\",\"litify_docs__File_Size__c\":828103,\"litify_docs__Do_Not_Archive__c\":false,\"SKCH_Is_Private__c\":false,\"litify_docs__Has_Attachments_Legacy__c\":false,\"litify_docs__Delete__c\":false,\"litify_docs__Updated_By_Name__c\":\"Darrell McCraken\",\"litify_docs__Updated_On__c\":\"2025_05_06T21:01:35.603Z\",\"litify_docs__Updated_By__c\":\"005VT0000039p6QYAQ\",\"litify_docs__Folder_Path_Last_255__c\":\"[]\",\"litify_docs__Folder_Path_First_255__c\":\"[]\",\"litify_docs__Latest_Version__c\":0,\"litify_docs__Related_To__c\":\"a0CVT00004co7o02AA\",\"litify_docs__Related_To_Api_Name__c\":\"litify_pm__Intake__c\",\"litify_docs__OCR_Compatible__c\":false,\"litify_docs__Latest_Version_Formula__c\":0,\"litify_docs__Folder_Path__c\":\"[]\",\"litify_docs__File_Link__c\":\"/lightning/r/litify_docs__File_Info__c/a1eVT000004D8f1/view\",\"litify_docs__External_ID__c\":\"723844\",\"litify_docs__Complete__c\":true,\"SystemModstamp\":\"2025_05_06T21:01:32.000Z\",\"LastModifiedById\":\"005VT0000039p6QYAQ\",\"LastModifiedDate\":\"2025_05_06T21:01:32.000Z\",\"CreatedById\":\"005VT0000039p6QYAQ\",\"CreatedDate\":\"2025_05_06T21:01:32.000Z\",\"Name\":\"Paislee-723844-SignedContract.pdf\",\"IsDeleted\":false,\"OwnerId\":\"005VT0000039p6QYAQ\",\"Id\":\"a1eVT000004D8f1YAC\"}],\"Failures\":[]}"]]
Looks like 2 of docs got bad names and 1 didnt get a url to upload to because of that
hmmm ok so what do we do about that?
weird. I will look more after this meeting
hey man can you add Private Boarding School Abuse - DL - Flatirons - Shield Legal to monday please
im currently in a meeting with dicello
its fine we are postponing
select sum(case when ssn not like '%0000' and ssn is not null then 1 else 0 end) as count_has_ssn, count(ssn) as count_rows from contact c left join lead l on l.contactid=c.id where casetypeid in (select id from case_type where name like '%DiCello%' or name like '%DL%' or name like '%DLG%') and statusid in (1075, 3063);
Output:
count_has_ssn,count_rows
13540,16187
would you like me to put both LA Wildfire Flyer and LA wildfires in the same pull request ?
tabs = {tab['Name']: {q['LawrulerField']: [i['Name'] for i in q['Items']] for q in lr.get_intake_form(579340, tab['Id'])['Questions']} for tab in d['Tabs']}
tabs = {}
for tab in d['Tabs']:
for q in lr.get_intake_form(579340, tab['Id']):
tabs[tab['Name']][q['LawrulerField'] = [i['Name'] for i in q['Items']]
152481,What brought you to the treatment center?,False,Drop Down,c-27510,383,True,Suicidal Ideations|Suicide Attempt|Substance Overdose|Substance Detox/Withdrawals/Treatment|Mental Health|DFS Placement|Foster Care,Intake Form
152481,What brought you to the treatment center?,False,Drop Down,c-27510,383,True,Suicidal Ideations|Suicide Attempt|Substance Overdose|Substance Detox/Withdrawals/Treatment|Mental Health|DFS Placement|Foster Care,Intake Form
Make a PR on the integrations project adding this script to the tools folder. Modify this script to all a user to pass in the lead id then grab the case type id to get the lrquestions.json for that case type before running the rest of the code. Should also call the dumplrquestions tool for that case type id before grabbing the lrquestions.json.
had to make adjustment to case type id 599 (MD Juv Hall Abuse - DL/BG - Flatirons - Shield Legal)
Dicello gave me the wrong case type id, which is why we got that error 30 minutes ago
Dicello gave me the wrong case type id, which is why we got that error 30 minutes ago
you can merge it you get a second, that should fix it
"Intake creation failed: On person InjuredParty, 400, {"message":"Insert failed. First exception on row 0; first error: CANNOTEXECUTEFLOWTRIGGER, We can't save this record because the “SL Matter Automation” process failed. Give your Salesforce admin these details. This error occurred when the flow tried to create records: FIELDINTEGRITYEXCEPTION: Fee Arrangement for This Matter: id value of incorrect type: a0LVT000008WJ692AG. You can look up ExceptionCode values in the SOAP API Developer Guide. Error ID: 1085314757-138533 (1942535077)k up ExceptionCode values in the SOAP API Developer Guide. Error ID: 1085314757-138533 (1942535077): []","logId":"a0EVT00000D3Qcn2AF","isSuccess":false,"intakeId":null,"accountId":null}"
Fee Arrangement for This Matter: id value of incorrect type: a0LVT000008WJ692AG
sounds like Zahir provided the wrong ones?
Case Type: a03VT00000QyRWEYA3 Parent Matter: a0LVT000008WJ692AG Fee Arrangement: a0LVT000008WJ692AG
was this the campaign that had the wrong case type? if so then yes
Please Merge 2064 When you get a chance, DL had to create a whole new campaign for instant cup so nick had me rush it
Thank you sir, enjoy your weekend
Merged
updated file, sorted by name with case type ids
When I get back from lunch, I will have those csvs for you
Did you and Nick discuss the mapping draft they sent us?
Ok. I haven’t sent that email with the files yet, per what we discussed. I’m heading out but I can send it when I get home if I need to
Equitable Financial Life Lawsuit - DiCello Levitt
Who asked for the 20 more questions for instant soup?
thats why we had to make a second instant soup cup,
That i dont know, i think they went straight to cam for it
are the pull requests good to test right now?
missing docs: 748389 complete error (no send): 746834, 738674, 232231
so i dont know why that lead is missing the but i deleted the lead. 738674 is the lead im teasting for alameda county, 746834 also not located on either log 232231 i could not find in the logs. there was an error at that time but oddly enough at that exact time there is an error for a different lead 746462, I checked a few leads above and below and do not see that ID anywhere on the log
also Alameda is good to merge, let me know when you do i'll let them know
select ** from case_type where name like '%DiCello%' or name like '%DL%' or name like '%DLG%'
csvs with: leadid, firstname, middlename, lastname, createdate, casetype, status, esigndate
No leads found for case_types=[2060, 2062, 2059, 2063, 2061, 2058, 2046, 2041, 2029, 2027, 2026, 2025, 2024, 2028, 2021, 2020, 1982, 1979, 1978, 1974, 1969, 1960, 1935, 1918, 1822, 1922, 1916, 1808, 1754, 1798, 1820, 1907, 1738, 511, 1869, 148, 139, 138, 198, 597, 1870, 1675, 1723, 1704, 1654, 1832, 1830, 1809, 1821, 1842, 1844, 1819, 1815, 631, 269, 349, 1666, 208]
all dl case types: (223, 208, 602, 1666, 258, 257, 605, 270, 271, 349, 240, 249, 269, 268, 266, 265, 604, 611, 631, 1815, 1819, 1844, 1841, 1853, 1859, 1861, 598, 1842, 1821, 1809, 1830, 1832, 1839, 213, 241, 1857, 640, 1654, 1704, 603, 1690, 1723, 1717, 1879, 1686, 1687, 1675, 599, 1676, 600, 614, 1799, 1870, 1791, 1643, 1806, 1807, 597, 109, 198, 638, 138, 139, 148, 207, 298, 1860, 1869, 511, 1738, 606, 1907, 1820, 1798, 1754, 1808, 1915, 1916, 1908, 1922, 1926, 1923, 1822, 1918, 1930, 1935, 1941, 1949, 1955, 1960, 1969, 1974, 1975, 1976, 1977, 1978, 1979, 1982, 1987, 1995, 1998, 2000, 2001, 2009, 2015, 2016, 2020, 2021, 2028, 2024, 2025, 2026, 2027, 2029, 2040, 2044, 2041, 2045, 2042, 2043, 2046, 2058, 2061, 2063, 2059, 2062, 2060, 2064)
some of those i assume haven't started calling yet
blank last name: leadid,casetypeid,processedat,response 749237,2064,2025-06-05 17:05:12.206473,"[[""SignerAccount"", ""<Response [400]>"", ""{\""message\"":\""Insert failed. First exception on row 0; first error: FIELDCUSTOMVALIDATIONEXCEPTION, (null) cannot have a blank last name.: []\"",\""logId\"":\""a0EVT00000DDnMp2AL\"",\""isSuccess\"":false,\""intakeId\"":null,\""accountId\"":null}""]]"
Youth Treatment Center - BG/Dicello - ACTS - Shield Legal
that baby formula pull request can get merged if it looks alright
Hey man we might be having a big issue
well from about 9 am Yesterday none of the matters that we are creating have show up in salesforce. Richard and I did some investigating because we could see that the intakes and parties were being created still
turns out someone is reassigning all the matters we create, so Darrell isn't the owner anymore
thats why they aren't showing up on the "my matters" list
kind of , but it make things a little more difficult when errors come through
why did they all of a sudden start doing that
Maybe it was when Brittany had to explain to Amanda / Nico that Darrell is no longer with the company. They might have relayed it to the paralegals?
it could be an automation recently created because the person is the same basically for every lead that comes through
518 can be merged
2042 can be merged
Hey I'm trying to test 2040 but git seems like it won't make it available
I also made nick a reviewer so whenever needs to be done he can do it (probably)
merge conflict, I fixed it. nick is one of the owners of the org so is admin and has all permissions
Good morning sir , I hope you had an excellent vacation. I am starting to map out the test push that nick cirino asked us to do. I might need help with the main later.
Do we have a default value for "county"? no right?
Ok. I guess I'll just leave it empty then
I'm mapping to the injured party, not the signer. I believe thats what they wanted. By any chance did you watch or read friday's meeting?
Yeah i thought i might have notes. didn't see anything sorry
btw you are working this week remotely Yes? I don't want to message you if you are still on vacation
Remote
Ok. I took a look at the information they sent us for the test sandbox. Unless I'm wrong, and lets be honest thats a higher percent chance than we want to admit, it doesn't look like i have to change much in the original main.py for this
the one that came in over the weekend? fix it already
i've been resolving them as they came in
Any way to see previous interactions of merged code in git?
You can look at the history of a branch (including main) or a pr
You can look at the history of a branch (including main) or a pr
but some of the errors are incorrect data in lr
Please mark the error as resolved and in the future mark them before retriggering
they should all be resolved and retriggered
ah found it, i was looking for the closed branches
Are you also testing 2040, so we can get that merged and then make this a PR?
i just took the docrio stuff out, and replaced the credes and links with the new ones. i figured that it looks like it could just plug and play from the original code we had
2040 can be merged? or are you talking about the file you sent me?
but that last paragraph was about testing the sandbox
i added esign final to bard
*Thread Reply:* • No username or password is needed (L23/L24)
• headers on L55-L58 needs to be removed
• L42 Content-Type: application/json can be removed
• Remove logs variable (and L61) and replace json.dumps(...) on L62 with f'{intake_response} {intake_response.text}'
*Thread Reply:* really? so it won't need my creds to get it?
*Thread Reply:* See the fourth point in my previous message
*Thread Reply:* postgres.update_lead_intake_response(intake['Lead ID'])
f'{intake_response} {intake_response.text}')
*Thread Reply:* oh wait "and l61" ?
*Thread Reply:* with that change you can remove L61 and L44
*Thread Reply:* intake_response = <a href="http://requests.post">requests.post</a>(intake_url, headers=headers, json=data)
postgres.update_lead_intake_response(intake['Lead ID']
f'{intake_response} {intake_response.text}'
*Thread Reply:* the bottom two lines suggest a "," is missing
*Thread Reply:* or at least thats what pycharm says
*Thread Reply:* thank you for that
*Thread Reply:* The dicello error that just came through, seems to me like job still finished ?
*Thread Reply:* It failed to get a url to upload docs to. If you check the log table that lead will be missing a docs response
*Thread Reply:* nothing from today, i don't see a lead with docs missing on the logs
*Thread Reply:* still waiting on them to send ids for the next campaign
made some tweaks
how do we go about testing this with the dummy mapping. do we have to send an email to the dataprocessing mail box?
yes, all testing will be done on a PR with the email from LR
ok so i do have to map the json they gave us, i was hoping just to send as is
save it as mapping.json after this test you will have to map it
how do i trigger the the main.py without LR for this test , is what im asking
Not unless you want to fix the run_local.py tool which still requests a lead id and it to have triggered via lr at least once
ok, so i'll have to map the json then and create a test lead
Morning sir, to start testing the new , we will have to turn off bard powerport dl flatirons
Why, that is in prod right? the testing will not be in prod
Why not a campaign that is not flowing?
because that's what they wanted. but i guess you are right, i should test something that isn't in prod
I'll reach out for a different campaign
postgres.update_lead_intake_response(intake['Lead ID'])
f'{intake_response} {intake_response.text}')
Good morning dustin. Nick Cirino is suggesting we use their test data
I though you were going to do that first?
i asked you "how" we could do that
as we need something to trigger the email
We need a lead from a campaign after the PR is made to trigger it
mind getting on a quick huddle with me?
L43 and L49-L51 will cause a problem unless removed
welp i trigger the lead. i'll delete them and send again
Also nothing should have be add to their system, the code was set to do the auth then check for external id before sending intake which would always fail so then it would not send the intake
i mean delete those lines
Do you want me to handle the test for Nick C?
If it doesn't go through in the first time, it might be best
I will use the lead id from the email thread: 752699
I will use the lead id from the email thread: 752699
ok. looks like nothing happened. rip my test
mind showing me what changing you will make to the code?
is it perhaps because i save the file as "sandbox" and not the case type ?
well thats makes a bit more sense.
well i can send another test by changing the file name, but if you are on it already i'll leave it be
You are good to work on that, I will work on the test for Nick C
looks like the error is calling from the main.py in the dicello file
Exception on / [POST]
Traceback (most recent call last):
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(****view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/execution_id.py", line 106, in wrapper
return view_function(**args, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/__init__.py", line 142, in view_func
return function(request._get_current_object())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/layers/google.python.pip/pip/lib/python3.12/site-packages/functions_framework/__init__.py", line 121, in wrapper
return func(**args, ****kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/workspace/main.py", line 137, in main
importlib.import_module(f"{obj.log_row['case_type_id']}.main").main(obj, sl_case_type_id_c[case_type_id], sl_co_council_arrangement_id_c[case_type_id])
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 207
this code doesn't have a line 137
yeah so it is calling on the dicello main.py
no worries just reach back out whenever you are free
the erro is that 2047 does not exist in the dl/main.py (slcasetypeid, slco_council), you can make them empty unless you create an error in the dl/2047/main.py the dl/main.py will still try to run
the erro is that 2047 does not exist in the dl/main.py (slcasetypeid, slco_council) unless you create an error in the dl/2047/main.py the dl/main.py will still try to run
the erro is that 2047 does not exist in the dl/main.py (slcasetypeid, slco_council), you can make them empty unless you create an error in the dl/2047/main.py the dl/main.py will still try to run
right i figured that it was the case. ok so i have to make the adjustment in there? i have the fields. should i add them?
though we aren't doing much if anything with those fields in the sandbox test
add the 2 2047: '' to the dl/main.py
at the bottom of the dl/2047/main.py replace return '' with raise ValueError
replace the top of dl/2047/main.py to match the other case main pys for dl (L1-L13)
add the 2 2047: '' to the dl/main.py
at the bottom of the dl/2047/main.py replace return '' with raise ValueError
replace the top of dl/2047/main.py to match the other case main pys for dl (
add the 2 2047: '' to the dl/main.py
at the bottom of the dl/2047/main.py replace return '' with raise ValueError
replace the top of dl/2047/main.py to match the other case main pys for dl (L
add the 2 2047: '' to the dl/main.py
at the bottom of the dl/2047/main.py replace return '' with raise ValueError
replace the top of dl/2047/main.py to match the other case main pys for dl (L1-L13)
you still have duplicate header vars, should remove the one on L39-42
Newest error is above my paygrade lol
i'll definitely need your assistance for it
it might be because of the directories.
I added postgres: IntegrationPostgres = obj.postgres because of postgres.update_lead_intake_response(intake['Lead ID']) and it needed a directory to work
unless postgres.update_lead_intake_response(intake['Lead ID']) shouldn't be there at all
remove the common. from the import at the top.
Check the function names in common/cloudpostgres.py IntegrationsPostgres, I believe the correct function call is postgres.update_response
ran other test, postgres.update_response(intake['Lead ID']) still seem to be the location of the error. TypeError: IntegrationPostgres.update_response() missing 1 required positional argument: 'response'
update response takes the log['id'] and f'{intakeresponse} {intakeresponse.text}'
and we don't have log['id'] here do we
postgres.update(obj.log_row['id'], f'{intake_response} {intake_response.text}')
yes, just update the id and put the string in the parathesis
is it suppose to be lead id ? or what is in the id a stand in for
id is the column from the integration_log table
ok im then a little unclear on you instructions
intake_response = <a href="http://requests.post">requests.post</a>(intake_url, headers=headers, json=data)
postgres.update(obj.log_row['id'], f'{intake_response} {intake_response.text}')
f'{intake_response} {intake_response.text}'
ah same, as the end of the second line
postgres.update_response not postgres.update
ugh... hopefully my adjustment gets implemented before the automation triggers
yeah the next test is going to come back with an error
so i'll send another test out and check it when i get home tonight
but progress
this time it started actually creating it
Good morning sir, i believe we are at the basically there. the code now errors at the the end
File "/workspace/main.py", line 139, in main
importlib.import_module(f"{obj.log_row['case_type_id']}.main").main(obj, sl_case_type_id_c[case_type_id], sl_co_council_arrangement_id_c[case_type_id])
File "/workspace/2074/main.py", line 44, in main
raise ValueError
ValueError
time to remove or change the last line?
Yes lets change the raise ValueError to return True and in the dl/main.py store the result of L135 in a variable then check if that variable is true and if it is run a copy of L165 & L166
add variable for the result on L135 then directly after it the rest
``` casetypeid = intake["Lead Data"]["CaseTypeId"] check = importlib.importmodule(f"{obj.logrow['casetypeid']}.main").main(obj, slcasetypeidc[casetypeid], slcocouncilarrangementidc[casetype_id])
if check:
<a href="http://logger.info">logger.info</a>('Finished')
return ''```
I'm not sure where in the sandbox these will drop. i'm going to let them know
<Response [500]> {"timestamp":"2025-06-19 16:30:39","message":"Internal Error Occurred! Error mapping records: Insert failed. First exception on row 0; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, (Business Name) cannot have a blank last name.: []","matterId":null,"isSuccess":false,"accountId":null}
No code errors, does not mean no errors. Also check the DB log
In the db under that case type when sorted id or triggered at desc
well the business name is not empty
this might be something that they'd have to fix on their end then
SELECT **
FROM `integrations-tip.gcp_integrations_postgres.lead_data_view`
WHERE case_type_id = 2074
ORDER BY intake_processed_at
DESC LIMIT 1000
im getting any empty query result
wrong db and table.
in the lr-data db integrations.integrations_log
sorry im looking in lr-data i can't find it
payload.json = python tools/payload.py intake.json mapping.json
i mean its all hard coded so it would be the same as the mapping
Maybe its because the 2nd role is missing a business name?
Attach the error to the Jira ticket and ask for help
had to add first and last name to both roles
one last step now that we know what a success looks like
after L40:
matter_id = intake_response.json().get('matterId')
postgres.update_external_id(obj.log_row['id'], matter_id)
adding the matter id to the data base?
Good morning. I am forwarding you an email from litify support.
also we have confirmation that they have received our test from yesterday
Nick C sent me that email yesterday which is what I was going to test but I didn't get to it
With the new endpoint do we have to worry about it?
I don’t know, but I got that email this morning so my guess is that they are still wanting it
Looks like that email was originally sent Wednesday but to darrell. Nick C forwarded it to me and you yesterday but did not include Akshay who then forwarded it today
looks like it is still a priority
i have to get making integrations.
Change it in the next DL integration?
lets talk about it on the meeting
Nick and I are almost done
Maxwell Henricks, MD, Obstetrics/Gynecology | Ascension Columbia St. Mary's Hospital - Milwaukee Campus
```<Response [403]> <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]--> <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]--> <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]--> <head> <title>Attention Required! | Cloudflare</title> <meta charset="UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta name="robots" content="noindex, nofollow" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="stylesheet" id="cfstyles-css" href="/cdn-cgi/styles/cf.errors.css" /> <!--[if lt IE 9]><link rel="stylesheet" id='cfstyles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]--> <style>body{margin:0;padding:0}</style>
<!--[if gte IE 10]><!--> <script> if (!navigator.cookieEnabled) { window.addEventListener('DOMContentLoaded', function () { var cookieEl = document.getElementById('cookie-alert'); cookieEl.style.display = 'block'; }) } </script> <!--<![endif]-->
</head> <body> <div id="cf-wrapper"> <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enablecookies">Please enable cookies.</div> <div id="cf-error-details" class="cf-error-details-wrapper"> <div class="cf-wrapper cf-header cf-error-overview"> <h1 data-translate="blockheadline">Sorry, you have been blocked</h1> <h2 class="cf-subheadline"><span data-translate="unabletoaccess">You are unable to access</span> n8protect.com</h2> </div><!-- /.header -->
<div class="cf-section cf-highlight">
<div class="cf-wrapper">
<div class="cf-screenshot-container cf-screenshot-full">
<span class="cf-no-screenshot error"></span>
</div>
</div>
</div><!-- /.captcha-container -->
<div class="cf-section cf-wrapper">
<div class="cf-columns two">
<div class="cf-column">
<h2 data-translate="blocked_why_headline">Why have I been blocked?</h2>
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>
</div>
<div class="cf-column">
<h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>
<p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>
</div>
</div>
</div><!-- /.section -->
<div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
<p class="text-13">
<span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">94ea90649b8b99b8</strong></span>
<span class="cf-footer-separator sm:hidden">&bull;</span>
<span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">
Your IP:
<button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>
<span class="hidden" id="cf-footer-ip">2600:1900:0:4b01::201</span>
<span class="cf-footer-separator sm:hidden">&bull;</span>
</span>
<span class="cf-footer-item sm:block sm:mb-1"><span>Performance & security by</span> <a rel="noopener noreferrer" href="<https://www.cloudflare.com/5xx-error-landing>" id="brand_link" target="_blank">Cloudflare</a></span>
</p>
<script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>
</div><!-- /.error-footer -->
</div><!-- /#cf-error-details -->
</div><!-- /#cf-wrapper -->
<script> window.cftranslation = {};
</script> </body> </html>```
looks like a its some sort of document issue
2025-06-14 01:30:13.802550 2025-06-12 16:00:52.898222 2025-06-11 02:30:24.398419
Umm those are AFFF thyroid only …. Maybe 1957?
try re-triggering the 3 missing case works
The SGGH with blank 200 should be fine
No, the SGGH is us testing with the echo_function so as to not create dups in their system
ok but there are also sggh, dicello...etc
use this filter in the where box destination <> 'SGGH' and status <> 'API TEST'
the log had the leads sorted by external id ...
should always sort by triggered_at desc
should always sort by triggered_at desc
<Response [500]> {"timestamp":"2025-06-26 17:00:19","message":"Internal Error Occurred! Invalid format: \"\" at [line:1, column:29578]","matterId":null,"isSuccess":false,"accountId":null}
You need the intake.json file from https://console.cloud.google.com/storage/browser/shield-legal-638/644959/intake
yeah, thats why i said i stupid lol.
though
(.venv) PS C:\Users\Daniel\git_code\gcp-integrations> python tools/dump_lr_questions.py 638
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x0000024DE769A750>
Unclosed connector
connections: ['deque([(<aiohttp.client_proto.ResponseHandler object at 0x0000024DE7771CD0>, 9241.375), (<aiohttp.client_proto.ResponseHandler object at 0x0000024DE7771BB0>, 9241.39)])']
connector: <aiohttp.connector.TCPConnector object at 0x0000024DE75260C0>
(.venv) PS C:\Users\Daniel\git_code\gcp-integrations> python tools/payload.py tools/intake.json firm_DiCello_Levitt/638/mapping.json
Waiting up to 5 seconds.
Sent all pending logs.
something seems to be off with my terminal
won't generate the files. would a fetch fix this?
those are logs, there are no issues there. You should have a payload.json file in the root of the project now
which is correct for these caseworks integrations?
is everything supposed to be commented out?
dont worry about unless you want to restart pycharm
what about this caseworks thing? what is that?
a diff between 2 campaigns, which question is correct? c-4790 or 91
on 1810, both of those fields point at a date of death question
i guess i would lead toward 4790 to be the better option
The other diff between the campaigns is attached. do you remember why?
I restarted the main func and now its working. Just re-trigger those that got the error
the csv from the dumplrquestions.py
commits added. pull your branch and the tools (dumplrquestions & run_local) will be updated
i dont think it worked ... though that might be because i updated the branch right before you did lol
I ran into that but made it work for my side at least
all good man, yeah we wil figure it out later
With your dl changes, why not do something like if r.get('dob'): r['dob'] = datetime...
for r in data["roles"]:
if r.get('dob'):
r["dob"] = datetime.strptime(r["dob"], "%m-%d-%Y").strftime('%Y-%m-%d')
this should make adjustments to all the dates if a role has it ?
"mailingStreet": "c-25852 ; c-25852",
if ';' in value: # Allows having multiple values in a single field.
return '; '.join([_handle_extra_logic(v, intake) for v in value.split(';')]).strip('; ')
"mailingStreet": "c-25852 ; c-25852",
will turn into
"mailingStreet": "Addr1 ; Addr2",
for question in data["questionAnswers"]:
if question["questionId"] == "a0PVT00000QV5VL2A1":
if question["answer"] == "Yes":
for role in data["roles"]:
if role["roleCategory"] == "Child - MINOR":
role["roleCategory"] = "Decedent"
for question in data["questionAnswers"]:
if question["questionId"] == "a0PVT00000QV5VL2A1":
if question["answer"] == "Yes":
for role in data["roles"]:
if role["roleCategory"] == "Child - MINOR":
role["roleCategory"] = "Decedent"
<Response [500]> {"timestamp":"2025-07-03 22:00:51","message":"Internal Error Occurred! Error mapping records: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [SKCH_Parent_Matter__c]: [SKCH_Parent_Matter__c]","matterId":null,"isSuccess":false,"accountId":null}
for role in data["roles"]:
if role["roleCategory"] == "Plaintiff":
plaintiff_dob = role["dob"]
for role in data["roles"]:
if role["roleCategory"] == "CHILD - MINOR":
minor_dob = role["dob"]
if plaintiff_dob == minor_dob:
for role in data["roles"]:
if role["roleCategory"] == "CHILD - MINOR":
role["roleCategory"] = "Plaintiff"
Whats the status of KY Organ Donor Investigation Lawsuit - DL - DL - Shield Legal?
we stopped it because they wanted to test on paraquat instead.
it was the campaign we were testing for the new endpoint.
Then move it out of In Progress and add an update
I saw the slack ping and I was hoping it was Sunnie and the letting me know the questions are ready to go lol
Make AFFF-PFAS Military Base Exposure - DL - Flatirons - Shield Legal a priority
that'll be the next one i work on
I will have to create a jira ticket.. i hope they realize that
there are 291 that they do not have (what Abe was just talking about) that need to sent ASAP
understood. we will see how bad he wants them
Priority is "highest"
btw i noticed that the "mailingStreet": "c-25852 ; c-25853",
they are getting it as a string rather than a field
"mailingStreet": "c-25852;c-25853",
"mailingStreet": "c-25852;c-25853",
you can test it by generating a payload
heads up... it doesn't look like we ask for the signer's phone number here. I think there was a typo because the normal custom field is there but the field is called "Injured Party's Primary Phone Number:"
*Thread Reply:* Is there 2 Injured Party Phone Numbers? Or is it in the signer info section in LR?
also did you want to bring up the dicello thing where they asked us to turn them all off
Not at this time
I am just realizing now I never flipped the campaign to “test”
I am fixing a bug. You forgot to add the case_type to the list in dl/main.py. I made it so you dont have to anymore
it is automatically test when a new campaign
also I am seeing more DL leads with random chars
It might be something we can fix fro the GCP side, but we will have to look into it
I never checked to see if the lead we sent over after changing the name worked
The test for AFFF PFAS was successful after I fixed the bug. I will let @Joe Santana know. You need to ask them to review it when you get back from lunch, if the ask is over email make sure me and @Joe Santana are on it.
Great I got to change the name back then.
go ahead, 100 every 30 minutes
Did we remove DL's email from the campaign automation we completed friday?
def clean_and_pad(input_str):
cleaned = input_str.replace('-', '').replace('_', '')
padded = cleaned.zfill(9)
return padded
for role in data["roles"]:
if role["roleDescription"] == "Signer":
plaintiff_first = role["firstName"]
plaintiff_last = role["lastName"]
if not intake["c-25843"]:
full_name = intake["c-25843"].strip()
parts = full_name.split(" ", 1) # Split on the first space only
role["firstName"] = parts[0]
role["lastName"] = parts[1]
``` data["account"]["mailingStreet"] = intake["c-25852"] + intake["c-25853"] data["account"]["ssn"] = format_ssn(data["account"]["ssn"]) <<<<<<< AFFF-PFAS-Military-Base-Exposure-DL-Flatirons-1926-Part4
======= >>>>>>> main
for role in data["roles"]:
if role["roleDescription"] == "Signer":
if not intake["c-25843"]:
full_name = intake["c-25843"].strip()
parts = full_name.split(" ", 1) # Split on the first space only
role["firstName"] = parts[0]
role["lastName"] = parts[1]
plaintiff_first = role["firstName"]
plaintiff_last = role["lastName"]
if role["roleCategory"] == "Client":
client_first = role["firstName"]
client_last = role["lastName"]```
File "/workspace/main.py", line 137, in main
check = importlib.import_module(f"{obj.log_row['case_type_id']}.main").main(obj, sl_case_type_id_c.get(case_type_id, ''), sl_co_council_arrangement_id_c.get(case_type_id, ''))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/1926/main.py", line 134, in main
data["account"]["ssn"] = format_ssn(data["account"]["ssn"])
~~~~~~~~~~~~~~~^^^^^^^
KeyError: 'ssn'"
I pushed a change that fixes that error
```import csv import json
def buildquestionnairedatafromcsv(csvfile, outputfile="mapping.json"): result = [] with open(csv_file, newline='') as file: reader = csv.DictReader(file) for row in reader: result.append({ "questionId": row["questionId"], "questionnaireId": row["questionnaireId"], "answer": row["answer"], "answerType": "STRING" })```
```import csv import json
def buildquestionnairedatafromcsv(csvfile, outputfile="mapping.json"): result = [] with open(csv_file, newline='') as file: reader = csv.DictReader(file) for row in reader: result.append({ "questionId": row["questionId"], "questionnaireId": row["questionnaireId"], "answer": row["answer"], "answerType": "STRING" }) return result```
```import csv import json
def buildquestionnairedatafromcsv(csvfile, outputfile="mapping.json"): result = [] with open(csv_file, newline='') as file: reader = csv.DictReader(file) for row in reader: result.append({ "questionId": row["questionId"], "questionnaireId": row["questionnaireId"], "answer": row["answer"], "answerType": "STRING" })```
def format_ssn(input_str):
cleaned = input_str.replace('-', '').replace('_', '')
padded = cleaned.zfill(9)
padded = f"{padded[:3]}_{padded[3:5]}-{padded[5:]}"
return padded
```import csv import json
def buildquestionnairedatafromcsv(csvfile, outputfile="mapping.json"): question_answers = []
# Read data from CSV
with open(csv_file, newline='') as file:
reader = csv.DictReader(file)
for row in reader:
question_answers.append({
"questionId": row["questionId"],
"questionnaireId": row["questionnaireId"],
"answer": row["answer"],
"answerType": "STRING"
})
# Build final structure
final_data = {
{
"matter":
{
"caseTypeId": "",
"recordTypeId": "012VT0000008PR3YAM",
"practiceArea": "Mass Torts",
"externalId": "Lead ID",
"parentMatterId": "",
"feeArrangementId": "Lead Data/CaseTypeId"
},
"account":
{
"firstName": "",
"lastName": "",
"email": "",
"dob": "",
"phone": "",
"ssn": "",
"mailingCity": "",
"mailingState": "",
"mailingPostal": "",
"mailingStreet": "",
"type": "Client",
"recordTypeId": "012Dn000001Tom7IAC",
"sl_case_type_id_c": "Lead Data/CaseTypeId",
"externalId": "Lead ID"
},
"questionAnswers":
[
question_answers
]
"roles": [
{
"roleCategory": "Plaintiff",
"roleDescription": "Signer",
"businessName": "",
"firstName": "",
"lastName": "",
"email": "",
"dob": "",
"phone": "",
"ssn": "",
"mailingStreet": "",
"mailingCity": "",
"mailingState": "",
"mailingPostal": "",
"recordTypeId": "012Dn000001Tom7IAC",
"externalId": "Lead ID"
},
{
"roleCategory": "",
"roleDescription": "",
"businessName": "",
"firstName": "",
"lastName": "",
"email": "",
"dob": "",
"phone": "",
"ssn": "",
"mailingCity": "",
"mailingState": "",
"mailingPostal": "",
"recordTypeId": "012Dn000001Tom8IAC",
"externalId": "Lead ID"
}
]
}
}
# Write to JSON file
with open(output_file, "w") as json_file:
json.dump(final_data, json_file, indent=2)```
here are the changes. You can apply it to your file or just open in pycharm / vscode to see the changes
When you come back, send one of the AFFF-PFAS that has a problem. I already set the case type in api_triggers to the test function (which should be my PR with the endpoint refactor)
did you send in a test ? we just had one ail ?
no looks like this just got signed
File "/workspace/main.py", line 60, in main
new_endpoint(obj)
File "/workspace/new_endpoint.py", line 22, in new_endpoint
importlib.import_module(f"{obj.log_row['case_type_id']}.main").main(obj)
File "/workspace/1926/main.py", line 6, in main
fix_signer_name(obj, "c-8736")
File "/workspace/new_endpoint.py", line 91, in fix_signer_name
if role_map['Client']['firstName'].lower().strip() == role_map['Signer']['firstName'].lower().strip() and role_map['Client']['lastName'].lower().strip() == role_map['Signer']['lastName'].lower().strip():
~~~~~~~~^^^^^^^^^^
KeyError: 'Client'
looks like an issue in one of the loops
Change Client to InjuredParty. Should match roleDescription in the mapping
In the function in new_endpoint.py that the error happened in L91
if role_map['Client']['firstName'].lower().strip() == role_map['Signer']['firstName'].lower().strip() and role_map['Client']['lastName'].lower().strip() == role_map['Signer']['lastName'].lower().strip():
data['roles'].remove(role_map['Client'])
if role_map['InjuredParty']['firstName'].lower().strip() == role_map['Signer']['firstName'].lower().strip() and role_map['InjuredParty']['lastName'].lower().strip() == role_map['Signer']['lastName'].lower().strip():
data['roles'].remove(role_map['InjuredParty'])
I know what the latest problem is. I will be back in about 10 minutes
Organ donor might have a decedent check
*Thread Reply:* I do not see it in the old main.py
The other two will need emergency contact name parade
All 3 have emergency contact fields...
I should show you how to set pycharm to use 4 spaces for json
I was going off of what conflunce said
I added the emergency contact fields and a function to split full name to first & last for any role description
I think your pycharm is set to 2 spaces for json files not 4 like mine is (4 is also more readable and matches python)
I am starting the payload testing for those 3 campaigns
Ok . Hmm I did have to reformat I noticed it was a bit wide after creating the map.
Maybe I’ll have to make the adjustment in the builder code
Do you know who this Tony dude is from dicello?
and 2 are signed but none are filled out properly
I can, but i won’t be home until 9:30 ish
yes, we will test the 2 others and mention the missing questionids. I may look for a 3rd case type...
I can fill one out and then send a test
Santa Clara was almost done, did I push any of that?
Of course not, I must have bailed because of the afff
Same questions , map
When we sent them the questions, did we send all the tabs? And was it the JSON or CSV files from dumplrquestions?
I think we sent them everything
Though they was never a map for s1 and that junk
They have always been in the lr_questions files
I will send them a list of campaigns that are missing questionids and their respective CSVs
I was going to do that tomorrow morning . Let me know if you decide not to
I have pushed a fix for the error email
Ok I test both St. George and Nec, only one errored right ?
I didnt look
1799 - nec - should be good to go after removal of mothers middle name field (test needs to be removed and test needs to be removed from apitriggers address) 1805 - st george - test came back good to go (test needs to be removed and test needs to be removed from apitriggers address) 1915 - chowchilla - should be ready for testing. test api needs to be flipped 1949 - paraquat - should be good to go but missing casetype/parent matter ids.
also
File "/workspace/main.py", line 61, in main
new_endpoint(obj)
File "/workspace/new_endpoint.py", line 36, in new_endpoint
importlib.import_module(f"{obj.log_row['case_type_id']}.main").main(obj)
File "/workspace/1949/main.py", line 9, in main
update_mailing_street_name(obj, "InjuredParty", "8", "9")
File "/workspace/new_endpoint.py", line 178, in update_mailing_street_name
role = find_role_from_description(obj, role_description)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/new_endpoint.py", line 112, in find_role_from_description
raise ValueError(f"Role {role_description} not found in roles")
ValueError: Role InjuredParty not found in roles"
this still needs to be resolved i just removed the injured party functions from the main.py
The addition of the function can be implemented again but removed it so we don’t get that error
started working on the chowchilla mapping, i'll finish it up and main py tomorrow morning
2074 - 773585 638 - 440234 1949 - 721228
they didn't mention anything about reviewing our tests so far right ?
we only mentioned it, we have not sent the ids yet
not one of the tests. that was a final
but if he approves then we can backfill
oh... well if thats the case, i'll need to double check the san bernardino case type id
because it came in, according to him, as paraquat
code is fine according to the spread sheet
so it might be an error on their end if you want to bring it up
sent the emergency contact updates
resend the leads that failed the earlier testing when you get back
for the contact issue, that will be 600, 603, 1915, 1805
which of these were you? 373279 777419 744431 800664 801638 745826 797053
re-trigger 724554 750633 799792 796124 787039
did you remove test and send the following to the firm? 2001 - 801056 1998 - 714613 1977 - 802221 1806 - 802905
2044 and 1987 have been sent to them
im looking into errors from 1806 and 2001 right now
1806 i think is ready to send to richard
i sent a test , had some fields that weren't c- i'll send again for richard to confirm
richard approved of 1806 so i'll send that to them
yeah 2001 was missing a case type and parent matter, i added it
might need to make more changes, more functions. this questionnaire is horrible
write the code as needed, ask for assistance as needed. I can review when you generate the test
next one you, show @Richard Schnitzler so he can start helping. both mapping & main.py
you told/asked richard already so he doesn't think im ambushing him
yes, after i sent you the message he want to take a crack at 1, so he is working on 2046
it errored i'll have to check tonight
File "/workspace/main.py", line 61, in main
new_endpoint(obj)
File "/workspace/new_endpoint.py", line 68, in new_endpoint
remove_empty_roles(obj)
File "/workspace/new_endpoint.py", line 186, in remove_empty_roles
role['ssn'] = format_ssn(role['ssn'])
~~~~^^^^^^^
KeyError: 'ssn'
The roles in 1941 mapping are missing a bunch of the standard fields: businessName email phone ssn
When I get home I’ll fix that and send another test
Trinity Private School Abuse - DL - Flatirons - Shield Legal 2009 next for me
i mean it can be lol
File "/workspace/main.py", line 61, in main
new_endpoint(obj)
File "/workspace/new_endpoint.py", line 51, in new_endpoint
<a href="http://logger.info">logger.info</a>(f"[{data['Lead ID']} / {data['Lead Data']['CaseTypeId']}] deleted questions: {len(del_questions)}")
~~~~^^^^^^^^^^^
KeyError: 'Lead ID'
looks like that lead id issue is happening
the push with the fix was just pushed a couple of minutes ago
you see my comment about the missing questionnaire
this is the same lead we looked at ?
Carter came in asking about Abe's most recent email
asking why we aren't finish baby formula's backfill before jumping to the next one
asking why we aren't finish baby formula's backfill before jumping to the next one
Did you give him an answer? Or I can stop by when I get back
he wanted someone to answer abe, be it him or you
I will talk to him when get back
603 errors fixed
you want me to resend the san bernardino test
MD Juv Hall Abuse - DL - Flatirons - Shield Legal - 1675 806462 Porterville Developmental Center Abuse - DL - Flatirons - Shield Legal - 2041 807826 St Paul School Sex Abuse - Dicello - Flatirons - Shield Legal - 1804 808894 New Hampshire YDC Abuse - DL - Flatirons - Shield Legal - 1791 748367 LA Wildfires Flyer - DL - Flatirons - Shield Legal - 1995 733196 Illinois Juv Hall Abuse TV - DL/BG - Flatirons - Shield Legal - 1717 809062
re-trigger all of these and san bernardino?
1995 - Remove L8 2009 - Remove L8 2015 - Remove L8 2044 - Remove L10 293 - Remove L20 303 - Remove L9 518 - Remove L16 599 - Remove L8 606 - Remove L9 2016 - Remove L8 2040 - Remove L8 2045 - Remove L12 2046 - Remove L8 2064 - Remove L8 2072 - Remove L11 2074 - Remove L15
```def checkphone(obj: IntegrationMappingObject): data = obj.mapping intake = obj.lrfields roles = data["roles"]
re_number = re.compile(r"[^\d]")
if data['account']["phone"].strip() and len(re_number.sub('', data['account']["phone"].strip())) > 10:
raise ValueError(f'[{intake['Lead ID']} / {intake['Lead Data']['CaseTypeId']}] Phone number invalid')
elif data['account']["phone"].strip() and len(re_number.sub('', data['account']["phone"].strip())) < 10:
data['account']["phone"] = ""
for role in roles:
if role["phone"].strip() and len(re_number.sub('', role["phone"].strip())) > 10:
raise ValueError(f'[{intake['Lead ID']} / {intake['Lead Data']['CaseTypeId']}] Phone number invalid')
elif role["phone"].strip() and len(re_number.sub('', role["phone"].strip())) < 10:
role["phone"] = ""```
unfortunately did not resolve the issue, still does not see the injured party role
SELECT id,
contact_id,
lead_id,
case_type_id,
triggered_at,
destination,
external_id,
processed_at,
response,
document_response,
status
FROM integrations.integration_log il
WHERE
external_id IS NOT NULL
AND response ~~ '%[20%'::text
AND NOT destination_disabled
AND (EXISTS(SELECT 1
FROM integrations.integration_log il2
WHERE il2.lead_id = il.lead_id
AND il2.destination = il.destination
AND (il2.processed_at BETWEEN il.processed_at + interval '1 minute' AND il.processed_at + interval '1 hour')
AND il2.external_id IS NOT NULL
AND il2.response ~~ '%[20%'::text))
AND document_response NOT ILIKE '%test-%'
AND document_response NOT ILIKE '%tester-%'
AND document_response NOT ILIKE '%mock-%'
AND document_response NOT ILIKE '%-test%'
AND document_response NOT ILIKE '%-mock%'
ORDER BY triggered_at DESC;
From Call Center: > 2 new RUSH campaigns to set up: > > DL Flatirons > > Riverside JDC > CAP of 35 > > Sacramento JDC > CAP of 35
any confirmation on whether or not they are getting integrations? if not I'll post a jira ticket and ask
We can ask @Malissa but I would assume so
Abe & Nic C say make sure the data is good and less rushing. Means we wait for their IDs and do not send emails.
In the future lets only send the general case questions & maybe form fields tabs and filter out the labels (column G = Single Line Text (Formatting Only))
Please review https://github.com/shield-legal/gcp-integrations/pull/243
Lets not include the new upload docs endpoint in this test for 1686
ok Then i'll wait till you get in. for you to merge the 1686 branch for me to send the lead
[["569794-Jonathan Tovar-Intake.csv", "<Response [403]>", "{\"Message\":[{\"message\":\"This session could not be mutually authenticated for use with the REST API\",\"errorCode\":\"MUTUAL_AUTHENTICATION_FAILED\"}]}"], ["569794-Jonathan Tovar-IntakeForm.pdf", "<Response [403]>", "{\"Message\":[{\"message\":\"This session could not be mutually authenticated for use with the REST API\",\"errorCode\":\"MUTUAL_AUTHENTICATION_FAILED\"}]}"], ["Jonathan-569794-SignedContract-FullySigned.pdf", "<Response [403]>", "{\"Message\":[{\"message\":\"This session could not be mutually authenticated for use with the REST API\",\"errorCode\":\"MUTUAL_AUTHENTICATION_FAILED\"}]}"], ["Jonathan-569794-SignedContract.pdf", "<Response [403]>", "{\"Message\":[{\"message\":\"This session could not be mutually authenticated for use with the REST API\",\"errorCode\":\"MUTUAL_AUTHENTICATION_FAILED\"}]}"]]
and I just confirmed that i did flip back to the original upload docs function and test is still on the api url
File "/workspace/new_endpoint.py", line 430, in upload_docs
doc = [response for response in signed_responses if filename in response][0][filename]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
File "/workspace/new_endpoint.py", line 430, in upload_docs
doc = [response for response in signed_responses if filename in response][0][filename]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
"Jonathan-569794-SignedContract.pdf", "<Response [403]>", "{\"Message\":[{\"message\":\"This session could not be mutually authenticated for use with the REST API\",\"errorCode\":\"MUTUALAUTHENTICATIONFAILED\"}]}"
review: https://github.com/shield-legal/gcp-integrations/pull/244 you will not be able to approve since you created it. mostly look at the new docs endpoint. maybe we should have @Richard Schnitzler look at it?
but now we can see the logs and payload
File "/workspace/main.py", line 61, in main
new_endpoint(obj)
File "/workspace/new_endpoint.py", line 97, in new_endpoint
check_for_c(obj.mapping)
File "/workspace/new_endpoint.py", line 265, in check_for_c
check_for_c(value)
File "/workspace/new_endpoint.py", line 271, in check_for_c
check_for_c(item)
File "/workspace/new_endpoint.py", line 267, in check_for_c
raise ValueError(f'c-#### detected in data: {g.group(0)}')
ValueError: c-#### detected in data: c-4789
from mapping.json
{
"questionId": "a0PVT00000QUv332AD",
"questionnaireId": "a0RVT0000073hHJ2AY",
"answer": "c-4789",
"answerType": "STRING"
},
what would an error look like if it was looking for the custom field and couldn't find it ?
let me try running it locally
check that the mapping is correct for that case type. that question does not exist in the questionnaire builder on any tab
I thought that might be the case. well if we had wrong questionnaire, custom fields would be showing up
it could be just that quesiton, they might have just removed it
though i can't find it in the form settings
lr_dump pulls from db. db dump does not delete questions when removed from lr.
ah ew... well, i can delete the question from the map then
Confluences is updated for all of them
data["matter"]["status"] = postgres.query('SELECT name FROM lead_status WHERE id=%s', (intake['Lead Data']['StatusId'])[0]
can you bring up sacramento please?
sac was added by sahil this morning
FileNotFoundError: [Errno 2] No such file or directory: '2138/mapping.json'
2066 2067 have the same error as above
all fixed in a few minutes
and on the second time they were null
you said these had two automations
the dates in the log are a day different. if you used a prod lead for testing then it would have been sent again when i sent the backfill
right, but my curiosity is that the first time they sent fine, but on the second sent they were sent with null values
but.... it shouldnt matter right? because it can't be overlapped
correct, and I cannot find null in the most recent payload
maybe its something on their side doing a comparison
yeah when he comes back i want to ask about that
because if it gets sent again, nothing is going to change so its kind of a moot point
Can you verify that LR just did not send the email for the following leads and retrigger if that is the case: 426639 429504 500122 513863 618392 709104 420364
429504 got sent via email but errored
429504 got sent via email but errored
709104 never got signed declined retriggered
709104 never got signed declined retriggered
add signed declined to Illinois Juv Hall Abuse TV - DL/BG - Flatirons - Shield Legal
you did both or you want me to do both
add status to campaign I retriggered lead
let me know when you can merge that so i can finish retriggering 640
done, how is 601 going?
richard is doing it
```def normalizephonenumber(s: str) -> str: # Strip all non-digits digits = re.sub(r"\D", "", s)
if len(digits) >= 11 and digits[0] == "1":
# Remove first digit (the leading 1), keep only 10 digits
return digits[1:11]
elif len(digits) == 10:
return digits
else:
raise ValueError(f'[{intake['Lead ID']} / {intake['Lead Data']['CaseTypeId']}] [{role["roleDescription"]}] Phone number invalid: {role["phone"]}')
return ""```
Lets try to get all 30 DL errors taken care of today
yeah working on 598 now, there a billable decline. you want me to add it just for this lead and remove it ?
yes, and let @deleted-U04GG7BCZ5M know that it is a re-trigger
https://tortintakeprofessionals.lawruler.com/update-lead.aspx?lead=455742
this lead is erroring
ValueError: [455742 / 604] Injured Party is a Decedent and cannot be the signer
but there is nothing on the lead that is saying they are deceased
there are questions but they are not answered
im starting to see a tread where the injured party is the signer when signed but eventually the signer/injured party has passed since
what do you want to do about that
https://tortintakeprofessionals.lawruler.com/update-lead.aspx?lead=519028 here is a lead where the signer IS actually a minor with no other information
Add the following to the main.py before the handle_elg function call
if 'test' in data:
obj.postgres.update_response(obj.log_row['id'], f'<Response [000]> {json.dumps(data, indent=4)}')
return ''
Also look through the email thread with the subject of REQUEST: AFFF PFAS Military Base Exposure - Levinson - ELG - MC CA - Shield Legal Test Lead Sent
I also think they have a test endpoint...
Here are most of the options for representationtype
dont forget to add "test": "true" to the mapping
Cool I was going to ask about that.
Looks like no test end point, unless im missing it on the email chain. made the adjustments
for ELG the url should still be Stage since we have not sent to their sandbox yet
for ELG the url should still be Stage since we have not sent to their sandbox yet
Ah yeah I switched it back for some reason
this is the lead i was testing ELG
i was trying to send them a staging test but... the email wont go out
and no there is no reason it should be in spanish
```def checkdecedentobj(obj: IntegrationMappingObject, objwithname: dict[str, str], question: str, valid: str = 'yes', dodfield: str = None): intake = obj.lrfields data = obj.mapping roles = data["roles"]
is_deceased = True
if dod_field:
dod = intake[dod_field].strip()
if dod:
dod = datetime.strptime(dod, '%m-%d-%Y').date()
open_date = datetime.strptime(data['matter']['openDate'], '%Y-%m-%d').date()
is_deceased = dod < open_date
for role in roles:
if role['roleDescription'] == 'InjuredParty':
injured_first = role['firstName']
break
if intake[question].lower().strip() == valid and is_deceased and injured_first != data['account']['firstName']:
obj_with_name["roleCategory"] = "Decedent"```
the code was running into an error where the date of death was before the lead was signed and I think it was erroring because of taht
so i added the clause to check the first names of injured party and signer to make sure that it wouldn't break
```def checkdecedentobj(obj: IntegrationMappingObject, objwithname: dict[str, str], question: str, valid: str = 'yes', dodfield: str = None): intake = obj.lrfields data = obj.mapping roles = data["roles"]
is_deceased = True
if dod_field:
dod = intake[dod_field].strip()
if dod:
dod = datetime.strptime(dod, '%m-%d-%Y').date()
open_date = datetime.strptime(data['matter']['openDate'], '%Y-%m-%d').date()
is_deceased = dod < open_date
for role in roles:
if role['roleDescription'] == 'InjuredParty':
injured_first = role['firstName']
break
if intake[question].lower().strip() == valid and is_deceased and injured_first != data['account']['firstName']:
obj_with_name["roleCategory"] = "Decedent"```
also elg says that the test is good and they are ready to go live wheneve r
it worked when i changed it to obj vs name
601 can be merged, turned on, and backfilled
started
Please review https://github.com/shield-legal/gcp-integrations/pull/268 when you get back
merged
ill re trigger the rest once i finish that
ill re trigger the rest once i finish that
yep already done