Google Sheets Integration with myCRMSIM
This guide covers connecting your Google account, preparing your spreadsheet, configuring the Google Sheets Read action, mapping contact fields, controlling message delivery, and monitoring workflow executions.
Minimum Requirement: myCRMSIM Dashboard v0.14.15 or newer. You can check your dashboard version in the bottom-left corner, next to the Changelog link.
- Send messages without importing contacts: Read phone numbers directly from Google Sheets and connect Google Sheets Read to the Send Message action. When Create contacts in CRM is disabled, spreadsheet rows can be processed without creating new CRM contacts.
- Send messages after importing contacts: Enable Create contacts in CRM to create new CRM contacts from spreadsheet rows. Connect the Send Message action after Google Sheets Read to send SMS/MMS messages to the processed recipients.
- Find existing contacts: Look up spreadsheet data for existing contacts and use it in your workflows.
- Personalize messages: Use spreadsheet values such as {{sheet.First Name}}, {{sheet.Company}}, and {{sheet.Message}} to personalize messages for each row.
Prerequisites
- An active myCRMSIM account is required.
- An active HighLevel account is required, with access to the required agency or sub-account.
- At least one messaging deviceāAndroid, iMessage, or WhatsAppāmust be connected and active.
- The device must be able to send and receive messages successfully.
- An active Google account and a properly formatted Google Sheet must be available for the Google Sheets integration.
- The Google Sheet must contain valid contact details, especially phone numbers in international format.
Device Assignment and Message Routing Verification
- Open the Subaccount SIM section in myCRMSIM.
- Select the required sub-account.
- Confirm that the required Android, iMessage, or WhatsApp device is assigned to that sub-account.
- Verify that the device status is Connected or Active.
- Open the Message Routing settings.
- Enable the required messaging channel, such as WhatsApp, Android SMS, or iMessage.
- Set the assigned device as the priority or default route for the selected channel.
- Save the routing settings.

- Log in to your myCRMSIM Dashboard.
- Navigate to Integrations from the left-hand menu.
- Find the Google Sheets integration card.
- Click Connect.
- Select the Google account that contains your spreadsheet.
- If Google displays the message "Google hasn't verified this app," click Go to mySMSGateway (unsafe), review the requested permissions, and click Allow to continue.
- After authorization, return to the Integrations page and confirm that the connection was successful.
- Connect another account: Open Manage Account ā Connect another account.
- Check connection status: Review your account in the Google Sheets panel.
- Disconnect an account: Use the disconnect option under Manage details and settings.

Keep the headers in row 1 unless your spreadsheet contains a title or notes above them. In that case, specify the correct header row when configuring the action.

Whenever possible, use the full international format, such as +923******67.
If your spreadsheet contains local numbers without a country code, configure Default country code in the Google Sheets Read action.
For example, selecting Pakistan (+92) allows a local number such as 0300******7 to be converted to +92300*****67.
If your spreadsheet contains numbers from multiple countries, include the correct country code in each phone number instead of relying on one default country code.
Important: Spreadsheet rows can be used for messaging even when they are not imported as new CRM contacts. The Create contacts in CRM setting controls contact creation; it does not prevent a row from continuing to the Send Message action.
- Open Automations ā Workflows.
- Click + New Workflow.
- Select Start from Scratch.
- Enter a workflow name, such as Google Sheets Contacts Integration.
- In the left panel, search for and add Auto Trigger.
- Add Google Sheets Read and connect it directly to Auto Trigger.
The workflow should use this structure for spreadsheet messaging:
- Auto Trigger ā Google Sheets Read ā Send Message
- Configure the nodes as follows:
- Auto Trigger: Starts the Google Sheets workflow.
- Google Sheets Read: Reads the selected spreadsheet rows and passes each eligible row to the next step.
- Send Message: Sends an SMS/MMS to the phone number mapped from the spreadsheet row or to the linked CRM contact.

This workflow supports two modes:
- Messaging without CRM import: Disable Create contacts in CRM. Spreadsheet rows can still continue to Send Message without creating new CRM contacts.
- Messaging with CRM import: Enable Create contacts in CRM. New spreadsheet entries can be created as CRM contacts, while existing contacts may be linked or skipped according to the duplicate-contact rules.
How the Nodes Work
- Auto Trigger: Starts the workflow when it is activated and saved. It does not provide a contact or spreadsheet row by itself.
- Google Sheets Read: Reads spreadsheet rows and makes their values available to subsequent workflow steps. In Read all rows ā run next steps for each row mode, the next actions run once for each eligible row.
- Send Message: Sends the configured SMS/MMS using the phone number mapped from the spreadsheet row or the linked CRM contact. Use merge fields such as {{sheet.First Name}}, {{sheet.Company}}, or {{sheet.Message}} where applicable.
- Google account: Select the connected Google account containing your spreadsheet.
- Spreadsheet: Click Browse sheets⦠and select your file, or paste its Google Sheets URL if browsing is unavailable.
- Sheet tab: Select the tab or tabs you want to read. Multiple tabs are processed one after another using the same header row, mapping, filter, and pacing settings.
- Header row: Enter the row number containing your column names. The default is 1.
For example:
- Process only rows where Tag matches Customer.
- Process only rows where Phone Number is not empty.
Read all rows ā run next steps for each row
Reads the spreadsheet and runs subsequent workflow steps for each row. Use this mode to process a list of contacts, send messages, or import contacts.
Look up each contact's row ā adds {{sheet.Column}} values
Finds the corresponding spreadsheet row for an existing contact and makes its column values available to the workflow. Use this mode when a workflow starts with a contact and needs additional information from the spreadsheet.
Sheet columnĀ | Contact field |
| First NameĀ | First Name |
| Last NameĀ | Last Name |
| Email | |
| Phone NumberĀ | Phone Number |
| TagĀ | Tags (comma-separated) |
| CompanyĀ | Company name |
Important: A valid phone number is required for messaging.
Mapping Fields Used by Send Message
At minimum, map the spreadsheet's phone column to the contact phone field.
| Sheet Column | Contact Field | Purpose |
| Phone Number | Phone Number | Recipient for Send Message |
| First Name | First Name | Personalization, such as {{contact.first_name}} |
| Message | Custom field or sheet value | Row-specific message text, such as {{sheet.Message}} |
- For a fixed message sent to every row, enter the message directly in the Send Message action.
- For a different message for each row, configure the action to use {{sheet.Message}}.
For example, selecting Pakistan (+92) allows a local number such as 0300******7 to be converted to +9230*****67.
- Numbers already containing an international country code are retained.
- Invalid phone numbers or numbers that cannot be validated are marked as Failed in Execution Logs.
- Duplicate phone numbers within the spreadsheet are processed only once; subsequent duplicates are skipped.
- Spreadsheet rows are still read and can continue to the Send Message action.
- New contacts are not created in the CRM.
- An existing CRM contact may still be linked when the phone number matches.
- Use this option when the spreadsheet is only being used as a temporary messaging list.
- New spreadsheet entries can be created as CRM contacts.
- Existing contacts with duplicate phone numbers may be linked or skipped.
- Contact fields and tags can be mapped from the spreadsheet.
- After Google Sheets Read processes the row, it can continue to the Send Message action.
Contact creation and message delivery are separate workflow behaviors. The Create contacts in CRM setting controls contact creation, while the Send Message action performs message delivery.
Contacts created through this action do not trigger Contact Created workflows, helping prevent the workflow from triggering itself again.
Use the pacing settings to control how quickly rows proceed to the next workflow step.
Setting | Description | Default |
| Rows per batch | Number of rows processed togetherĀ | 1 |
| Seconds between batches | Delay between batches | 60 seconds |
| Random extra seconds | Additional randomized delay | 30 seconds |
| Send all rows at once | Processes all rowsĀ simultaneously | Not recommended |
This spreads out processing and can help reduce sudden message bursts. Always follow the applicable messaging platform's sending limits and policies.

Part 5: Add the Send Message Action
Workflow structure:
Ā Ā Ā Auto Trigger ā Google Sheets Read ā Send Message
Configure the recipient and message fields according to your requirements.
{{contact.number}}
One fixed message for every row
Assalam o Alaikum, this is your automated update from myCRMSIM.Personalized message using sheet columns
Hi {{sheet.First Name}}, your update is ready.Different message for each spreadsheet row
{{sheet.Message}}Use the actual merge fields supported by your Send Message action and dashboard version.Important
Before activating the workflow, verify that:
- The Phone Number column is mapped correctly.
- Phone numbers contain a country code or a Default country code is configured.
- An active SMS-capable device is assigned to the workspace.
- Workspace Message Routing is configured for SMS/default routing.
- The message contains the intended text and merge fields.
- The workflow is activated only when the spreadsheet is ready to be processed.

- Click Save in the Workflow Builder.
- Confirm that the workflow contains Auto Trigger ā Google Sheets Read ā Send Message.
- Verify the Google account, spreadsheet, tab, header row, phone mapping, and message configuration.
- Change the workflow status from Draft to Active.
- Click Save again to activate the workflow and start its initial run.
- Open Execution Logs and confirm that Google Sheets Read and Send Message completed for the expected rows. Important: Activating the workflow can process the selected spreadsheet rows and send messages. Review the spreadsheet, recipient mapping, message content, and sending pace before changing the workflow to Active.
Situation | Expected Behavior |
| Save changes while the workflow is Active | Does not start a new run and may stop an ongoing run. |
| Start a fresh run | Change the status to Draft, then back to Active, and save. |

- Open the workflow.
- Select the Execution Logs tab.
- Review the Execution History section.
- Click Refresh to load the latest results.
- Use the available filters to review Completed, Failed, Running, Waiting, Pending, or Cancelled executions.
- Contact: The contact associated with the row.
- Trigger: Auto Trigger.
- Action: Google Sheets Read.
- Duration: Time taken to execute.
- Started At / Finished At: Execution timestamps.
- Status: The execution result.

- Open Contacts from the left-hand menu.
- Review the Total Contacts count.
- Search for the imported contacts.
- Confirm that their names, email addresses, phone numbers, and tags match the spreadsheet.

Verify Messages in Message Logs
After running the workflow, verify that messages were sent successfully.
- Open Message Logs in the myCRMSIM dashboard.
- Check the latest logs for the test contacts used in your Google Sheet.
- Verify that the recipient's phone number and message content are correct.
- Confirm that the message status indicates successful sending.
- If messages are missing or failed, review the workflow execution logs and check the device status, message routing, phone number format, and available credits.

Make sure you are on the correct workspace's Integrations page and have permission to connect integrations.
Review the warning and permissions before proceeding. Continue only if the integration is trusted and approved by your organization. Contact your administrator if you are unsure.
Connect your Google account under Integrations before configuring the action.
Verify all of the following:
- The workflow contains Auto Trigger ā Google Sheets Read ā Send Message.
- The Phone Number column is mapped correctly.
- The phone number includes a valid international country code, or Default country code is configured.
- The Send Message action contains a message or a valid {{sheet.Message}} merge field.
- An active SMS-capable device is assigned to the workspace.
- Workspace Message Routing is configured for SMS/default routing.
- The device is online and has the required SMS permissions.
- Execution Logs show whether Google Sheets Read succeeded but Send Message failed.
- The workflow is Active and saved after the latest configuration changes.
Yes. Keep Create contacts in CRM disabled in Google Sheets Read, map the Phone Number column, and connect Google Sheets Read directly to Send Message. Spreadsheet rows can continue to the message action without creating new CRM contacts. Existing contacts may still be linked when their phone numbers match.
Yes. Enable Create contacts in CRM, map the contact fields, and connect Google Sheets Read to Send Message. New contacts can be created or existing contacts can be linked before the message action runs.
Check for duplicate phone numbers, invalid numbers, missing country codes, and other execution errors.
Format the phone number column as Plain text in Google Sheets and verify that the numbers include the correct country codes.
Make sure the workflow is set to Active when you save. To initiate a new run, switch it to Draft, then Active, and save again.
Review Execution Logs for failed or cancelled executions. If the workflow was changed while active, set it to Draft, review its configuration, and activate it again for a fresh run.
Reconnect the account through Integrations ā Manage Account and verify that the status returns to Connected.
Use the spreadsheet URL instead and confirm that the connected Google account has access to the file.
Check whether the affected tabs are accessible and readable by the connected Google account. Review any notice indicating that tabs could not be read.
- Google Sheets is connected under Integrations.
- The spreadsheet contains a header row and a Phone Number column.
- Phone numbers include valid country codes, or a default country code is configured.
- The workflow contains Auto Trigger ā Google Sheets Read ā Send Message.
- The correct Google account, spreadsheet, sheet tab, and header row are selected.
- Filters and column mappings are configured correctly.
- The Phone Number column is mapped to the recipient/contact phone field.
- The Send Message action contains a fixed message or a valid sheet merge field such as {{sheet.Message}}.
- Create contacts in CRM is enabled or disabled according to whether contacts should be imported.
- An active SMS-capable device is assigned to the workspace and Message Routing is configured.
- Sending pace is configured appropriately.
- The workflow has been reviewed before changing it from Draft to Active.
- Execution Logs have been reviewed for completed and failed rows.
- Imported contacts and their details have been verified, if applicable.
Ā Ā Auto Trigger ā Google Sheets Read ā Send Message
Contacts do not have to be imported into the CRM to send messages. Disable Create contacts in CRM when the spreadsheet should be used only as a temporary messaging list. Enable Create contacts in CRM when spreadsheet entries should also be created or linked as CRM contacts. InĀ both cases, Google Sheets Read passes eligible rows to Send Message, which uses the mapped phone number and configured message. Before activating the workflow, verify the spreadsheet, Phone Number mapping, message merge fields, SMS device, workspace Message Routing, and sending pace. Use Execution Logs to confirm both spreadsheet processing and message-action results.
