Inspect BNI Connect Global's authenticated submitted-slips list and locate records matching {member-name} plus optional {amount}, {slip-kind}, {date}, or {slip-id}. Return complete matching row text, status/type context, and row-scoped edit links. This is read-only unless a separately confirmed edit is requested.
Use Cases
Use when verifying whether a submitted referral, TYFCB, or One-to-One slip exists or succeeded, or when discovering its exact edit URL. The preferred route is /web/secure/editSlips; /web/secure/referralTrackingSheet is a supported fallback and may be reached from a dashboard link. Do not submit or modify records as part of verification.
Automation Flow
- If authentication is required, navigate to
https://www.bniconnectglobal.com/login, fillinput[name="username"]andinput[name="password"]with runtime credentials, activatebutton[type="submit"], and wait for the authenticated portal. Never retain credentials or expose transient;jsessionidvalues. - Navigate directly to
https://www.bniconnectglobal.com/web/secure/editSlips. If unavailable, usehttps://www.bniconnectglobal.com/web/secure/referralTrackingSheet. Do not first visit the dashboard when a direct route works. - Wait for the rendered table, grid, list, cards, or same-origin iframe content, then run the extractor below with
{member-name}and optional filters{amount},{slip-kind},{date}, and{slip-id}. For a general success check, omit optional filters and inspect all matching rows. - Confirm a record only when its visible row contains the requested member and any requested kind, date, amount, or ID. Return every distinct matching row, including status/type text, complete visible text, links, and buttons.
- If the direct routes are unavailable and the dashboard is loaded, activate only the review control that sits next to the Submit TYFCB module — the one whose nearby context names TYFCB / business received. Labels follow the chapter's portal language (a Taiwanese chapter shows
審查beside收到的業務交易金額, an English one showsReviewbesideSubmit TYFCB); wait for the dialog/list and run the same extractor. - Use an observed row-scoped edit href directly when needed. One-to-One edit URLs conventionally look like
https://www.bniconnectglobal.com/web/secure/editOneToOneSlip?h={chapter-code}&slipId={slip-id}. Read both opaque parameters from the observed href; never guess them. Verify the visible row before opening an edit form. - If editing is separately requested, inspect the verified form first. For topic updates, use
textarea[name="topicsOfConversation"]with the native setter and bubblinginput/changeevents, save only after explicit confirmation, and verify visible post-save evidence. Navigation or dialog closure alone does not prove success.
Edit-slip extractor:
((memberName='',amount='',slipKind='',date='',slipId='')=>{const visible=e=>!!e&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length),clean=s=>(s||'').replace(/\s+/g,' ').trim(),low=s=>clean(s).toLocaleLowerCase(),member=low(memberName),kind=low(slipKind),wanted=String(amount).replace(/[^0-9.]/g,''),wantedDate=low(date),wantedId=String(slipId),money=/(?:(?:[A-Z]{2,3}\s*)?\p{Sc}|\b[A-Z]{3})\s*[0-9][0-9,]*(?:\.[0-9]+)?|[0-9][0-9,]*(?:\.[0-9]+)?\s*(?:[A-Z]{3}\b|\p{Sc})/gu,selectors=['table tbody tr','table tr','[role="row"]','.MuiDataGrid-row','li','.card','[class*="card"]','[class*="list-item"]'],seen=new Set(),rows=[];const scan=doc=>{for(const el of [...new Set(selectors.flatMap(s=>[...doc.querySelectorAll(s)]))]){if(!visible(el)||seen.has(el))continue;seen.add(el);const text=clean(el.innerText||el.textContent);if(!text)continue;const amounts=[...text.matchAll(money)].map(m=>m[0]),normalizedAmounts=amounts.map(x=>x.replace(/[^0-9.]/g,'')),links=[...el.querySelectorAll('a')].filter(visible).map(a=>({text:clean(a.innerText||a.textContent),title:clean(a.title),ariaLabel:clean(a.getAttribute('aria-label')),href:a.href})),buttons=[...el.querySelectorAll('button,[role="button"]')].filter(visible).map(b=>({text:clean(b.innerText||b.textContent),title:clean(b.title),ariaLabel:clean(b.getAttribute('aria-label'))}));rows.push({text,amounts,normalizedAmounts,memberMatch:member?low(text).includes(member):true,amountMatch:wanted?normalizedAmounts.includes(wanted):true,slipKindMatch:kind?low(text).includes(kind):true,dateMatch:wantedDate?low(text).includes(wantedDate):true,slipIdMatch:wantedId?(text.includes(wantedId)||links.some(x=>x.href.includes(wantedId))):true,editLinks:links.filter(x=>/edit|修改|編輯|编辑/i.test([x.text,x.title,x.ariaLabel,x.href].join(' '))),links,buttons,tag:el.tagName.toLowerCase(),className:typeof el.className==='string'?el.className:''})}for(const f of doc.querySelectorAll('iframe'))try{if(f.contentDocument)scan(f.contentDocument)}catch(_){} };scan(document);const c=rows.filter(x=>x.memberMatch&&x.amountMatch&&x.slipKindMatch&&x.dateMatch&&x.slipIdMatch),matches=c.filter((x,i)=>!c.some((y,j)=>i!==j&&y.text===x.text));return{query:{memberName,amount,slipKind,date,slipId},matchCount:matches.length,matches}})('{member-name}','{amount}','{slip-kind}','{date}','{slip-id}')Possible Friction Points
/web/secure/editSlipsis the preferred direct authenticated verification route;/web/secure/referralTrackingSheetis a supported fallback.- Submitted lists mix TYFCB, referral, and One-to-One rows. Match visible member, type, date, status, amount, and complete row context together; do not rely on row order or column position.
- Amounts follow the chapter's currency —
NT$, full-widthNT$,TWD,$,€,£, … — with spaces and thousands separators. The extractor matches any currency symbol or ISO code and compares on the normalized digits, so pass{amount}as digits. - Rows may be tables, Material UI grids, lists, cards, or same-origin iframe content. Deduplicate identical complete row text.
- Edit controls are row-scoped and may expose targets through href, title, aria-label, or localized text. Never infer IDs from position.
- One-to-One edit URLs require the observed opaque
hchapter parameter andslipId; never fabricate either value. - Dashboard review controls must be qualified by nearby Submit TYFCB / business-received text in the portal's language (e.g.
審查next to收到的業務交易金額); do not click arbitrary review controls. - Authentication may append a transient
;jsessionid=...; preserve the session but never hard-code or expose it. Keep credentials, cookies, and session URLs runtime-only.