--- title: "Outbound texting" slug: "text-my-qb-configurator-outbound" updated: 2026-10-09T18:16:52Z published: 2026-10-09T18:16:52Z canonical: "help.quickbase.com/text-my-qb-configurator-outbound" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.quickbase.com/llms.txt > Use this file to discover all available pages before exploring further. # Outbound texting An outbound configuration sends a text for each record you choose in a Quickbase table, then writes the results back to the record. This article covers the three outbound-only tabs, **Processing**, **Outbound Setup**, and **Activity Table**, and explains how to find texts that didn't go out. For the **Config Info** and **EsendEx Info** tabs, see [Create a Text My QB configuration](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-create). *Available to:* all roles with the Text My QB extension. To open an outbound configuration, select **Edit** on its row in the configurations list. It opens in a pop-up window with the header **Text My QB Configurator - Outbound**. Remember that **Save** saves all tabs at once, and that you need to save or cancel before you can switch tabs. ## How outbound texting works 1. Something starts a run: a schedule, the **Execute On Demand** button, or a Quickbase email notification. 2. Text My QB finds the records to text: every record in your **Report to Process** (Scheduled and On-Demand), or, for Triggered, the record named in the notification (or the records its query finds). 3. For each record, it sends the message to the number in your **Phone Number Field**, from your Esendex **Phone Number**, with any file attachments. 4. It writes the date and time of the send attempt, the result (status), the unique message ID, and (optionally) the Esendex number back to the record. This happens whether or not the text went out. 5. If activity logging is on, it adds one record to your activity table for each recipient. The configuration must be **Enabled** (or **Test Mode**) on the **Config Info** tab. Disabled configurations don't send anything. Text My QB reads and updates your records with the user token you chose when you authorized the app. That token's user needs permission to view and modify records in the outbound table, and to add records to the activity table. See [Before you start](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-overview#before-you-start). ## Processing tab *Available to:* all roles with the Text My QB extension. Section **Processing**. Use **Processing Mode** to choose when texts go out: | **Processing Mode** | **When texts are sent** | **Which records are texted** | **Good for** | | --- | --- | --- | --- | | **On-Demand** | When you select **Execute On Demand** in the configurator. | Every record in the **Report to Process**. | One-off announcements, manual batches. | | **Scheduled** | Automatically, at the time and frequency you set. | Every record in the **Report to Process** at run time. | Daily reminders, weekly digests. | | **Triggered** | When a Quickbase email notification is sent to Text My QB, for example when a record is added or a field changes. | The one record the notification is about. With [query=](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-outbound#query), every record the query finds. | Instant alerts, "your order has shipped". | The first option, **Select a Processing Mode**, means no mode is chosen yet. ### On-Demand 1. On the **Outbound Setup** tab, choose the **Outbound Table** and the **Report to Process**, finish the other settings, and select **Save**. 2. On the **Processing** tab, set **Processing Mode** to **On-Demand** and select **Save**. 3. Make sure **Configuration Status** on the **Config Info** tab is **Enabled** (or **Test Mode**) and saved, and that the report has records in it. A Disabled configuration doesn't run. 4. Under **On-Demand Execution**, select **Execute On Demand**. The button is dimmed until an outbound table is selected. 5. You'll see *On-demand execution has been requested.* (green). The run is queued and picked up shortly afterward. Every record in the report is texted. - **Execute On Demand** doesn't save your other changes. Save first. - The request stays pending until the run finishes. If you select the button again before then, you'll see *This config still has a pending on-demand execution.* (blue) and no second run is queued. Check the **Status Field** on your records after a few minutes. - If you still see that message long after your request and no texts went out, [submit a technical support case](https://help.quickbase.com/docs/get-help-from-quickbase-technical-support) so the pending request can be cleared. ### Scheduled Choose **Scheduled**, then fill in: | **Setting** | **What it does** | **Values** | | --- | --- | --- | | **Processing Time** | The time of day the run starts, in Eastern Time (EST/EDT). | **Select a Time**, then 12:00AM to 9:00AM every hour; 9:00AM to 7:00PM every half hour; 8:00PM to 11:00PM every hour. | | **Scheduled Frequency** | How often the run happens. | **Daily**, **Weekly**, or **Monthly**. | | **Day of Week** | Weekly only. The day or days the run happens. | Pick one or more of Sunday to Saturday (placeholder *Please select day(s) to run*). Pick at least one day. | | **Day of Month** | Monthly only. The day of the month the run happens. | A number from 1 to 31. If a month has fewer days than the value you specified, it will send on the last day of that month. Ex: 31 will send on the 28th of February. | Then, on the **Outbound Setup** tab, choose a **Report to Process**, set **Configuration Status** to **Enabled**, and select **Save**. > [!NOTE] > Note > > Every record in the report is texted on every run. Filter the report so a record drops out once Text My QB has tried to text it, for example **Update Field is blank**, or the same people will get the same text again on the next run. The Update Field is filled in after every attempt, including failed ones, so records whose text failed drop out too. To find and resend those, see [Find texts that didn't go out](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-outbound#find-failed-texts). ### Triggered A Triggered configuration texts when Quickbase sends Text My QB an email notification. You set up the notification in your app; its body is the **Configuration String**, which tells Text My QB which configuration to use and which record to text. #### Get the Configuration String 1. On the **Outbound Setup** tab, choose the **Outbound Table** and the other settings, and select **Save**. 2. On the **Processing** tab, set **Processing Mode** to **Triggered** and select **Save**. 3. Under **Configuration String**, select **Copy**. You'll see *Configuration string copied to clipboard.* (green). If copying fails (*Unable to copy to clipboard. Please copy the configuration string manually.*, red), select the text in the box and copy it yourself. The string looks like this. Use the one from your configuration, not this sample: ```plaintext configid=123 recid=[Record ID#] configkey=YOUR-CONFIG-KEY type=textmyqb ``` - **configid**: your configuration's ID. - **recid=[Record ID#]**: a Quickbase field reference to the outbound table's Record ID# field. When the notification is sent, Quickbase replaces it with the ID of the record. The configurator uses the field's current name, so if you renamed Record ID# in your table (for example to *Order Number*), the string shows **recid=[Order Number]**. Copy the string as shown; don't retype it. - **configkey**: your configuration's **Config Key**. - **type=textmyqb**: tells Quickbase Extensions the request is for Text My QB. Instead of a string, the box can show: - *Please select an outbound table first.*: choose an **Outbound Table** on the **Outbound Setup** tab and save. - *Save the configuration to generate the config string.*: select **Save**. The Configuration String is also shown for Scheduled configurations, without **recid**. You only need it for Triggered processing. #### Text several records from one notification (query=) With **recid=**, a notification texts only the record it's about. To text several records when one thing happens, for example everyone assigned to a job when the job is rescheduled, replace **recid=[…]** with **query=** and a Quickbase query. Text My QB then texts every record in your **Outbound Table** that the query finds. ```plaintext configid=123 query={'12'.EX.'[Record ID#]'} configkey=YOUR-CONFIG-KEY type=textmyqb ``` - Start from the Configuration String you copied, and replace only the **recid=[…]** part. Keep **configid**, **configkey**, and **type=textmyqb** exactly as they are. - The query uses the Quickbase query format **{'field ID'.operator.'value'}**, and several conditions can be joined with **AND** or **OR**. The field IDs are those of your Outbound Table. See [Components of a Query](https://help.quickbase.com/api-guide/componentsquery.html). - Don't put spaces in the query. The parts of the Configuration String are separated by spaces. Match on IDs and other values without spaces. - With **query=**, the notification doesn't have to be on the Outbound Table. Put it on the table where the event happens, and use that record's fields in the query. **Example.** A **Jobs** table has child **Crew Assignments** records, and each assignment has the crew member's mobile number. The Outbound Table is Crew Assignments, and its **Related Job** reference field has field ID 12. On the **Jobs** table, create the notification for when a **Notify Crew** checkbox is checked, with this body: ```plaintext configid=123 query={'12'.EX.'[Record ID#]'} configkey=YOUR-CONFIG-KEY type=textmyqb ``` When the notification goes out for job 57, Quickbase replaces **[Record ID#]** with 57, and Text My QB texts every crew assignment whose Related Job is 57. #### Create the email notification Create an email notification on your **Outbound Table** (with **query=**, it can be on another table; see above). It sends the Configuration String, and nothing else, to **textmyqb@mail.quickbasetools.com**. For the steps, see [Email notification creation](https://help.quickbase.com/quickbase-extensions/docs/en/email-notification-creation). Then make sure **Configuration Status** is **Enabled** (or **Test Mode**) and saved. > [!WARNING] > Important > > After each text, Text My QB updates the record (Update, Status, and message ID fields). If your notification fires on *any* change to the record, those updates can trigger another text. Always limit the criteria to a specific field changing, such as a checkbox or status field you control. ## Outbound Setup tab *Available to:* all roles with the Text My QB extension. Section **Outbound Configuration**. Choose the fields from dropdowns (first option **Select a Table**, **Select a Report**, or **Select a Field**). The field type column is what we recommend; pick fields of a matching type. | **Setting** | **What it does** | **Field type needed** | | --- | --- | --- | | **Outbound Table** | The table that holds the records to text. Its key field is detected for you. Changing it clears the field selections below. | A table in the configuration's app. | | **Report to Process** | On-Demand and Scheduled only. The report whose records are texted on each run. Filter it to exactly the records that should get a text. | A report on the outbound table. | | **Use Static Message** | Toggle. Off: the message comes from **Message Field** on each record. On: everyone gets the same message, typed in **Static Message**. | — | | **Message Field** | Shown when **Use Static Message** is off. The field that contains each record's message. Use a formula field to build personalized text from other fields. If the field is blank on a record, the static message (if any) is sent instead. | Text, Text - Multi-line, or Formula - Text. | | **Static Message** | Shown when **Use Static Message** is on. The message to send, exactly as typed. | — (typed in the box) | | **Phone Number Field** | Required. The field with the number to text. Parentheses, dashes, spaces, and **+** are removed before sending. To text several people from one record, separate the numbers with a semicolon (**;**); duplicates are sent once. For numbers outside the US and Canada, enter the country code and the number, for example **447700900123**. Don't add 011 yourself: when **International DID** is on, 011 is added for you to any number that isn't 10 or 11 digits. Texting outside the US and Canada needs an Esendex number for that country or region and **International DID** turned on. See [International texting support](https://help.quickbase.com/quickbase-extensions/docs/en/international-texting-support). | Phone Number, Text, or Formula - Text. | | **Update Field** | Set to the date and time of the last send attempt, in your app's time zone, whether or not the text went out. Use it to keep records that have already been tried out of your report. It doesn't tell you whether the text was sent; the **Status Field** does. | Date/Time. | | **Status Field** | Set to the result of the send, for example *Message Sent Successfully*. With several recipients, the results are separated by semicolons. See [Status Field values](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-messages#status-field-values). | Text or Text - Multi-line. | | **Unique Message ID Field** | Set to the unique ID Esendex gives the text (semicolon-separated for several recipients). Replies carry this ID, which is how an inbound configuration links a reply to this record. | Text. | | **Esendex Phone Number Field** | Optional. Set to the Esendex number the text was sent from. | Phone Number or Text. | | **Send Text Even If File Can't Be Sent** | Toggle. On: if an attachment can't be sent, the text still goes out with the other attachments. Off: if any attachment fails, the text and the other attachments aren't sent. | — | | **Handle Special Characters** | Toggle. On: sends the message in a format that supports special characters such as accented letters. Messages with special characters are also detected automatically. Special characters reduce each message part from 160 to 70 characters. | — | | **Verify Phone Number** | Toggle. On: the number is checked with Esendex before sending. Invalid numbers and landlines aren't texted: the Status Field is set to *Not a valid Mobile Number*, and the activity record's **Error Checkbox Field** is checked. This needs phone verification set up on your Esendex account; reach out to Esendex to have it set up. If phone verification isn't set up, leave Verify Phone Number off. Use it only when the Phone Number Field holds one number per record. | — | ### File attachments Section **Attachments Configuration**. Send files from the record along with the text, for example a photo, a PDF, or a link to a file. - The left list, **Available Fields**, shows the outbound table's file attachment and URL fields. The right list, **File Attachments**, is what's sent. - Move a field between the lists with the arrow buttons between them, or drag and drop it. Use the up and down arrows to change the order of the right list. Files are sent in that order. - Fields that are empty on a record are skipped. - Keep the total size of all files for one text under **1.5 MB**. Above that, the recipient's carrier may not deliver the text, and the Status Field is set to *Files exceeded 1.5MB; message may not have sent due to recipient's carrier.* - Texts with attachments, and long texts, are sent as MMS automatically. ## Activity Table tab *Available to:* all roles with the Text My QB extension. Section **Activity Logging**. An activity table keeps a history of every send attempt: one record per recipient per send. Without it, each outbound record only holds the result of its most recent attempt. - **Log Activities?**: toggle. On: shows the settings below, and a record is added to the activity table for each recipient. Off: nothing is logged. We recommend making the activity table a child of the outbound table (a relationship where one outbound record has many activity records), so you can show a record's text history on its form. | **Setting** | **What's written to it** | **Field type needed** | | --- | --- | --- | | **Activity Table** | The table where activity records are added. | A table in the configuration's app. | | **EsendEx Phone Number Field** | The Esendex number the text was sent from. | Phone Number or Text. | | **To Phone Number Field** | The number the text was sent to. | Phone Number or Text. | | **Related Field to Outbound Table** | The outbound record's key value, which relates the activity to the outbound record. | The reference field of the relationship to the outbound table (usually Numeric). | | **Message Field** | The message that was sent. | Text - Multi-line. | | **Delivery Status Field** | The result of the send for this recipient. See [Status Field values](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-messages#status-field-values). | Text. | | **Error Checkbox Field** | Checked when the number failed **Verify Phone Number**. Other send errors are shown in the **Delivery Status Field**. | Checkbox. | | **Text Date/Time Field** | The date and time of the send attempt. | Date/Time. | | **Unique Message ID Field** | The Esendex message ID for this recipient. | Text. | | **Configuration ID Field** | The ID of the configuration that sent the text. | Numeric or Text. | | **Configuration Name Field** | The name of the configuration that sent the text. | Text. | | **File Size Field** | The total size of the text's attachments. | Numeric. | If you copy a configuration, you can choose a different activity table in the **Copy Configuration** dialog. See [Copy a configuration](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-overview#copy-a-configuration). ## Find texts that didn't go out The **Update Field** is filled in after every attempt, so it can't tell you which texts failed. Use the **Status Field** instead: 1. On the outbound table, create a report named, for example, **Texts that failed**, with the filters **Update Field is not blank** and **Status Field does not contain** *Message Sent Successfully*. 2. For each record, look up the Status value in [Status Field values](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-messages#status-field-values) and fix the cause, for example a wrong phone number. 3. To send the text again on the next Scheduled or On-Demand run, clear the record's **Update Field** so it's back in your **Report to Process**. For Triggered, make the notification fire again, for example by checking the trigger checkbox again. - If a record texts several numbers, its Status Field holds one result per number, so the report above misses a record where some numbers worked and others didn't. With activity logging on, report on the activity table instead: **Delivery Status Field does not contain** *Message Sent Successfully*. It has one record per recipient. - Numbers rejected by **Verify Phone Number** have the activity table's **Error Checkbox Field** checked. Something not working? See [Messages and troubleshooting](https://help.quickbase.com/quickbase-extensions/docs/en/text-my-qb-configurator-messages).