Command Center

Total Companies
0
all time
Leads
0
active leads
Emails Sent
0
this week
Tasks Due
0
today
Pipeline Value
$0
open deals
Active Contacts
0
post-sale
Weekly Performance
Engagement Activity
0 tasks ready
Due Tasks
View all
No upcoming tasks
Upcoming Meetings View all
No upcoming meetings
Activity Feed View all
No recent activity
Scheduled Emails Last 7 days
Best Time to Call
Engagement Scoring View contacts
No engagement data
Activity Leaderboard
No activity data
Favorite Accounts View all
Star companies to pin them here
0 companies Not synced

No companies loaded

Configure your Google Apps Script in settings to get started

0 contacts

No leads loaded

Load data from your spreadsheet to see leads

Select a Lead to view Information

Due Tasks

No tasks due

Tasks will appear here when contacts have active sequence steps

Select a task to execute

Activity Log

0 log entries

No activity logged

Your communication history will appear here

Select a log entry to view details

Video Library

0 / 5 videos

Record and save videos to use in your emails and sequences. You can store up to 5 videos.

No saved videos yet

Record videos to use in your emails and sequences

Document Library

0 documents

Upload commonly used documents (proposals, contracts, brochures, etc.) to quickly attach them to emails and sequence steps.

No documents yet

Upload documents to attach to your emails and sequences

Sequences

No sequences created

Create sequences to automate your outreach workflow

Select a sequence to edit or create a new one

Lead Finder

Results

Enter a website domain and click "Fetch Leads"

We'll scan the site for contact information

Marketing Leads

Report Filters

Quick Filters:
Contact Info
Include Exclude
Include Exclude
Include Exclude
Include Exclude
Include Exclude
Include Exclude
Company & Location
Include Exclude
All Companies
Include Exclude
All Business Types
Include Exclude
All Titles
Include Exclude
All Cities
Include Exclude
All States
Include Exclude
All Zips
Include Exclude
All Territories
Status & Sequence
Include Exclude
All Statuses
Include Exclude
All Reasons
Include Exclude
All Sequences
Include Exclude
Include Exclude
Lead Details
Include Exclude
All Tags
Include Exclude
All Lead Sources
Include Exclude
All Lead Owners
Include Exclude
Financial & Dates
Include Exclude
to
Include Exclude
to
Include Exclude
to

Saved Reports

Report Results

Select filters and click "Generate Report" to view insights

Reports help you analyze your outreach performance

Contacts

Post-sale relationship management

No contacts yet

Convert closed-won leads to contacts to see them here

Select a Contact to view details

Inbox

0 emails

Call History

0 calls

No call history

Your call logs will appear here

Select a call to view details

Messages

Select a conversation or start a new one

December 2025

Sun
Mon
Tue
Wed
Thu
Fri
Sat
??

Loading...

Member since: --

Account Information

Not set
--
None
Not connected

Appearance

Subscription

Loading...
--
--
$29.95/month

Danger Zone

Permanently delete your account and all associated data. This action cannot be undone. This does NOT cancel your subscription.

Learning Library

0 of 0 completed

Master every feature of CrawlSpace CRM. Click a topic to learn, then mark it complete.

Settings

Spreadsheet Connection
Email Integration
Calendar & Booking
Phone System
User Preferences
Email Signature
Column Mapping
Tag Options
Extension Setup Instructions
Marketing Integrations

Spreadsheet Connection

Paste your Google Sheets URL from the browser address bar
Click refresh to load available sheets from your spreadsheet

Email Integration

Calendar & Booking

How to create appointment schedules (Google):
  1. Open Google Calendar
  2. Click "Create" → "Appointment schedule"
  3. Set the duration (15min, 30min, etc.) and your availability
  4. Copy the booking page link and paste it below
When a lead is converted, which contact status should it start with?
Automatically assign this sequence when a lead is converted to a contact.
Variable: {{user.calendar_15min}}
Variable: {{user.calendar_30min}}
Variable: {{user.calendar_45min}}
Variable: {{user.calendar_60min}}

Phone System

Phone Not Configured

Set up your phone system to make and receive calls directly from the CRM.

Pricing: $2/month per phone number + $0.02/minute for calls

SMS Messaging

User Preferences

Used to identify who made changes in activity logs
Used for calendar events and scheduling

Email Signature

Type your signature and paste images directly (Ctrl+V). Images will be uploaded automatically.

Column Mapping

Use column letters (A, B, C) or exact column names from your sheet

Tag Options

Manage tags available in the contact dropdown

Extension Setup Instructions

The Chrome extension requires a separate Google Apps Script to import contacts into your sheet. Follow these steps:

  1. Open your Google Sheet (the same one used for the CRM)
  2. Go to Extensions → Apps Script
  3. If you already have the CRM script, create a new script file by clicking + next to "Files"
  4. Name it ExtensionImport and paste this code:
    function doPost(e) {
      try {
        var sheet = SpreadsheetRight getActiveSpreadsheet().getActiveSheet();
        var data = JSON.parse(e.postData.contents);
        
        var mappings = data.columnMappings || {};
        var contacts = Array.isArray(data.contacts) ? data.contacts : [data];
        
        // Find the last row with data in column A (company column)
        var primaryColumn = mappings.company || 'A';
        var colNum = columnToNumber(primaryColumn);
        var lastRowInColumn = getLastRowInColumn(sheet, colNum);
        
        contacts.forEach(function(contact, index) {
          var lastRow = lastRowInColumn + 1 + index;
          
          // Map each field to its configured column
          setCell(sheet, lastRow, mappings.company, contact.company);
          setCell(sheet, lastRow, mappings.businessType, contact.businessType);
          setCell(sheet, lastRow, mappings.title, contact.title);
          setCell(sheet, lastRow, mappings.firstName, contact.firstName);
          setCell(sheet, lastRow, mappings.lastName, contact.lastName);
          setCell(sheet, lastRow, mappings.website, contact.website);
          setCell(sheet, lastRow, mappings.email, contact.email);
          setCell(sheet, lastRow, mappings.phone, contact.phone);
          setCell(sheet, lastRow, mappings.phone2, contact.phone2);
          setCell(sheet, lastRow, mappings.phone3, contact.phone3);
          setCell(sheet, lastRow, mappings.street, contact.street);
          setCell(sheet, lastRow, mappings.city, contact.city);
          setCell(sheet, lastRow, mappings.state, contact.state);
          setCell(sheet, lastRow, mappings.zip, contact.zip);
          setCell(sheet, lastRow, mappings.notes, contact.notes);
          setCell(sheet, lastRow, mappings.status, contact.status);
          setCell(sheet, lastRow, mappings.statusReason, contact.statusReason);
          setCell(sheet, lastRow, mappings.territory, contact.territory);
          setCell(sheet, lastRow, mappings.sequence, contact.sequence);
          setCell(sheet, lastRow, mappings.currentStep, contact.currentStep);
          setCell(sheet, lastRow, mappings.dueDate, contact.dueDate);
          setCell(sheet, lastRow, mappings.amount, contact.amount);
          setCell(sheet, lastRow, mappings.textingAvailable, contact.textingAvailable);
          setCell(sheet, lastRow, mappings.tag, contact.tag);
          setCell(sheet, lastRow, mappings.leadSource, contact.leadSource);
          setCell(sheet, lastRow, mappings.leadOwner, contact.leadOwner);
          setCell(sheet, lastRow, mappings.createdDate, contact.createdDate);
          setCell(sheet, lastRow, mappings.quoteAmount, contact.quoteAmount);
        });
        
        return ContentService
          .createTextOutput(JSON.stringify({ success: true, message: contacts.length + ' contact(s) added' }))
          .setMimeType(ContentService.MimeType.JSON);
          
      } catch (error) {
        return ContentService
          .createTextOutput(JSON.stringify({ success: false, error: error.toString() }))
          .setMimeType(ContentService.MimeType.JSON);
      }
    }
    
    function setCell(sheet, row, column, value) {
      if (column && value) {
        sheet.getRange(row, columnToNumber(column)).setValue(value);
      }
    }
    
    function columnToNumber(column) {
      var col = column.toUpperCase();
      var result = 0;
      for (var i = 0; i < col.length; i++) {
        result = result * 26 + col.charCodeAt(i) - 64;
      }
      return result;
    }
    
    function getLastRowInColumn(sheet, colNum) {
      var data = sheet.getRange(1, colNum, sheet.getMaxRows(), 1).getValues();
      for (var i = data.length - 1; i >= 0; i--) {
        if (data[i][0] !== '' && data[i][0] !== null) {
          return i + 1;
        }
      }
      return 0;
    }
    
    function doGet(e) {
      return ContentService
        .createTextOutput(JSON.stringify({ status: 'ready', message: 'CrawlSpace Sheets Integration Active' }))
        .setMimeType(ContentService.MimeType.JSON);
    }
  5. Click Save (💾 icon)
  6. Click Deploy → New Deployment
  7. Choose type: Web app
  8. Set "Execute as: Me" and "Who has access: Anyone"
  9. Click Deploy
  10. Copy the Web App URL and paste it in the extension settings
Important Notes:
  • This script is different from the CRM script - it handles importing contacts from the extension
  • Make sure your column mappings in the extension match the columns in your sheet
  • The extension will automatically use the column settings you configure

Marketing Integrations

Facebook Lead Ads

Not Connected

Automatically sync leads from your Facebook Lead Ad forms into CrawlSpace CRM.

LinkedIn Lead Gen Forms

Not Connected

Automatically sync leads from your LinkedIn Lead Gen Forms into CrawlSpace CRM.