CRM Solid logo
GUIDE16 min read

How to set up contact tags, custom fields, and lead scoring

A step-by-step tutorial that takes your contact database from a flat list to a segmented, scored, GDPR-compliant sales engine - covering tag taxonomy design, custom fields, hybrid lead scoring with point weightings, team assignment, activity timeline, and a weekly hygiene routine.

14-day free trial · No credit card required · Cancel anytime

What you will learn

Four contact management skills by the end of this guide

Tag taxonomy design

The three-category model - source, segment, status - that keeps tags useful at scale without sprawl.

Hybrid lead scoring

Combine fit attributes and engagement signals into a score that reflects real purchase intent, not just demographics.

Saved segments

Live filter expressions that refresh automatically so your hot-lead list is never stale.

GDPR consent ledger

Per-contact consent records with one-click export and erase for Subject Access and Right to be Forgotten requests.

What you will need

Most of this guide requires only a CRM Solid workspace and a few minutes. Custom fields and lead-scoring configuration need Settings access. GDPR export/erase is available on all plans.

  • A CRM Solid workspace (free 14-day trial works for all steps).
  • Admin or Settings access for custom field and scoring setup.
  • A list of the data points unique to your business (e.g. company size, industry, deal size) - these become custom fields.
  • A rough idea of what makes a "good lead" for your team - this drives your scoring weights.
  • Your team members already invited to the workspace for assignment to work.
  • Basic understanding of GDPR or KVKK if you serve EU or Turkish customers.

Step 1: Build a disciplined tag taxonomy

Budget: 10 minutes. Tags are the fastest way to slice your contact list, but an undisciplined tag library becomes noise within 90 days. The fix is a three-category model before you create a single tag.

Go to Contacts > Tags > Manage. Create tags in three groups:

SOURCE TAGS (where the lead came from)
  src:telegram-group    - found via group scrape or bot
  src:x-organic         - found via X DM or mention
  src:referral          - referred by existing customer
  src:csv-import        - brought in from a cold list
  src:live-chat         - started a web chat session

SEGMENT TAGS (what the lead is interested in)
  plan:pro              - expressed interest in Pro plan
  plan:enterprise       - enterprise-size company
  interest:pricing      - asked about pricing (often auto-applied)
  interest:api          - asked about API or integrations
  use-case:sales        - primary use case is sales outreach
  use-case:support      - primary use case is customer support

STATUS TAGS (where they are right now)
  status:vip            - top-tier, high-value relationship
  status:demo-booked    - demo call scheduled
  status:cancelled      - churned or cancelled subscription
  status:re-engage      - dormant, queued for re-engagement

Aim for 5-8 tags per category. A total of 25 tags handles most businesses comfortably. If you find yourself creating a 26th tag, ask first whether an existing tag covers the same case.

Tags can be applied manually from the contact record, applied in bulk from the list view, or applied automatically via an auto-tagging rule (covered in Step 3).

Step 2: Add custom fields

Budget: 5 minutes. Custom fields let you store data specific to your business that does not fit the standard contact fields (name, Telegram handle, email, phone).

Go to Settings > Custom Fields > Contacts. Click Add field and pick a type:

  • Text - single-line string. Use for: Company name, Job title, LinkedIn URL.
  • Number - integer or decimal. Use for: Employee count, Monthly revenue, Deal size estimate.
  • Dropdown - predefined option list. Use for: Industry, Lifecycle stage, Lead source, Plan tier.
  • Date - calendar date. Use for: Trial start date, Contract renewal date, Last in-person meeting.

Each workspace supports up to 24 custom fields on contacts. Every custom field becomes available as a filter in saved segments and as a merge tag in message templates.

Good starter custom fields for a SaaS team:

Field name          Type        Example value
--------------------------------------------------
Company             Text        Acme Inc.
Country             Text        Singapore
Employee count      Number      150
Monthly budget      Number      5000
Industry            Dropdown    SaaS / E-commerce / Agency
Lifecycle stage     Dropdown    MQL / SQL / Customer / Churned
Trial start date    Date        2026-06-01
Contract renewal    Date        2027-01-15

Step 3: Design your hybrid lead-scoring model

Budget: 15 minutes. Hybrid scoring combines two types of signal: fit (explicit demographic or firmographic attributes) and engagement (behavioral actions). A contact who matches your ideal customer profile (ICP) but has never engaged is worth less than one who is actively asking about pricing.

See the lead scoring glossary entry for the conceptual background. Below is a practical worked rubric you can adapt in Settings > Lead Scoring.

=== CRM SOLID HYBRID LEAD-SCORING RUBRIC ===

-- FIT (EXPLICIT) SIGNALS --
Attribute                         Points
-----------------------------------------
Job title is decision-maker        +30
Company size 50-500 employees      +20
Company size 500+ employees        +30
Target industry match              +20
Country is primary market          +10
Custom field "lifecycle" = MQL     +15

-- ENGAGEMENT (BEHAVIORAL) SIGNALS --
Action                            Points
-----------------------------------------
Replied to any message             +10
Asked about pricing                +50   (also auto-tags "interest:pricing")
Clicked a Calendly or demo link    +25
Booked a demo call                 +75
Asked about API or integrations    +30   (also auto-tags "interest:api")
Opened an email                    +5
Clicked a link in an email         +15
Tagged as "status:vip"             +20

-- TIERS --
Score 80+  -> Hot   (follow up within 24 hours)
Score 50-79 -> Warm  (follow up within 72 hours)
Score 0-49  -> Cold  (nurture sequence or archive)

-- DECAY (manual/automation) --
No inbound message in 30 days:    -10
No inbound message in 60 days:    -20
Contact opens and then goes dark: -15

Go to Settings > Lead Scoring and enter your rules. For auto-tagging rules (e.g., automatically apply "interest:pricing" when a message contains "pricing" or "how much"), go to Contacts > Tags > Auto-tag rules > New. The auto-tag rule simultaneously applies the tag and triggers the +50 scoring event, so one configuration covers both.

Tip: start with only the 3-4 highest-signal engagement events (pricing ask, demo booked, Calendly click). Add more rules after 30 days when you have data to see which events actually correlate with closed deals. Scoring models that start complex drift toward noise faster than simple ones.

Step 4: Assign contacts to team members

Budget: 1 minute per contact, or 2 minutes in bulk.

For individual assignment: open a contact record. In the right side panel, click the Assigned to field. Pick a workspace member from the dropdown. The assignment is logged immediately on the activity timeline.

For bulk assignment: in Contacts, check the boxes next to multiple contacts (or use the header checkbox to select a page). Click Actions > Assign and choose the assignee. Bulk assignment is useful after segment work - e.g., assign all 47 MQL contacts to your senior AE.

Assignments surface in the unified inbox filter: each team member can filter their inbox to show only conversations with their assigned contacts, reducing noise in shared inboxes.

Step 5: Read the activity timeline

The Conversation timeline on every contact record is the single most important tool for understanding a lead before reaching out. It shows:

  • Every inbound and outbound message across Telegram, X, and email, with a channel icon and timestamp.
  • System events: tags applied, score changes, assignments, demo bookings.
  • Point deltas for each scoring event, displayed inline (e.g.,+50 next to "Tagged as Pricing intent").
  • A summary footer with total messages, response rate, and average reply time.

Read the timeline chronologically (oldest at the bottom) to understand how the relationship developed. Read it reverse-chronologically (newest at top) to catch up quickly before a follow-up. The channel icons tell you which platform each message came from, so you do not accidentally reference a conversation the contact had on a different channel.

Step 6: Track GDPR consent

Budget: 2 minutes setup, zero ongoing effort.

CRM Solid captures a consent record every time a contact enters the system via a known capture point. The consent ledger on each contact shows:

  • Source: e.g. "Telegram bot: /start", "Newsletter form: /pricing page", "CSV import: admin panel".
  • Region: the jurisdiction of the contact at capture time (EU, UK, US, TR, etc.).
  • Captured: exact timestamp.
  • Basis: the lawful basis under GDPR (Consent Art. 6(1)(a), Contract Art. 6(1)(b), etc.) or KVKK for Turkish contacts.
  • Status: active, pending (consent required but not yet obtained), or revoked.

The ledger is hash-chained and tamper-evident. For a Subject Access Request, open the contact and click Export - the system bundles all data (messages, custom fields, consent records) as JSON + CSV. For a Right to be Forgotten request, click Erase - this removes the contact and every associated message. Both operations complete in under 60 seconds.

If a contact's region is EU and their basis is "pending KVKK consent", you should pause outreach to that contact until consent is confirmed. The pending status appears as an orange indicator in the contact list so it does not get missed.

Step 7: Segment and filter by tags and score

Saved segments are the operational output of all the work in the previous steps. Go to Contacts > Segments > New and compose a filter. Useful starting segments:

Segment name                Filter expression
-------------------------------------------------------------
Hot leads (act now)         lead_score > 79
Warm pricing leads          tag:"interest:pricing" AND
                            lead_score > 49
Hot leads gone quiet        lead_score > 79 AND
                            last_reply > 7d
MQL ready to hand off       custom.lifecycle = "MQL" AND
                            lead_score > 59
VIP active                  tag:"status:vip" AND
                            lead_score > 79
Cold - re-engage Q3         lead_score < 30 AND
                            last_seen > 60d
Enterprise prospects        custom.employee_count > 499 AND
                            lead_score > 29
Demo booked (prep now)      tag:"status:demo-booked"

Saved segments are live: the count refreshes automatically every time you open them. You can launch a campaign sequence directly from a segment by clicking Actions > Start sequence.

Step 8: Weekly hygiene routine

Budget: 15 minutes every Monday morning.

  1. Review top 20 by score. Sort contacts by Lead Score descending. Any contact above 70 that your team has not touched in 7 days gets an immediate follow-up task (Actions > Create task or assign to a team member).
  2. Apply decay manually or via automation. Open the "Cold - no activity 30d" segment. Select all. Apply Actions > Score adjust > -10. This keeps scores calibrated to current engagement, not past momentum.
  3. Archive dead contacts. Open the "no activity 90d and score < 20" segment. Select all. Archive (not delete - archived contacts do not count against plan limits and can be restored). This keeps your active list clean.
  4. Audit the tag library. Go to Contacts > Tags > Manage. Sort by count ascending. Any tag with fewer than 5 contacts after 60 days is either redundant or mis-applied. Merge it into a parent tag or delete it.
  5. Review consent pending. Filter Contacts by consent status = "pending". For each contact, either obtain consent before the next outreach or archive them.

Teams that run this routine consistently report 20-30% higher reply rates from their active list, because they are reaching genuinely engaged contacts rather than a bloated database full of cold noise.

CRM Solid contacts vs spreadsheet vs HubSpot vs Pipedrive

An honest comparison of contact management depth across common tools.

CapabilityCRM SolidRecommendedSpreadsheetHubSpotPipedrive
Contact data
Tags + saved segments
Custom fields (up to 24)
Live segments (auto-refresh)
Activity timeline across channels
Lead scoring
Hybrid fit + engagement scoring
Score updates on every event
Score visible on contact list
Compliance
Per-contact GDPR consent ledger
One-click Subject Access Request export
One-click Right to be Forgotten erase
Pricing
Pricing model
FlatFreePer-seatPer-seat
Starts at (per month)
$29$0$45/seat$14/seat

HubSpot and Pipedrive lead scoring requires paid tiers. HubSpot lead scoring is available from Marketing Hub Professional ($800/mo). Pipedrive does not have native lead scoring. Spreadsheet 'partial' on tags reflects manual color coding, which does not filter or auto-refresh.

“We had 4,000 contacts and no idea which ones were actually interested. After setting up the scoring model and running the weekly hygiene routine twice, our AE had a prioritized list of 38 contacts to call. She closed 6 of them that week.”
Kenji Watanabe
Head of Sales · Meridian SaaS

Contact tags and lead scoring FAQ

The questions sales teams and CRM admins ask most in the first week of setup.

A tag taxonomy of 15-25 tags is a healthy upper bound for most teams. Once you exceed 40 tags, contacts end up carrying 8-10 tags each and the system loses signal. The three-category model - source tags, segment tags, and status tags - naturally limits sprawl. If a tag has fewer than 5 contacts after 60 days, archive it.
Hybrid lead scoring combines two dimensions. "Fit" (or explicit) scoring adds points for demographic and firmographic attributes: job title, company size, industry, country. "Engagement" (or behavioral) scoring adds points for actions: replied, clicked a link, asked about pricing, booked a demo. A contact who fits your ICP but has never engaged still scores lower than one who is actively asking questions, which reflects real purchase intent better than firmographic data alone.
Yes. CRM Solid updates the score on every qualifying event - incoming reply, link click, tag applied, demo booking. You see the incremental change (e.g. +25) on the activity timeline entry that triggered it. The score does not decay on a timer automatically; decay is applied when you run the weekly hygiene routine described in Step 8 of this guide, or via an automation rule you configure.
CRM Solid supports four custom field types: text (single line), number (integer or decimal), dropdown (predefined options), and date. Each workspace supports up to 24 custom fields per contact. Field values are searchable and filterable in saved segments.
Every contact has an immutable consent ledger. Each record shows the capture source (e.g. "Telegram bot: /start"), the region/jurisdiction, a timestamp, and the lawful basis (consent under GDPR Art. 6(1)(a), contract under 6(1)(b), etc.). The ledger is hash-chained and tamper-evident. From the contact record you can export everything (Subject Access Request) in one click or erase the contact and all associated messages (Right to be Forgotten) in under 60 seconds.
Open the contact record. In the right-side panel, click the "Assigned to" field and pick a team member from the dropdown. That member receives an in-app notification. The assignment is logged on the activity timeline with a timestamp, so you have a clear handoff record. You can also assign in bulk from the contacts list view using the multi-select checkbox.
Yes. Saved segments accept compound filter expressions. Example: tag:"Pricing intent" AND lead_score > 70 AND last_reply > 7d. Saved segments are live - they re-evaluate on every page load, so the count you see is always current. You can trigger a campaign sequence directly from a saved segment.
Yes. The CSV import wizard auto-detects a "tags" column and maps it to the contacts tag field. Multiple tags per contact should be comma-separated in the CSV cell. Lead score is not imported by default (it starts at 0 for new imports), but you can add a "lead_score" column and the wizard will map it if the header matches.
Ready to ship

Get your contacts scored and segmented in one afternoon

A 14-day free trial includes full contact CRM, lead scoring, custom fields, GDPR consent ledger, and saved segments. No credit card required.

Trusted by 2,500+ teams · GDPR-ready · 99.95% uptime

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.