Weekly Report Summaries with AI Actions in Pipelines
So far in this series, we’ve explored how AI Actions can extract key details from emails and analyze complex documents like 10-K filings. Today, we’ll make it even more practical — automating weekly reporting. Many teams rely on weekly Quickbase reports to track key metrics, project updates, or customer issues. With AI Actions, you can now generate a concise AI-written summary of those reports every week — automatically. No manual copy-pasting, no rewriting dashboards, no time wasted on reading reports — just clear insights, delivered on schedule. Why Automate Weekly Summaries? Quickbase reports are great at presenting data — but stakeholders often want a digestible narrative: What changed this week? What trends are emerging? What should we focus on next? By scheduling a Pipeline, it can automatically: Pull a Quickbase report each week. Feed it to AI Actions along with some instructions. Store or email the AI’s analysis to your team. The Pipeline Flow Here’s how this works step by step: Schedule: A scheduled pipeline runs every Monday morning. Quickbase Actions: The pipeline fetches the latest report data (e.g., project updates, tickets, or KPIs). It stores it as a CSV in Quickbase. AI Action: The data is analyzed and summarized by AI in plain English. Quickbase or Email Output: The summary is emailed to key stakeholders. You can also watch the quick demo here: Pipeline YAML: # Report Summary (CSV) # # Account slugs: # - quickbase[REDACTED]: Realm Default Account <none> # - microsoft-outlook[REDACTED]: Georgi Peev (...) # <none> --- - META: name: Report Summary (CSV) crontab: 0 8 * * 1 crontab_timezone: America/New_York enabled: false - ACTION bucket pipeline_row define -> a: inputs-meta: date_format: '%Y-%m-%d' datetime_format: '%Y-%m-%dT%H:%M:%SZ' header_row: Project ID, Project Name, Status, Priority, Owner, Department, Region, Start Date, End Date, Budget, Description, Customer Name, Project Manager, Team Size, Completion, Risk Level, Last Updated, Client Satisfaction, Is Billable, Project Type, Revenue ($), Expense ($), Profit Margin (%) header_separator: ',' type_of_budget: number type_of_client_satisfaction: number type_of_completion: number type_of_customer_name: string type_of_department: string type_of_description: string type_of_end_date: date type_of_expense: number type_of_is_billable: boolean type_of_last_updated: date type_of_owner: string type_of_priority: string type_of_profit_margin: number type_of_project_id: string type_of_project_manager: string type_of_project_name: string type_of_project_type: string type_of_region: string type_of_revenue: number type_of_risk_level: string type_of_start_date: date type_of_status: string type_of_team_size: number name: Define table for report - QUERY quickbase[REDACTED] record search -> b: FILTERS: - AND: - status is "In Progress" <in progress=""> inputs-meta: export_fields: '"Budget ($), Client Satisfaction, Completion %, Customer Name, Department, Description, End Date, Expense ($), Is Billable, Last Updated, Owner, Priority, Profit Margin (%), Project ID, Project Manager, Project Name, Project Type, Region, Revenue ($), Risk Level, Start Date, Status, Team Size" <15, 23, 20, 17, 11, 16, 14, 27, 24, 22, 10, 9, 28, 6, 18, 7, 25, 12, 26, 21, 13, 8, 19>' table: '"AI Actions - Georgi Peev: Report Summary - Projects" <bvjypq5b3>' name: Fetch report records - b<>LOOP: - DO: - a<>ACTION bucket pipeline_row create -> c: inputs: budget: '{{b.budget}}' client_satisfaction: '{{b.client_satisfaction}}' completion: '{{b.completion}}' customer_name: '{{b.customer_name}}' department: '{{b.department}}' description: '{{b.description}}' end_date: '{{b.end_date}}' expense: '{{b.expense}}' is_billable: '{{b.is_billable}}' last_updated: '{{b.last_updated}}' owner: '{{b.owner}}' priority: '{{b.priority}}' profit_margin: '{{b.profit_margin}}' project_id: '{{b.project_id}}' project_manager: '{{b.project_manager}}' project_name: '{{b.project_name}}' project_type: '{{b.project_type}}' region: '{{b.region}}' revenue: '{{b.revenue}}' risk_level: '{{b.risk_level}}' start_date: '{{b.start_date}}' status: '{{b.status}}' team_size: '{{b.team_size}}' name: Add record to table note: match the column names from the query step - a<>ACTION bucket pipeline_row download_csv -> d: {} - ACTION quickbase[REDACTED] record create -> e: inputs-meta: table: '"AI Actions - Georgi Peev: Report Summary - CSV files" <bvjy9kdu7>' name: Create record for file - e<>ACTION quickbase attachment upload -> f: inputs: field: '6' name: '{{d.file_name}}' url: '{{d.download_url}}' name: Upload report file - LOOKUP quickbase[REDACTED] record look_up -> g: inputs-meta: table: '"AI Actions - Georgi Peev: Report Summary - CSV files" <bvjy9kdu7>' export_fields: '"file" <6>' inputs: id: '{{e.id}}' name: Fetch uploaded file - ACTION qb-ai-actions custom_action create -> h: inputs: file_url: '{{g.file.file_transfer_handle}}' system_message: "You will receive a CSV file representing a Quickbase report.\ \ Your job is to analyze the report and produce an HTML-ready email containing\ \ the analysis. Output must be only valid HTML suitable for sending as the\ \ body of an email (no external CSS, no scripts, inline styles only). \nThe\ \ report contains currently active projects.\nBased on trends and dependencies:\n\ - Flag the top 10 projects that are at risk the most. Provide some details\ \ like project id, project name, PM and other info you find useful.\n- Provide\ \ an explanation on why you've flagged each one\n- Give a suggested action\ \ item for each one" user_message: file attached below name: Summarize - ACTION microsoft-outlook[REDACTED] email send_email -> i: inputs: body: '{{h.output_text}}' subject: Weekly report - at risk projects to_addresses: ... ...</bvjy9kdu7></bvjy9kdu7></bvjypq5b3></in></none></none> The AI Prompt You can tailor the AI persona to your audience. Here’s the one from the example that works well for leadership updates: You will receive a CSV file representing a Quickbase report. Your job is to analyze the report and produce an HTML-ready email containing the analysis. Output must be only valid HTML suitable for sending as the body of an email (no external CSS, no scripts, inline styles only). The report contains currently active projects. Based on trends and dependencies: - Flag the top 10 projects that are at risk the most. Provide some details like project id, project name, PM and other info you find useful. - Provide an explanation on why you've flagged each one - Give a suggested action item for each one Why This Matters This example demonstrates how AI Actions can automate recurring intelligence from Quickbase data — not just static documents or ad-hoc inputs. By scheduling weekly summaries, you’re turning your operational data into living insights your teams can actually use. You can take this further: Summarize multiple reports in one flow Compare current vs. previous week automatically Send or record summaries via other Pipelines channels Conclusion AI Actions continues to expand what’s possible inside Pipelines. From analyzing emails and PDFs to now scheduling recurring AI insights, Quickbase users can close the gap between raw data and decision-ready information. Start small: schedule your first AI-powered summary this week — and let your reports start writing themselves!256Views0likes0CommentsAPI Do Query No data Recieved
Hi, I have recently started facing this issue with my API call that I do from Alteryx to pull data from Quickbase table. I was working fine until last week Aug 1st, 2025 , but started to give no data then. I have provided the warning message that i get with Http 400 bad request error. Surprisingly there are other tables in my app that use the same headers and configurations (filters in query) which continue to work fine. I am unable to understand what to troubleshoot here. Do you have any guidance or setting that I could check? As a work around I tweaked the query a little bit removing filters adding number limits and then it works but that query cannot sustain for long. Please help. [Warning: Download (390): No data received from "https://******.quickbase.com/db/btdwv2ucy?a=API_DoQuery&query={'26'.XCT.'Complete'}AND{'26'.XCT.'Completed-Manual'}AND{'26'.XCT.'Closed Denied'}&clist=6.7.8.9.10.11.13.14.15.16.26.27.31.34.36.37.38.39.40.41.45.46.47&apptoken=**********66dxqt544&usertoken=************6av4c4wecdtcnjh4qbdf6gk5p"; Check the headers for details.]85Views0likes1CommentQuickBooks Online APIs & oauth
Hey all, I'm in the very beginning stages of setting up a couple of API calls (send via "make request" step in pipelines) to QuickBooks Online. I have searched for an example of a successful implementation somewhere in the forums but can't find one. The article on Base-Books pipelines makes a reference at the very end to more information regarding using API calls to add sub-customers and rates, but I haven't been able to find it. I've got all the QBO-side API documentation, but I'm a bit stuck and would just love to look through an actual functional API call. Does anyone have a good example they'd be willing to share with me, or know of an app with an example in the exchange maybe? Thank you! #quickbooks #APIsandcustomcode #Pipelines #oauth2 ------------------------------ Elena Larrabee ------------------------------703Views0likes8Commentsifv not working with API_AddRecord?
Hey all, has anyone else encountered this? I'm using a rich text button to (among other things) add and display a new record in one fell swoop. However, I cannot get it to respect my &ifv=10 settings, it's still pulling up the new record in a form with full QB branding and navigation. var text NewTimeSheet = URLRoot() & "db/" & [_DBID_CREW_TIME_RECORDS] & "?act=API_AddRecord" & "&apptoken=XXXXXX" & "&_fid_37=" & [Record ID#] & "&ifv=10" & "&disprec=1" ; #APIsandcustomcode #api_addrecord ------------------------------ Elena Larrabee ------------------------------177Views0likes5CommentsPossible to make a custom cancel button?
Old threads show ways to make a formula/url or rich text that emulates the cancel button, but it involves using javascript. Is there any current way to make a custom cancel button? My use case involves needing it for mobile. I have a custom save button that does more than just save, and so I want a custom cancel button next to it (I currently have a big warning telling the user not to use the native buttons below, since I cant get rid of them). I tried just making a button to navigate away from the page - the problem is it autosaves no matter what. I want it to NOT save. I believe the advanced option to save when navigating away from the page, does not have any effect on mobile, so I cant simply uncheck it. ------------------------------ Mike Tamoush ------------------------------233Views0likes3CommentsI am receiving an error when attempting to use a formula without saving the record in the 'In Progress' table (B). However, once I save the record in the 'In Progress' table (B), the same formula works fine.
I have two tables. I added a new record to the 'New Request' table (A) using the Quickbase auto-generate API button, and then attempted to add the same record to the 'In Progress' table (B) by clicking on the API button. However, I received an error message stating that the 'rid' parameter was missing. 'In Progress' table (B) formula= "If(IsNull([Start Date]), URLRoot() & "db/" & [_DBID_INPROGRESS] & "?act=API_EditRecord&apptoken=dpvtvtrbuvtrjjd5ydp38bccn9np&rid=" & [Record ID#] & "&_fid_45=" & URLEncode("Task Started") & "&_fid_6=" & Now() & "&rdr=" & URLEncode(URLRoot() & "db/" & [_DBID_INPROGRESS] & "?act=dr&rid=" & [Record ID#]) )" Note: I am receiving an error when attempting to use a formula without saving the record in the 'In Progress' table (B). However, once I save the record in the 'In Progress' table (B), the same formula works fine ------------------------------ manohar vankireddy ------------------------------236Views0likes16CommentsIncoming JSON or Incoming Request JWT Token
I am using postman to test API connections to Quickbase Post, create new record. I can post and create a new record with fields populated correctly using basic or no authentication. As soon as I try to use a JWT Token, I get an "error": "Unauthorized" in postman and no action on the Quickbase side, not even an error that an attempt was made. Does anyone have a good test setup that I can work with that was successful using postman or another API testing platform? Using RS256 Public and Privet Key. ------------------------------ Brian Crowther ------------------------------474Views1like9CommentsRESTful API - groupBy
The request body of the Query for data endpoint accepts a groupBy property which is an array of object items . I understand the syntax and can follow along, but in my testing I haven't seen any measurable change in json returned in the response body no matter the pair of field/grouping I provide. The sortBy property seems to take the same parameters and returns data as expected. Has anybody had success using this property that they feel comfortable sharing? #APIsandcustomcode #reportsandcharts ------------------------------ Justin Torrence Quickbase Expert, Jaybird Technologies [email protected] https://www.jaybirdtechnologies.com/#community-post ------------------------------52Views0likes0Comments