https://developers.google.com/gmail/api/reference/quota https://developers.google.com/apps-script/guides/services/quotas
Do not retrigger VGA, we will talk about it tomorrow. Check the microsoft url share link thing.
Just saw this, like 125ish. Did have a 25% fail rate but starting to resubmit those flows this am
<<Lead ID>>%% <<Lead First Name>>%% <<Lead Last Name>>%% <<CellPhone>>%% <<Address1>>%% <<City>>%% <<State>>%% <<Zip>>%% <<date of birth>>%% <<email>>%% <<ssn>>%%
Can you forward me a gaming email with the missing last name?
also when you get a chance can you send a test automation email from lawruler with docs to dataprocessing@lorecenter.com ?
try test for vga. then send test with docs to imap (any campaign).
I think part of the problem is that we have 2 automations for vga. 1 for re-trigger (mpa) and 1 for test dispo (you and imap)
any updates on when you will get here?
Swgas still here maybe another 20 before they leave and I can head over
in the data dict does only the fields filled out need to be filled out?
I think that is my issue with the 500 error. I was not sending that dict...
Yea the bridge engineer confirmed at least one Key value has to be sent
Hmmm, odd but then again it is elg so that system is not the greatest per their own engineers
does this matter url look fine? <https://api.bridgify.com/venture/openapi/v1/matter?email=janetesting%40test.test&externalId=595801&firstName=Jane&lastName=Testing&matterType=PFAS&phone=%2B19874123650&vendor=Shield+Legal>
maybe its the +1 in the phone number?
in an email 6 days ago you use a different key than the one you gave me...
it was the +1. matterid: 5e5af2ed6834417ea2504602fd6655cf
have you gotten a document to upload for PFAS? I got a 400 error
I have was going to use the intake pdf off the test lead
{
"inputs": {
"name": "upload_value",
"value": "@{variables('api_upload_url')}@{items('Upload_Attachments')?['Name']}&SACaseNumber=@{variables('opportunityid')}&Category=@{variables('category')}&Subcategory=@{variables('subcategory')}"
},
"metadata": {
"operationMetadataId": "fa95305d-7e3b-4daa-a1bf-782b00b1ecbb"
}
}
still waiting on the vga doc category controls. are you going to respond to branden?
Will send the controls in a bit. Yes I can respond to Brandon. But to confirm no new case type correct?
Also a bit means around 4:45ish
Apparently matterids are not deleted after 24 hours for pfas
Still updating the VGA flow for these categories, But I am building it like this flow. So you should be able to get an idea of how the mpa structures the code based on this. Headed into to doc now but will be back online at 12ish
dont worry about wagstaff. just powerport, vga and replying to lr
Update matter works by our lead id and then just pushing an updated payload. Cindy never clarified if the updated payload overwrites all the info for that id or just overwrites the existing keys that have a new value.
whats the status of the email to Sean from bay point?
vga sa test leads: 2400481 2400482 2400483
Uploading: "489009-Jack Benson Tester-Intake.csv" as "Plaintiff - Other" Uploading: "489009-Jack Benson Tester-IntakeForm.pdf" as "Plaintiff - Initial Intake Questionnaire" Uploading: "Test-489009-SignedContract.pdf" as "Plaintiff - Retainer Agreement" Uploading: "Test-489009-SignedContract1.pdf" as "Plaintiff - Retainer Agreement"
Before you leave today we need that email sent to Sean at bay point
Hey did you see Rahul's email? He wants a sample payload
working on a curl
2400505 2400504 2400503 2400502 2400501 2400500 2400499 2400498 2400497 2400496 2400495 2400494 2400493 2400492 2400491 2400490 2400489 2400488 2400487 2400486
NEC Baby Formula - AWD - Wagstaff - Shield Legal -
{"source":"ladraftclipboard","value":[{"tokenKey":"ACDF66ADB3964C28BDDBDB76BC59D0DA","type":"enum","tokenExpression":"/API Integration Logs/Gaming Addiction - ML - Levinson","token":{"title":"/API Integration Logs/Gaming Addiction - ML - Levinson"}}]}
{"source":"ladraftclipboard","value":[{"tokenKey":"3C0D1591A9B2440383AE54D87FD45607","type":"enum","tokenExpression":"Sheet1","token":{"title":"Sheet1"}}]}
{
"inputs": {
"host": {
"connectionName": "shared_googlesheet_1",
"operationId": "PostItem",
"apiId": "/providers/Microsoft.PowerApps/apis/shared_googlesheet"
},
"parameters": {
"dataset": "1wWYTJU7PsITh1El_6B1JtVDmZI6uwEiLBobNJKPQeRI",
"table": "0"
},
"authentication": "@parameters('$authentication')"
},
"metadata": {
"1oOLCObxPUw9Es2rRdGOhnmz_Rh5mAQlhqVxe_7natKQ": "/API Integration Logs/ACTS CA Juvenile Hall Abuse",
"operationMetadataId": "49667b00-1bbd-40fb-8b63-3f23b8fbf10d",
"1wWYTJU7PsITh1El_6B1JtVDmZI6uwEiLBobNJKPQeRI": "/API Integration Logs/Gaming Addiction - ML - Levinson"
}
}
Morning Dustin, getting my car from the shop, should be in around 9:15
{\"Error:\":\"Nullable object must have a value.\"}
re-submit that vga lead. the code only sent docs not new lead
to make the definition.json pretty
Hi Ahsan. Cant recall if we were sending documents. They are using the builtin web2lead functionality of salesforce. its a pre-configured connector. At its core, Web-to-Lead is a simple HTTP POST request that sends form data from a website to Salesforce's Web-to-Lead endpoint. Here's the high-level flowThe form data is sent via an HTTP POST request to Salesforce's Web-to-Lead endpoint. Salesforce processes the request and creates a new Lead record with the provided information. They were copying that data to their intakes. The visitor is redirected to a specified URL after submission. [10:47 AM] Darrell McCracken
standard Web-to-Lead functionality does not support file or document uploads out of the box. [10:47 AM] Darrell McCracken
ndpoint accepts only application/x-www-form-urlencoded content type and not multipart/form-data needed for file uploads
can you tell me if Firefighting Foam - Carson_Aaron - ELG - Shield Legal is exported and uploaded to the mpa campaign folder?
533 Insurance Claims SIL - BCL - BCL - BLX is not uploaded
content_type = mimetypes.guess_type(name)[0]
6.5 minutes for 40, ~10 seconds per lead. 0 errors
I updated to run every 30 minutes. trigger 100. should do 50 at 6:30 and 50 at 7. if still no errors (I will check) then trigger more. We have ~2300 to trigger?
thats about 23 hours of processing, running twice an hour
you only triggered 50. not 100. I see no errors. took 8 minutes for 50. Please trigger 500
PFAS mapping with their fields. need to verify all fields we can map are mapped
When you can, can you send me the salesforce id for the powerport lead push from yesterday(1801 case #)
PROD - FireFoam - Velawcity / Donaldson / ELG (Pipedream) headers = { Ocp-Apim-Subscription-Key = d06b4359e4e9438d88a351a0df577e7c
x-pd-upload-body = 1 }
In your reply to Sean (Bay Point) include @James Turner as well.
[ { "leadid": 606431, "externalid": "a1D6T00000OOWLFUA5" } ]
<Response [201]> {"id":"a1D6T00000OOWLFUA5","success":"true"}
Powerport
β’ Stephanie's email stated to not send previous leads for backfill.
β’ Turned on gcp automation so all new leads
β’ Got final QA from Stephanie 10/18 @10:57am
What was the outcome of the meeting with Rahul?
Well enough. Rahul is requesting the exact log for fails where a 500 error occurred. He is pretty much acknowledging now it is not a concurrency issue. He is trying to pin it on a payload issue now. Which doesnt make sense because we had 200 calls in the middle of the sequence before and after the 500 calls. I think he wants the payload log so he can send his devs to pinpoint the issue on their end.
Those logs live on that table I dont have access to yea?
The logs he needs are in the zip, with a copy of the docs that cause the failure
Yea I sent those logs to him, He wants to see the exact payload though even though the zip has the payload. I think Rahul doesnt want to admit he cant read python. The code you had in the zip is very clear. I even explained to him the function calls the token from further up in the script and then sends the file from the folder in the zip. He wasnt entirely understanding.
We can fix that and remove the dynamicness to help him read it. Add it as a task in monday. If one of you want to try go ahead, just do not send until I review. Normal priority, due date Nov 1st.
Morning Dustin, having some car issues this am. Dropping car to the shop, should be in by 9:30
Hey Dustin, voting today so working remote.
re-trigger your test for 1794. I pushed a commit to fix it
What is the ETA on the powerport changes?
Double checking code but will push in a minute and ping you
We were only asked to integrate with Simmons on PowerPort, correct?
Yes, as far as I know. No other integrations were queued up with Simmons
Bridgify was for baypoint and elg stuff. That was only PFAS and Sexual Abuse as far as I know.
Powerport's fix pushed, please review the MR when you get a chance. Also test for AZ Juv for Meadow was retriggered.
I pushed more logging to 1794. Run a test when you get a chance and we should be able to see why it is choosing the wrong mapping file
<w:sdt>
<w:sdtPr>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="Calibri" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
<w:u w:val="single"/>
</w:rPr>
<w:alias w:val="INJURED NAME"/>
<w:tag w:val="INJURED NAME"/>
<w:id w:val="-45530416"/>
<w:placeholder>
<w:docPart w:val="B49A0D695315420D97DA6FFC59E5BFAE"/>
</w:placeholder>
<w:showingPlcHdr/>
<w15:color w:val="000000"/>
</w:sdtPr>
<w:sdtContent>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="Calibri" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
<w:color w:val="FF0000"/>
</w:rPr>
<w:t>Alicia Belli</w:t>
</w:r>
</w:sdtContent>
</w:sdt>
Looks like document.xml has everything
Can you send me the blueprint of the new office?
When i get back, let's work together on meadow
The 500 error for the docs for meadow is because there is a : in the filename. Might need to strip that out in the main.py. Pushing the names/phone #s over would be nice to do via the API, or I think we will have to do it manually.
Only one doc failed for the push. I can talk to Anthony about how files can be renamed in LR if they can be. If they can be renamed we can just retriever otherwise we could just upload that doc manually to them since we have access.
Morning Dustin. Feeling a bit sick this am. Going to work from home
Ok, let me know if you feel that you cannot complete the integration for Meadow
Already working on that right now. Will ping you for the MR so we can re-trigger
Mappings revised for vga, working on the bc verison and should push it shortly
Can you approve the MR when you get a chance so I can backfill meadow
Just the 1 mapping? whats the status for the vga crump meadow?
Mappings changed a bit on that one so in the middle of fixing that
its a different case type so another folder right?
quick update, meadow levinson leads triggered and processed. GCP took a while for the leads to push, switching back to bc meadow now. Will ping for the pr when ready
I retriggered 260ish vga leads. I will check logs and see what happened after lunch
looks like it hit the memory limit a couple of times. I have upped the memory limit
also is there way those could have gone to data@shield-legal?
Looks like you will need to retrigger the following since they have no logs: lead_id 632577 631388 632372 632772 544266 631862 632235 632327 631480 632018 631358 630955 631622 632589 631477 633088 632308 631047 632082 631212 631113
We need to reply about the crump cases. What case type had the deadline?
Please update the status of the ACTS fact sheet project: https://tortintakeprofessionals.monday.com/boards/5053948403/views/112014534
is PR#54 ready? or are you going to add more to it?
That is done that is the main vga stuff, about to push the ben crump in a minute, just confirming how crump is listed in SA from Ashleys email
Once you can, please merge in the vga bc case so I can fire a test lead
I can let you test from the MR to not require multiple merges during testing
Its a new case type so it is automatically setup to test, every push to the mr will redeploy the function & mapping with the changes
takes about 3 minutes (wait for the orange dot on the MR to turn to a green checkmark)
Did you disable Mark's automation for Arizona Juvenile Detention Center - ML - Secondary Interview?
I think I did but not a 100%. I can check in a it in it
Make sure she has an update in hand before you leave. Let her know that we can the them the SA IDs once the automation has finished processing (tomorrow morning)
https://developers.docusign.com/docs/esign-rest-api/quickstart/overview/
What is the status of the following monday tasks? https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7762987221 https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7788711604 https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7828238814 https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7835847115 https://tortintakeprofessionals.monday.com/boards/5053948403/pulses/7805742075
I think this means that at least 1 of the lights in our room will stay on if the power goes out.
Can you see if you can find Kelon Donnell in Meadows system? should be around SAID 2403755. this is for the crump/meadow campaign
Got the ERD in a good place, please check it when you can
Only thing I see is Lead Tag -> Tag is missing
```#LR_EMAIL6="ahsan@shield-legal.com"
https://dba.stackexchange.com/questions/83600/postgresql-create-index-memory-requirement
Also did you think of another way to do the DB table thing
We create a table that stores the change for every attribution for a single record. So like using the shield id would be our lower cardinality index used to filter the table on that record. Also we should log the date when that change is made
that does not make sense, the lead_history table is only added to and already has a date
does the createapitriggers_table function look like it creates the tables and triggers correctly? https://github.com/shield-legal/gcp-integrations/pull/66/commits/286caf851ba8586b142f1f7925cb4000e9d5fbab#
Eyeballing it yea but question. What happens if a value exists in api_triggers_table?
The table is only create if it doesnt already exist. Figured it out
ever seen something like:
SELECT DISTINCT leadid FROM public.lead_history where EXISTS(SELECT 1 FROM integrations.api_triggers, unnest(string_to_array(status_triggers, '|')) as split_value WHERE comment like '%' || split_value) and date>=%s
Gaming Addiction - ML - Levinson - Shield Legal (GCP - Webhook) (English)
Hey Dustin not feeling well this am. Going to work from today
532197 resulted in the same error from SA. blank result
Ok, I will check into the logs and the lead. There has to be some commonality that is causing the failure.
Do you know if we can post to SA with a specific status? ACTS is asking
Only if we create a custom field but I doubt we could use our case status
Here is a peak at what I am building from the DB:
The raw answer for which tier the case is (c-20324)
Nice. This will be perfect for the audit report. Also give us ammo/proof PD is causing difficulty. As far as I understand/explained to me. PD is the one that assigns the tier number
Did we send any VGA leads before GCP?
Gotcha. Might want to say in the email na will be sent tomorrow or something. One of the zero for 532197 Hernandez, I re triggered again this am. Havenβt checked the log but it should have generated an SA id this time
there is a chunk of 189 leads at the bottom that also never sent
Can you get me an export from their SA to add to this sheet to check if the logging broke?
I think I will send this report in the morning, since I have to get going
Hmmm yea I should be able to pull their report in the am
Maybe even regen the 4 tables it pulls from for the most up to date info
=ARRAYFORMULA(IF(C2:C="", "", INDEX('Meadow Export'!I2:I, MATCH(C2:C, 'Meadow Export'!A2:A, 0))))
Who all should be included in the email with this report?
and alex is acuozzo@baileyglasser.com?
Can you send me an export from Meadow of the gaming cases with the UDFs?
SA For Meadow
user: ShieldLegal@Meadowlawfirm.com pass: ShieldLegal01Pass!
Here is the email:
Hello Ashley,
We were looking further into this audit and discovered some discrepancies. It appears when a lead is pushed from our end into Smart Advocate. Smart advocate is not returning the correct SA ID and is transposing lead information. An example of this is #2403606. We have noticed a few examples of these kinds of instances. We have already alerted the Smart Advocate engineers about this and they are looking into this as we determine the wider ranging impact. Ashley is already on this thread.
It would be helpful for us to get a report out of Smart Advocate that shows lead information with the Smart Advocate ID and our Shield ID to narrow down the impact of this transposition.
Same name different people: 2404233, 2402259
```Hello Ashley,
We were looking further into this audit and discovered some discrepancies. It appears when a lead is pushed from our end into Smart Advocate. Smart Advocate is not returning the correct SA ID and is transposing lead information. An example of this is #2403606. We have noticed a few examples of these kinds of instances. We have already alerted the Smart Advocate engineers about this and they are looking into this as we determine the wider ranging impact. Ashley is already on that thread.
We are also seeing different leads that just have the same name get listed as a duplicate in the SA system. 2404233 2402259
It would be helpful for us to get a report out of Smart Advocate that shows lead information with the Smart Advocate ID and our Shield Intake ID to narrow down the impact of this transposition and false duplication.```
Is there an issue with using SA UDF short names vs long names?
Do you know if the fields have to be active?
Hmmm never have had to do that testing. Maybe but idk for that one. Lean more towards yes though
looks like you used long names for vga
Yea, initially did a mix and that was breaking so went long but on vga Ashley did uncheck the required fields so that maybe a wrinkle to consider
contacts as (
select **, CAST(source_reference AS INT) as lead_id from cnx1_tip.contact_data where source_reference ~ '^[\d\s]+$'),
calls as (
select
contacts.lead_id,
count(CASE WHEN direction = 'outbound' THEN 1 END) as outbound,
count(CASE WHEN direction = 'inbound' THEN 1 END) as inbound
from cnx1_tip_reporting.interaction_voice
inner join contacts on interaction_voice.customer_id = contacts.id
group by contacts.lead_id),
leads as (
select
lead.id,
lead.createdate as lr_created,
case_type.name
from "lr-data".lead
left join "lr-data".case_type on lead.casetypeid=case_type.id
where statusid in (1075, 1073, 3063)), --only in final, re-triggered, qa
comments as (
select leadid, date from "lr-data".lead_history where comment like '%Signed e-Sign' and leadid in (select leads.id from leads) order by date)
select
leads.id,
leads.lr_created,
leads.name,
(select date from comments where comments.leadid=leads.id order by date limit 1) as first_signed_date,
calls.outbound,
calls.inbound
from leads
left join calls on leads.id=calls.lead_i
Hey Dustin, having car trouble this am. Pretty sure my battery decided to die. Going to work from home today
Why was the d-is-for-data channel created? What is the purpose behind it?
Tldr, we need a single channel for all the data people, James, Brittneyβs team, us to prevent duplicate reporting requests to drop our lr usage
SELECT **
FROM `integrations-tip.gcp_integrations_postgres.lead_data_view`
WHERE case_type_id = 1705 -- enter case type here
and lead_id in (629052, 628646)
ORDER BY intake_processed_at
DESC LIMIT 1000
Meadows main complaints: β’ data not correctly populating SA β¦ example injured party name same as signer, example was 629052 β¦ Co Counsel not populating, gave SA id 250006, shield ids 629052 , 628646 β¦ suffix not appearing correctly in SA β’ Wanted daily report of leads sent in to SA. β’ Want Sign & Decline Findings: β’ data not populating because intake didnt fill out the right fields, example 628646, signer info not field out, link to screenshot and PD did not catch QA issue or let lead clear QA β’ Co Counsel fix implemented 11-19-24, for BC VGA and Levinson, leads sent prior were not resent so prevent duplication. Lead sent post 11-19 had co counsel. Multiple previous test sends showed no co counsel which meadow did not flag as an issue, since initial campaigns were levinson and Ghozland. Ghozland had the co counsel key value filed hard coded. Any loeads not having that appear were tbd as Levinson. β’ Miscoms for daily report. Initial was just a audit we ran to confirm no failed sends and to let Meadow know if a send failed. Copy of audit log was not specifically asked for. β’ Sign & Decline have to be added into payload, still to do.
This is the TLDR and the findings. So if you want to present this to Mal to send.
Add the following line before the if not data['case tier']: data['Case Tier'] = data['Case Tier'].title()
And after the if not data['case tier'] can we add a line for data['caseSubtype'] = data['Case Tier'] only if Tier is not populating in SA
Gaming Addiction - Meadow Law/Levinson/TC (TIP) - Shield Legal
β’ 591055
β’ 660081
β’ 660082
Gaming Addiction - Ben Crump Law - Meadow Law - Shield Legal
β’ 660106
β’ 660092
β’ 660093
What happened to power napping then logging in later?
Did you look at my branch for FI, any thoughts?
morning, just woke up. That nap was wild. Give me 15 to grab some coffee. I am pulling your branch in now though
Dont forget to read the messages in both groups he created
I am going to grab some lunch then work on the export to gcp_reporting file. Please let me know your thoughts on what I have found / changed so far
I think it might be helpful to get on a call to work together on this
I am free whenever. I have read the code and it makes sense, do get an occasional error for the filter schema even though it is in the same directory
So are we good on the output and I just need to format?
It looks like he is good with the rewritten output but you need to clarify with him about the format since he is also adding data in 2 columns
without "code with me" running my CPU is much better <50%
Has VGA BCL 1892 been tested? It looks fine, is it ready for merging?
will merge after done redeploying all to gcp to fix logging error
when generating your meadow reports, you can use what i have already done here https://docs.google.com/spreadsheets/d/14rtX2R7vDldRfPNEeY6U6xNSmayn-fj0KioaMa4RwWI/edit?usp=sharing
We should reply to Rahul from last night and ask what the values should be (since they are probably case sensitive)
https://documenter.getpostman.com/view/5921778/UVeJM5kQ#58b4c01b-291d-49a4-b04c-d71e90e1ba07.
you pr for meadow was not build from origin/main. want me to fix it
https://github.com/dustinsurwill/LiteSpeed
Close 1 of the 2 PRs for 1705 once the changes are combined
https://www.postgresql.org/message-id/060e2dde-fef6-1c31-bb09-097a13121375%40zzzcomputing.com
automations are still every half hour yea? need to retrigger 2 meadow bc leads
https://blog.jetbrains.com/junie/2025/01/meet-junie-your-coding-agent-by-jetbrains/
VGA secondary Map is completed and pushed to git, please review when you have a chance so we can π a test
No fire but just an update. LR is not sending emails out and is bugging so couldn't test secondary push. Send an update email to Meadow that token works and we are testing.
Having some car trouble this am, should be in by 10
Inbox Sort:
javascript:(new Promise((t,e)=>{let r=document.createElement("script");r.src="<https://www.kryogenix.org/code/browser/sorttable/sorttable.js>",r.addEventListener("load",t),r.addEventListener("error",t=>e(t.error)),document.head.appendChild(r)}).then(()=>{console.log("Script loaded!"),($t=$("div.inbox").find("table")).find("th:lt(3)").addClass("sorttable_nosort"),$t.find("th:gt(2)").each((t,e)=>{(e=$(e)).html(e.html().replace("button","span")).off("click"),e.find("span").removeClass("js-table-order-btn").off("click")}),$t.find("td:contains(%E2%80%94)").attr("sorttable_customkey","-1"),sorttable.makeSortable($t[0])}).catch(console.error))
Going through beckers report some of the values in the column make no sense. The case incident report has a column called plantiffcontactssn, every value is just a date time stamp. There looks to be a lot of transpositioning
the platiffcontactssn is probably just excel trying to be smart. if you can the column format it should fix it
Yea thought that too, but it is actually just a time stamp value.
Can you send me a copy of the files that do not require an account to view?
What do you mean to view? None of the csvs ask for any account info.
the full export file is xslx and asks for an account to view
Let plan on tomorrow afternoon working together on this reconciliation. We should be able to combine a LR report with the Case Wizard report and or integration logs into 1 sheet and use conditional highlighting to show what it changed or missing
I will clean the csv files tonight, some of the formatting is so off so we have some usable base
Dont worry about it. We are just pointing out the differences. I will show you how I would like it done. There should not be any manipulation of their data and any manipulation of our data will need to made clear
Alright I will see you in the am then, going to upload the raw csvs into the meadow channel so everyone has access.
I dont think that needs to happen since he included most of them in the email
With how we keep getting blamed, rather upload everything so the optics look better on us.
We need to draft an email to Rahul about the empty responses from yesterday:
SELECT ** FROM `integrations-tip.gcp_integrations_postgres.lead_data_view` WHERE intake_response = '<Response [200]> ' and external_id is null
The mapping updates for state, tier and cocounsel should be complete
When you get back write a draft email to ML notifying them that we will be testing and a list of the issues (not detailed). When it's ready, send it to me
Hello All,
We will be doing some testing for Gaming addiction. Some issues we are trouble shooting is the return id, udfs catching their appropriate values etc. There will be duplicate leads posting but we will be flagging those leads to you so you can delete them.
Best Regards; Ahsan Tebha Data Engineer
Do not worry about the google sheet
Also let them know that we are currently on the reconciliation as well. In the email update you will send
How far are you on that JSON of the columns from case wizard to our questions?
there was no case wizard report, so using the mlvgauds json you gave to match to our mappings
From Jon's email: Case Wizard - UDFExport252025113 PM3.csv
Hey to confirm, you want meadows udf and our udf not the lr udf from the intake yea?
{"meadow udf": "lr intake question"}
you cool with the ones meadow udfs that are from the secondary to be marked secondary or just leave them blank?
bout to fire off another batch but from the example I showed you the secondary is not catching on the new dup only the old one. So Should I just make fresh leads and fire? so We have 1 clean lead per case type?
Only worry about the intake. Are the intakes populating correctly?
Then Yes, firing 2 more dups one for each case to confirm. Btw is the most recent commit pushed to catch everything?
Main is not updated with my fixes, before I create unnecessary dups, can those changes be merged in. So I can confirm the fixes work.
What was the update with the testing?
The lev case threw a phone value issue. Fixed it and repushed. Going to send another test in about. The Backlog threw an SA = [0]id error or something. Not in front of pc to say exactly what. But will do more testing tonight.
Waiting on Mal to give ahead or send herself.
For this meadow report, do you want me to find the lr ids where they are blank?
column b has some blank lr values but we have an sa id. I can find the lr id from smart advocates system
Those will be duplicates and the code will not process them properly
ok just wanted to make sure you didnt want that column filled for those rows
Headed to Doc, will be on mobile for awhile. Huddle updates if its asked: β’ sent follow email to becker this am, awaiting word. 3 leads hit meadows system, the levinson is not returning sa id but posted correctly.
are we doing that morning huddle thing right now? In the meeting and no one is here
I ran into that yesterday. No virtual meeting
Also checked all the vga leads that hit Sa, they are all posting correctly. mapping is good now.
So what is the verdict from alex? We have Meadow in 30 minutes. Rather not say anything to rock the boat.
I dont have any information currently, you can leave that meeting to me
For the meeting then we need a few things from meadow. β’ Confirmation of the leads mentioned in the email are good. β’ Confirm no more changes to the payload. β’ Confirmation that the tier from subtype does not need to be updated since there is no endpoint for us to hit. β’ Confirmation we can fire off the secondary. If there is time, udfs for the other new campaigns.
Possible cleanup on their side but Jon has to talk to Julia and Ashley about it first
SO no secondary push since I think that qualifies as a big batch
currect. basically just pause the work on meadow for now
OK so do we want to setup for the other meadow integrations since we have the basics down?
But we have the basic PII unless they are going to change that stuff as well.
this is the line I wrote to solve that xbox ps issue:
data['Has the PNC used either Microsoft Xbox or Sony PlayStation consoles?'] = data['Has the PNC used either Microsoft Xbox or Sony PlayStation consoles?'][:3].strip(' ').title()
Please make sure the changes that need to be applied to the VGA intakes are in on the intakes branch before I remove them from the secondary branch
I force pushed
gotcha, so run those in the bench mark script then grab that file for the gcp
Your PR is now the code that is running for 1794
The name fails were because the responses were self or blank
I made the change to use your branch instead of prod at 4:10
It has to be changed in BQ before it gets used
so any sends you did before 4:10 used prod
For the two leads with bad name fields. How are we supposed to send those or do we need vss to do their qa process before we re-trigger?
the email from Alex? I talked to her about it
we do not need to do anything with those at the moment
Please finish this task: https://tortintakeprofessionals.monday.com/boards/5053948403/views/112014534 Here is the reference doc we made a while back: https://docs.google.com/document/d/17kQoBZ_0XS7KkloufHe213ZaQ3BqmOwfE8K4bWDezfA/edit?tab=t.0
What is the status of the ask from @Nicholas McFadden for Abe at DL?
Looking into why our mismatch lead count nearly doubled. We were around 680ish and then jump to 1300 when we added in the new filter. A doubling is concerning if the matches previously were correct
Or the emails associated to the med records are the provider emails and not the actual injured parties. Which would explain the jump
Look at the benchmark from yesterday, i think it was closer to 1k missing matches. The filter today was making the matches more accurate but does not apply to anything already hardcoded
I just removed the hard coded matches from the config file and there are only 1033 missing records
Well that is better than before. I will talk with McFadden and let him know. 1.5x is not as bad as nearly 2x. But going to dig into the number. Hopefully itβs just a particular campaign not catching
@deleted-U04GZ79CPNG told me about ~50 CPAP leads that we never sent, therefor that is a small amount of the missing matches
If you already got some lunch. Try to use that matching function to do the all campaigns match
Havent got lunch will do the matching right now as this fire is priority right now
Please open a PR to fix the gcp error for 1794. The fix is to change the [0] at the end of line 18 to [-1]
Hey should this line be changed at all even? It should work as is unless the value does not have 2 words to split on
# handling the full name split for signer
data['firstName'] = data['Name of Signer:'].rsplit(' ', 1)[0]
data['lastName'] = data['Name of Signer:'].rsplit(' ', 1)[1]
Each of the failures we had last time for this line the value was blank or self
That is the problem that happened this morning. There was not a space in the field. Changing the 1 to -1 changes the index from second occurance to last which allows it to populate the only element [0] if there is not a space in the field
[1] to [-1]. My mistake earlier, I was not fully awake
ok making changing and pushing
Please find and re-trigger the lead that broke
as well as set the error as resolved. I have merged your PR
Let's take a closer look on monday
578138 is the lead. SO we dont have to hunt again on monday
lead_id 673507 596204 656110 684177 666051 677490 583182 680506 651234 578122 652315
I already gave them access to our integration logs. We should not be giving SQL or direct access in BQ. If we need a live report, link BQ to a sheet
Could we pull the answers from the questions and do a unique count in order to do this ask?
email to rahul:
Hello Rahul and SA team,
We pushed some leads into the Smart Advocate system, and failed to get a return ID. We were getting a JSON decode error. We had six leads we were pushing into the system. Our IDs on there are the following:
578122 578122 583182 651234 656110 666051
I have included the payloads for these pushed.
Please let us know what the issue might be. Thank you for your attention to this matter.
Remove "We were getting a JSON decode error." The message seems a little repetitive. Maybe re-word to something like "We have six leads we are trying to push into Meadows system, but we did not get a Case ID from Smart Advocate. Our IDs...". Everything else looks good
run git pull --ff-only in the benchmark project
We both responded within 2 minutes of each other
so for the fix should be do a fix like length of signer field and
if len >3 fname, mid name, lname else len >2 fname, lname else ""
Not always there are edge cases otherwise I would have just done signer/claimant fields
I will pose the question to alex since she is the one do these interviews, in the ml channel
So for that challenge. I just have to make a cloud function that returns the output to a bq table and have g sheets hook to it?
I will describe it better in a few minutes
Did we send a chunk of camp lajuene cases around sept 19 to crump?
*Thread Reply:* Hmmm idk about that one. Maybe but Esteban or Olivia is better source for that. I think Dennis was also still on Brittneyβs team at that time so he might know as well
*Thread Reply:* The rest of us cannot find any written communication or lr activity logs related to this
*Thread Reply:* I will ask but I think most of them have already left for the day
*Thread Reply:* Hmmm. You think mark had an automation setup for them maybe?
*Thread Reply:* Olivia started that week if I remember correctly.
*Thread Reply:* No automation from LR triggered those leads 9/19
*Thread Reply:* Hmmm. Idk then unless it was one of the automations that got deleted. I know that bug popped up around that time but that is a shot in the dark
*Thread Reply:* Wouldn't it have left the activity log entry though?
*Thread Reply:* Maybe but that bug was messing with a lot of integrations van lawβs got messed with and refired some dups
Create a PR on https://github.com/shield-legal/lawruler-ui/ making a new folder that starts with func[a name...] and move the reports.py into it. Make a main.py that acts as the trigger for the function. We need a function that when given a list of case types (via get or post params), runs reports.reportpii_answers for each case type then dumps that into BQ creating a new table if not exists. There will be certain case types that require processing before dumping into BQ.
Also please add that task to the Monday task board
Add: func_**/**.py between lines 9 and 10 of .gitignore
git reset --hard origin/trigger-function
please add sys.path.append(os.path.dirname(__file__) + '/../common') before the line from common.cloudpostgres import Postgres and change common.cloudpostgres to cloudpostgres
sanatize table name (should be lowercase only letters, numbers and underscores). Hint: Line 53 case_types[] is what gives you the name
Hey Dustin, not feeling to well. Going to work from home.
Did you get the reports needed for the benchmark?
After that can you focus on the document name and categories for JDC?
Whats the update on the JDC doc renaming and categorization?
still going through it. IDK why it broke. On the Sa template where we do the doc push, we categorize it for the correct category and subtype. The subtype comes from the file name. Did we change the file naming scheme that is causing the miscategorization?
Maybe, check the latest that went through the integration? I also think part of it is they want the doc names standardized, so we have to put in code for that
Checked quite a few leads, our doc response is correct other than the csv, that gets marked as other. I have not found a lead where we sent a retainer or anything, confirmed the doc response with BQ. So idk what exactly is the issue on the docs. About to ping alex in the meadow channel for clarity.
Hey made a change on the SA template for my azjdc branch. Added a if statement to catch a csv as intake csv. Does this block make sense?
def upload_doc(key: str, sa_case_id: int, filename: str, content: bytes, hostname: str = '<a href="http://api.smartadvocate.com">api.smartadvocate.com</a>'):
logger = logging.getLogger(f'{__file__}.{inspect.currentframe().f_code.co_name}')
subcategory = [cat for search, cat in SUBCATEGORY_MAP.items() if search in filename]
if filename.endswith('.csv'):
subcategory = ' Initial Intake Questionnaire'
elif subcategory:
subcategory = subcategory[0]
else:
subcategory = 'Other'
logger.debug(f'Uploading: "{filename}" as "{subcategory}"')
response = <a href="http://requests.post">requests.post</a>(f'https://{hostname}/saservice/SAWebservice.svc/Receiver/UploadDocument', params={'filename': filename, 'SACaseNumber': sa_case_id, 'Category': 'Plaintiff', 'Subcategory': subcategory}, files={filename: content}, headers={'X-ApiKey': key})
<a href="http://logger.info">logger.info</a>(f'Got response to "{filename}": {response.__str__()} {response.text}')
return [filename, response.__str__(), response.text]
OK, made the changes and fixed the syntax issue. Went with the sec image fix.
My mistake, I forgot a line and the image did not show everything:
logger = logging.getLogger(f'{__file__}.{inspect.currentframe().f_code.co_name}')
subcategory = [cat for search, cat in SUBCATEGORY_MAP.items() if search in filename]
subcategory = subcategory[0] if subcategory else 'Other'
if subcategory == 'Other' and filename.endswith('.csv'):
subcategory = 'Initial Intake Questionnaire'
logger.debug(f'Uploading: "{filename}" as "{subcategory}"')
Does not need changing but the log line is doubled. (No effect on logic, no need to commit and push now)
You can try your hand at replacing the double replace with regex
google.api_core.exceptions.BadRequest: 400 Error while reading data, error message: Field name 'Are you currently represented by another attorney for this matter? (MUST BE NO) - [c-18876]' is not supported by the current character map. Please change your field name or use character map V2 to let the system modify the field names.; reason: invalid, message: Error while reading data, error message: Field name 'Are you currently represented by another attorney for this matter? (MUST BE NO) - [c-18876]' is not supported by the current character map. Please change your field name or use character map V2 to let the system modify the field names.
Yea James in traffic, just parked
you also need to remove the == [text] from the end of the lings since you are searching for the keywords at the beginning
if you will not be working monday please submit a pto request
Flatirons meeting tomorrow 1130-230
Working on the date rows for tonight so we should be good tomorrow am
DO not push payloads and intakes to github. Github is for code storage only
Also the arizona issue is probably the fact that there is only 1 plaintiff which means we need to shift from injured[name/zip/address] to [name/zip/address]. This is probably what rahul will respond with
We will need to add support to split the benchmark report output into multiple files by partner firm
gcloud config set project tort-intake-professionals
gcloud auth application-default set-quota-project tort-intake-professionals
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Yea, had to get towed in to shop. There by 11
gcloud auth application-default login
Your browser has been opened to visit:
<https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8085%2F&scope=openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fsqlservice.login&state=tUSZXisv0hPJsV2wWjg8PicaCS7soC&access_type=offline&code_challenge=a_2A7Ol6J_ePROmPOc91zhKojvj4hkbT6EzBkCBOCp4&code_challenge_method=S256>
Credentials saved to file: [C:\Users\Ahsan\AppData\Roaming\gcloud\applicationdefaultcredentials.json]
These credentials will be used by any library that requests Application Default Credentials (ADC). WARNING: Cannot add the project "tort-intake-professionals" to ADC as the quota project because the account in ADC does not have the "serviceusage.services.use" permission on this project. You might receive a "quota_exceeded" or "API not enabled" error. Run $ gcloud auth application-default set-quota-project to add a quota project.
google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/tort-intake-professionals/queries?prettyPrint=false: Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials.
edit to use pctid_data_from_excel_view
I can tell that the march 4th issue was a code issue not a sa not returning an id
thats why we needed the function logs which were only saving 30 days. now it saving 180 days of logs
do we know the issue, I dont think we updated the code in a while. OK
go through the vga leads that do not an external id and if they are not in meadows system please re-trigger
Want me to point 1705, 1749, 1794, 1892 to your branch?
yea in case they want a live test. Ghozaland though is a bit strange as some of the fields they want were not apart of criteria before. so I am updating those. Like none of the signer info is in there other than signer full name, we have the split in there but thats it
Want me to point 1705, 1749, 1794, 1892 to your branch?
So do we know if we are doing re-triggers or just updates in theri system, their email is not clear on what they want us to do
++++++++++++++++++++++++++++++++++++++++++++++++++++++
we need to re-trigger the leads that are missing and what ever else they want
L 56 in your PR prevents the sending the Meadow for 1892 if already sent
We need to use a different case type for the testg
I added a commit to your branch to allow duplicates on 1892
since you go tthe creds, do you want to run the test?
work on adding the case create via case sync api to the sa_login.py
also add functions for document upload and contact creation
get everything done before monday morning, so I can review and test with you monday
My mistake. You added a merge commit instead of pulling or reading when I said I added a commit to the branch. The github email made it look like it was merged. Then yes you are good to use that branch
We need to replace the sendinfo function in 1705 with thr new functions you created in salogin. Also is there a way to pass document categories during upload?
We can set doc categories so indirectly I think so
This would update the doc category: https://documenter.getpostman.com/view/5921778/UVeJM5kQ#aaac7e0b-267b-45c1-8e89-f079c9a09036
For that partner name fix would this block work from the comments?
for partner, obj in firms.items():
if partner:
filename = filename.replace('.xlsx', f'_{partner}.xlsx')
# filename = f'{filename}_{partner}.xlsx'
obj["workbook"].save(filename)
might as well get some actual work done, even though it is enjoyable to see sean squirm
but will end up with filename.xslx_partner.xslx
but will end up with filename.xslx_partner.xslx
how about this?
for partner, obj in firms.items():
if partner:
filename = filename.replace('.xlsx', f'_{partner}.xlsx')
# filename = filename.strip('.xlsx')
# filename = f'{filename}_{partner}.xlsx'
obj["workbook"].save(filename)
those comments would work. if that is only change. go ahead on main
My mistake. Just remove the templates. part of line 5
Oh, I was wondering why we got a fail notice from the log
Can you put the excel file you were working on Google drive so someone can work on the other mappings tomorrow?
ml new udfs, each column is the case number and each cell value is the line of code the udf lives on
Morning Dustin, not feeling well this am, super congested and bad cough. Working remote today.
Ok, after the daily Flatirons work on vga mappings but do not sent a test. Yhen work on documenting flatirons
Yea, want me to send him our mapping file of what we attempted to push?
No, just answer the questions in yellow and grey then fix the mappings in blue and move the ones in orange to comments in the main.py (you cannot put comments in the mapping.json)
Also replace Alex's BG email with her tort in your response
Your email was cut off in the yellow section. Also I thought the County and InjuredSuffix (most of the yellow) were for the contact card in SA
Yea, partially deleted stuff, just resent the completed email. This keyboard sucks
Be in 10:30ish. I can join the huddle or you can give my updates.
Making the crump vga intake and secondary leads.
Updating the levinson mapping based off maxβs feedback for another test on case they ask for one more.
Running through the flatirons code base with Edward today
We will send tests until everything is good
Ok, you want me to make a new test lead then for vga or we will resend the same lead but fix the payload?
the same lead should work. Daniel will open the meeting for you
for SA 2500369 β’ county for signer not caught β’ no middle name caught β’ no suffix everything else looks good
Enroute, if I donβt make it there in time. Updates, Edward did financials for fl. Emailed nancy. Working on the fl financials dashboard for looker. Working on the modeling
After reviewing this matter, we have temporarily halted the integration until the UDFs in SA can be updated to align with the new questionnaire. This update is necessary to facilitate the correction of the mapping, as our questions have been revised to the new questionnaire.
Make me a manager of those new channels
So we have specific singular coms for these firms, mcfadden asked me to.
Other than you and mcfadden, anyone else should be manager? Ward?
the crump channel was created by me last week. I just did not add you or anyone besides integrations and crump