Review Submitted TYFCB, Referral, and One-to-One Entries

Site bniconnectglobal.comTask review-submitted-tyfcb-entriesVersion v23Updated Aug 24, 2026Category browser-automation

Find and verify submitted TYFCB, referral, or One-to-One slips in BNI Connect Global using the authenticated submitted-slips list. This skill was captured from a live agent session on bniconnectglobal.com and is published here as a reusable recipe for agents.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

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

  1. If authentication is required, navigate to https://www.bniconnectglobal.com/login, fill input[name="username"] and input[name="password"] with runtime credentials, activate button[type="submit"], and wait for the authenticated portal. Never retain credentials or expose transient ;jsessionid values.
  2. Navigate directly to https://www.bniconnectglobal.com/web/secure/editSlips. If unavailable, use https://www.bniconnectglobal.com/web/secure/referralTrackingSheet. Do not first visit the dashboard when a direct route works.
  3. 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.
  4. 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.
  5. 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 shows Review beside Submit TYFCB); wait for the dialog/list and run the same extractor.
  6. 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.
  7. If editing is separately requested, inspect the verified form first. For topic updates, use textarea[name="topicsOfConversation"] with the native setter and bubbling input/change events, 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/editSlips is the preferred direct authenticated verification route; /web/secure/referralTrackingSheet is 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-width NT$, 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 h chapter parameter and slipId; 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.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=bniconnectglobal.com&task=review-submitted-tyfcb-entries