{"query":"Capture and Inspect Logs","corpusVersion":"local","generatedAt":"2026-11-02T06:34:05.558Z","results":[{"blockId":"fieldloop.ingest#capture-and-inspect-logs","pageId":"fieldloop.ingest","title":"Capture and Inspect Logs","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#capture-and-inspect-logs","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"capture-and-inspect-logs","kind":"task","productArea":"fieldloop","score":2933.415221917596,"reasons":["search_match","title_match","display_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"# Capture and Inspect Logs\n\nCapture the application facts that explain a behavior question. Keep the original records until their admission is known."},{"blockId":"fieldloop.ingest#inspect-logs","pageId":"fieldloop.ingest","title":"Inspect Logs","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#inspect-logs","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"inspect-logs","kind":"task","productArea":"fieldloop","score":2054.566310139053,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Inspect Logs\n\nOpen Logs, choose the intended time range and source, then inspect the original record, relationships and processing state. Captured messages, context, trajectories and feedback remain distinct fields rather than a synthesized replacement for what happened.\n\nRead receipt counts for accepted, duplicate, conflicting and rejected rows. A processed batch can still contain row-level outcomes that need attention."},{"blockId":"fieldloop.ingest#submit-captured-records","pageId":"fieldloop.ingest","title":"Submit captured records","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#submit-captured-records","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"submit-captured-records","kind":"task","productArea":"fieldloop","score":1378.0001011024442,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Submit captured records\n\nUse the source's supported submission path with the configured destination. Application-library calls can submit batches and inspect receipts without installing a CLI or signing in through a browser.\n\nFollow the [Python](/docs/sdks/python), [TypeScript](/docs/sdks/typescript) or [Go](/docs/sdks/go) quickstart for a complete batch example, or use the [Fieldloop REST guide](/docs/public-api/fieldloop).\n\nProvide a Fieldloop submission credential through your application's approved secret mechanism. A newly created Fieldloop key grants that capability across its workspace; the sender still identifies the Project and source. Existing more restricted keys keep their restrictions.\n\nPreserve the exact batch content and idempotency key when recovering an uncertain request. A successful admission does not mean every row has completed processing."},{"blockId":"fieldloop.ingest#object-and-state-changes","pageId":"fieldloop.ingest","title":"Object and state changes","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#object-and-state-changes","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"object-and-state-changes","kind":"task","productArea":"fieldloop","score":1043.3282752972766,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Object and state changes\n\nSubmission records durable intake and admits processing work. Processing publishes the captured log and its attributable snapshot. Further analysis can create or update Threads separately.\n\nSDK buffering can acknowledge memory before server admission. It is not a disk outbox or a guarantee of crash delivery. Caller-owned cancellation and recovery should preserve the exact source records and batch identity."},{"blockId":"sdks.python#example-capture-one-application-record","pageId":"sdks.python","title":"Example: Capture one application record","pageTitle":"Python SDK Quickstart","url":"https://teammately.ai/docs/sdks/python.md","humanUrl":"https://teammately.ai/docs/sdks/python#example-capture-one-application-record","markdownUrl":"https://teammately.ai/docs/sdks/python.md","sectionId":"example-capture-one-application-record","kind":"quickstart","productArea":"developer_tools","score":896.2648626093945,"reasons":["search_match","term_match","prefix_or_fuzzy_match"],"markdown":"### Example: Capture one application record\n\n```python\nimport os\nfrom teammately import Batch, Client, FieldloopScope\n\nclient = Client(api_key=os.environ[\"TEAMMATELY_API_KEY\"])\nscope = FieldloopScope(\n    organization=os.environ[\"TEAMMATELY_ORGANIZATION\"],\n    project=os.environ[\"TEAMMATELY_PROJECT\"],\n    source=os.environ[\"TEAMMATELY_FIELDLOOP_SOURCE\"],\n)\nlogs = [{\n    \"source_event_id\": \"support-ticket-1042:reply\",\n    \"occurred_at\": \"2026-10-31T09:30:00Z\",\n    \"input\": {\"question\": \"Has my bicycle shipped?\"},\n    \"output\": {\"reply\": \"Your bicycle is being packed.\"},\n}]\nbatch = Batch.prepare(logs, idempotency_key=\"support-ticket-1042:batch-1\")\nreceipt = client.fieldloop.submit_batch(scope, batch)\nprocessed = client.fieldloop.wait_receipt(scope, receipt.batch_id)\nprint(processed.accepted_count, processed.duplicate_count,\n      processed.conflict_count, processed.rejected_count)\n```\n\nReplace this fictional record with selected, redacted application content. Your application owns event and batch keys; keep the key stable for the same logical batch. Teammately supplies destination and receipt IDs."},{"blockId":"fieldloop.ingest#success-criteria","pageId":"fieldloop.ingest","title":"Success criteria","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#success-criteria","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"success-criteria","kind":"task","productArea":"fieldloop","score":895.2335547807994,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Success criteria\n\n- Records reached the intended Project and source.\n- Original content and event identities are preserved.\n- Admission and processing outcomes are understood separately.\n- Credentials do not appear in logs, reports or copied tasks."},{"blockId":"fieldloop.ingest#prerequisites","pageId":"fieldloop.ingest","title":"Prerequisites","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#prerequisites","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"prerequisites","kind":"task","productArea":"fieldloop","score":880.3316518396217,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Prerequisites\n\n- The intended workspace, Project and Fieldloop source.\n- Authorization to submit to that destination.\n- Actual captured content and stable application event identities.\n- Explicit source processing consent where screening is enabled."},{"blockId":"fieldloop.ingest#common-failure-modes","pageId":"fieldloop.ingest","title":"Common failure modes","pageTitle":"Capture and Inspect Logs","url":"https://teammately.ai/docs/fieldloop/ingest-logs.md","humanUrl":"https://teammately.ai/docs/fieldloop/ingest-logs#common-failure-modes","markdownUrl":"https://teammately.ai/docs/fieldloop/ingest-logs.md","sectionId":"common-failure-modes","kind":"task","productArea":"fieldloop","score":875.5849169433378,"reasons":["search_match","page_title_match","term_match","prefix_or_fuzzy_match"],"markdown":"## Common failure modes\n\n- Using a key for another workspace.\n- Re-encoding changed content under the same retry identity.\n- Treating receipt polling as a new submission.\n- Assuming a captured record was analyzed without source consent.\n- Treating temporary client buffering as durable admission."}]}