# Web Form (/docs/capturing-leads/web-form) Web Forms let you collect leads directly from your website without writing code. Each form is workspace-specific and publishes to a shareable link you can add to your site. ![](/docs-images/doc-image-93.webp) 1. **Open Web Forms:** From the sidebar, open **Web Forms**. ![](/docs-images/doc-image-92.webp) This is your workspace's form library. You will see templates and your existing forms with their status. 2. **Create a form:** Click **Create form**. An empty template opens where you can add and arrange fields. ![](/docs-images/doc-image-94.webp) Add fields with **Add Field**, map them to lead information, adjust labels and required settings, and customize the design such as banner, introduction, and success message. Required lead fields are included by default. 3. **Publish:** Click **Publish**. You will be prompted if any required lead fields are missing. After publishing, use **Copy Link**, **Copy Embed Code**, or **Open Form** to share it. Submissions automatically create leads in your workspace. # Custom Fields (/docs/customization/custom-fields) Pixelwand CRM can be tailored to your sales process. Existing fields, including any custom fields created for a DocType, can be arranged in the Data layout for leads, deals, and other records. ## What are Custom Fields? [#what-are-custom-fields] The Lead and Deal records include essential fields such as contact details, organization, and owner. When you need additional information, create a custom field for that DocType via **Customize Form** and then add it to the relevant layout. The field will then appear wherever that layout is used. ![](/docs-images/doc-image-136.webp) ## Adding Custom Fields to the Data Layout [#adding-custom-fields-to-the-data-layout] The button is in the **Data** tab for a record. For example, open a Lead, switch to **Data**, and find the pencil icon beside **Save** in the top right. ![](/docs-images/doc-image-54.webp) Clicking it opens **Edit Data Fields Layout**. From there you can: * Add a field with **Add Field**: choose from existing fields for that DocType. The list shows `Label: fieldname - fieldtype` and excludes restricted types. Custom fields appear here once created. * Organize the layout with **Add Tab**, **Add Section**, and **Add Column**, and drag fields or sections to reorder them. * Toggle **Show preview** to see how the layout will look, then **Save**. Use **Reset** to discard changes. By arranging fields in the Data layout, your team captures the information that matters without changing the underlying field definitions. # Custom Statuses (/docs/customization/custom-statuses) Custom statuses let you match the pipeline to your process. Statuses are workspace-specific, shared with sub-accounts, and available on every lead or deal in that workspace. ![](/docs-images/status-assign-gif.webp) ## Open Statuses [#open-statuses] Open **Settings** from the workspace switcher and go to statues in the menu. You will see two tabs at the top: **Lead statuses** and **Deal statuses**. Only workspace owners and admins can edit. Members can view and use statuses but cannot create them. ## Create a New Status [#create-a-new-status] Click **Add status**. A new row appears at the bottom. Fill in the fields: * **Status name:** unique within the workspace. Required. * **Color:** choose from 13 colors. The dot appears in dropdowns and kanban. * For deal statuses, also set **Type** (`Open`, `Ongoing`, `On Hold`, `Won`, `Lost`) and **Deal Health Scores** (`0-100`). Drag the handle to reorder. The order becomes the pipeline order. Click **Save lead statuses** or **Save deal statuses**. The new status is available immediately. > **Note:** A status in use by any lead or deal cannot be deleted. You will see *A status in use cannot be deleted.* ## Assign the Status to a Lead or Deal [#assign-the-status-to-a-lead-or-deal] Open any lead or deal. In the header, click the status (color dot + name) to open the dropdown. Choose the new status. The record saves automatically and the change appears in the lead or deal's timeline. # Quick Entry Layout (/docs/customization/quick-entry-layout) The quick entry layout controls which fields appear when you create a record. It is workspace-specific. Changes you save apply to your workspace only. ![](/docs-images/quick-entry-layout.webp) ## Steps [#steps] 1. **Open quick entry:** Go to any list such as Leads and click **Create** in the top right. The quick entry modal opens, for example, **Create Lead**. 2. **Open the layout editor:** In the modal header, click the pencil icon beside the close button. The tooltip reads **Edit fields layout**. This is visible to workspace owners and admins on desktop. 3. **Edit the layout:** The **Edit Quick Entry Layout** dialog opens. Add, remove, or reorder fields, sections, and tabs. Use **Add Field** to choose from available fields for that record type and drag to reposition. Toggle **Show preview** to see the result, or **Reset** to discard changes. 4. **Save:** Click **Save**. The dialog closes and the next time you create a record, the new layout is what you see. # Introduction (/docs) ## What is Pixelwand CRM? [#what-is-pixelwand-crm] Pixelwand CRM is a simple, affordable CRM designed for modern sales teams with unlimited users. Pixelwand CRM is crafted for providing a great user experience, packed with features for core CRM activities helping you build strong customer relationships while keeping things clean and organised. ## Why Pixelwand CRM? [#why-pixelwand-crm] Many existing CRMs are either too complex, overly generic, or locked behind steep pricing models that hinder accessibility and flexibility. Pixelwand CRM was designed to bridge this gap, offering a tool that empowers businesses to manage their customer relationships seamlessly while being easy to adapt to specific workflows. It prioritizes usability, extensibility, and affordability, making it an ideal choice for growing teams and organizations looking for a CRM that aligns with their unique processes. ## Key Features [#key-features] * **Views:** Tailor your view to display essential information by defining filters, sorting, and columns. * **Pinned:** Pin frequently used views for instant access. * **Public:** You can access pre-configured views with commonly used filters and data. * **Saved:** For easy access later, save your customized view. * **Email Communication:** Send and receive emails directly from the Lead/Deal Page. * **Email Templates:** Create and use email templates for faster communication. * **Comments:** Add comments to leads and deals to keep track of the conversation. * **Notifications:** Get notified when someone mentions you in a comment. * **Service Level Agreement:** Set SLA for leads and deals and get notified when the SLA is breached. * **Assignment Rule:** Automatically assign leads and deals to users based on the criteria. * **Tasks:** Create tasks for leads and deals. * **Notes:** Add notes to leads and deals. * **Call Logs:** See the call logs with call details and recordings. ## Integrations [#integrations] * **Twilio:** Integrate Twilio to make and receive calls from the CRM. * **WhatsApp:** WhatsApp your customer right from the lead/deal page. ## Learning and Community [#learning-and-community] * [YouTube](https://www.youtube.com/@PixelwandDotLive) # Facebook / Instagram (/docs/lead-syncing/facebook-instagram) ### Prerequisites [#prerequisites] Before you begin, you must have atleast one Facebook page and a lead generation form. You can follow [this guide](https://developers.facebook.com/docs/facebook-login/guides/access-tokens/) to obtain an access token for your account. > Note: This feature is in beta, if you find any bugs, please report them to our team. ### Adding a new Lead Sync Source [#adding-a-new-lead-sync-source] Open **Settings** from the dropdown menu on top-left corner of the CRM dashboard: ![Settings from Sidebar](/docs-images/doc-image-14.webp) Click on the **Lead Syncing** tab and then click on the `+ New` button to add a new Source: ![Lead Syncing Settings](/docs-images/doc-image-15.webp) ### Configuring Lead Sync Source [#configuring-lead-sync-source] Now follow these steps: 1. Select **Facebook** as the source type 2. Give your source a relevant name 3. Select a frequency for scheduled syncing: how frequently the leads should be automatically synced 4. Paste the Access token obtained from Meta ![New Lead Sync Source](/docs-images/doc-image-16.webp) Now click **Create**. It will take a few seconds since we are pulling the pages and forms from Facebook. But once it is done, you can select the page and the form from where the leads will be pulled in from: ![Select Page and corresponding form](/docs-images/doc-image-17.webp) As soon as you select the form, you will see a mapping table: ![CRM Mapping Table](/docs-images/doc-image-18.webp) This table let's you easily map fields of your Facebook form to fields in Pixelwand CRM. Apart from this, we also store the Lead ID and Form ID in CRM Lead document. Once you are done configuring the field mapping, click on **Update**, and that is it! Your leads will start syncing in the background in some time. ### Sync Now [#sync-now] You can also manually trigger a lead sync by clicking on the **Sync Now** button. ### Failure Logs & Retry [#failure-logs--retry] If your leads don't appear in your CRM, go to the **Failure Logs** tab, and check the logs. The failure log contains the reason for failure (e.g. Duplicate), the lead data we received from Facebook, and also error traceback if available: ![Sync Failure Log](/docs-images/doc-image-19.webp) You can click on the **Retry Sync** button to retry syncing of this particular lead. > Note: A new failure log will get created if a resync fails too. # Call Log (/docs/masters/call-log) The call log workspace records, tracks, and manages calls linked to your leads and deals. Each log is workspace-specific and shows status, duration, participants, and related notes and tasks. ## Make a call [#make-a-call] * Open a Lead or Deal record. * Click **Make a call** below the name, or use **Log a call** when logging manually. Calls require a phone number. You will be prompted if it is missing. > Refer to the [Twilio](/docs/integrations/twilio) integration to understand where and how to make calls. ![CALL](/docs-images/doc-image-13.webp) After the call, check the **Calls** tab on the lead or deal to review the activity. When a recording is available, you can play it from the call entry there. The same recording, transcript, and AI summary are also available from the **Call Logs** list. Open any entry to play the recording and review details. ![call activity](/docs-images/doc-image-112.webp) ## **Call Logs** [#call-logs] The **Call Logs** list shows every call across your workspace. Use it to filter by status, type, telephony medium, team, duration, or caller, and to open details, recording, transcript, and linked tasks. ![Screen Recording 2024-03-31 at 2.33.58 PM (1)](/docs-images/doc-image-39.webp) Beyond the list, **Power Dialer History** provides session-level analytics: processed and contacted counts, call duration, and per-call disposition, deal linking, and recordings. For deeper detail on a call, open the call entry to see status, type, participants, recording and transcript, AI summary and suggested disposition, and linked notes and tasks. # Contact (/docs/masters/contact) Contacts hold the people you sell to, with email, phone, organization, and address, and link to deals for follow-up. A single deal can have multiple contacts, with one marked as primary. ## Create a Contact [#create-a-contact] * Go to **Contacts** and click **Create**. * Fill in the details such as First Name, Last Name, Email, Mobile No., Organization, and Designation. Added details like phone, gender, and salutation are available in the form. * Use **Add address** if you need a separate address record for the contact. * Click **Create**. ![](/docs-images/doc-image-11.webp) Once added, the contact appears in the Contacts list. ![](/docs-images/doc-image-128.webp) ## Contact created via Lead [#contact-created-via-lead] When you capture a lead, add its person details (Name, Email, Mobile No., and Organization) in the lead form. ![](/docs-images/doc-image-31.webp) Once you convert the lead to a deal, a new Contact is created from that information. If a contact with the same email or phone already exists, the existing record is reused. On mobile you can also choose an existing organization or contact during conversion. You can also select an existing organization or contact when you convert a lead to a deal as shown below. On desktop this choice is not exposed. A new record is created automatically. ![](/docs-images/doc-image-106.webp) ## Linking a Contact to a Deal [#linking-a-contact-to-a-deal] You can link an additional contact to an existing deal from the deal's **Contacts** section via **Add Contact**. Choose an existing person or create a new one directly from the deal. ![](/docs-images/doc-image-113.webp) Multiple contacts can be linked to a deal. Set one as **Primary** to determine the deal's primary email and phone. # Deal (/docs/masters/deal) The Deal workspace is your central hub for managing sales opportunities. Here, you can track progress, collaborate with your team, and close deals efficiently. ![](/docs-images/doc-image-127.webp) ## What is a Deal? [#what-is-a-deal] A deal represents a potential sales transaction your company is pursuing. It is tied to an Organization, carries a Status from your pipeline, and holds products and revenue. Its currency is set to your workspace currency on creation and cannot be changed later. ## After conversion [#after-conversion] When a lead is qualified and converted, the system: * Aggregates the lead's timeline into the deal's Activity. Emails, calls, notes, tasks, and comments remain connected to the lead but appear together with the deal's history for a seamless handoff. * Creates an organization and contact from the lead when they do not already exist, reusing an existing match when found. * Lets you maintain multiple contacts on the deal and choose the primary contact, which determines the deal's primary email and phone. ## The Deal page: your deal-closing workspace [#the-deal-page-your-deal-closing-workspace] The Deal workspace brings pipeline and detail together. The list defaults to **Kanban** grouped by status. Drag a card to update status, which moves probability and close dates automatically. **Table** and **List** are available for sorting, resizing, and bulk work. Use **Manage Pipeline** to update statuses, colors, probabilities, and types. On a deal record, the header shows assignment, status, and navigation between records. The detail is split between activity tabs on the left and the record panel on the right: * **Communication:** Email, calls, SMS, and WhatsApp, available when the related channels are configured. WhatsApp and SMS prompt for setup when not enabled. * **Activities:** Tasks, notes, comments, attachments, and the complete timeline. The **Data** tab exposes editable fields without leaving the timeline. * **Contacts & Organization:** The Contacts section lists all linked contacts with primary selection. Organization details appear alongside contacts. * **Pipeline & Revenue:** Status determines health scores and, for **Won** or **Lost**, records the close date. Moving to **Lost** prompts for a reason. Products contribute to totals, and revenue is normalized for reporting. * **Collaboration:** Mentions in comments notify teammates. Assignment changes share the deal and update ownership. This centralized workspace keeps all deal-related information in one place, so you can focus on advancing opportunities and closing faster. # Email Template (/docs/masters/email-template) Email templates serve as a time-saving tool for composing emails efficiently. With Jinja templates, you can personalize emails with recipient and context variables. For one-off outreach, you can also generate an email with AI that reads the record's data and drafts a message you can edit before sending. ## Create a new Email Template [#create-a-new-email-template] To create a new email template: * Go to the Email Template list and click **New**. In the insert dialog inside the email composer, the same action appears as **Create**. * Select the DocType for which you are composing the template: **CRM Lead** or **CRM Deal**. * Fill in **Name**, **For**, **Subject**, **Content**, and **Enabled**. Content type can be **Rich Text** or **HTML**. * Click **Create** for a new template or **Update** when editing an existing one. ![PInnXua](/docs-images/doc-image-35.webp) Only **Enabled** templates appear in the email composer's insert list. All templates remain visible and manageable in the templates list, and are team-scoped. ## Using the Email Template [#using-the-email-template] You can use the templates you created while composing emails by clicking the **Insert Email Template** button in the editor. For example, as seen in the screenshot, the email template "First Email for Partners" is selected. ![download](/docs-images/doc-image-114.webp) ## Generate with AI [#generate-with-ai] In the same email editor, click **Generate with AI**. The AI reads the current record's details along with recent emails, call logs, and notes to draft a relevant, professional and concise email. * Choose a **Quick Prompt** such as **Polite Follow-up**, **Schedule Meeting**, **Introduction**, **Offer Discount**, or **Re-engage Cold Lead**, or describe the tone and intent in your own words, for example, *friendly and concise* or *formal proposal with next steps*. * The draft is inserted into the editor. Review, edit, and send or schedule as usual. The email can be saved as a template if you want to reuse it. The subject and body are generated by the AI and can be regenerated with a different prompt or tone at any time. ![](/docs-images/doc-image-23.webp) ![](/docs-images/doc-image-137.webp) # Work with Lead details (/docs/masters/lead/details) The Lead detail workspace combines the customer timeline with the fields and actions needed to qualify an opportunity. ## Understand the workspace [#understand-the-workspace] The center of the page contains activity tabs for communication and follow-up work. The record panel on the right contains the Lead's image, contact actions, key fields, and other sections configured for your team. Use the documentation sidebar alongside the Lead. You can follow these steps without leaving or reloading the record. ## Qualify and update a lead [#qualify-and-update-a-lead] Check the Lead name, organization, email, mobile number, and source. Select the record identifier at the top of the detail panel when you need to copy it. Use **Assign to** to make responsibility clear. Update the status from the header as the Lead moves through your qualification process. Add a task, note, comment, email, call, SMS, or WhatsApp activity from the relevant tab. A useful record should make the next step obvious to another teammate. Edit values in the right record panel. Field sections and required information may vary because administrators can customize the Lead layout. ## Communicate from the record [#communicate-from-the-record] The quick actions below the Lead name can start a call, compose an email, open the website, or attach a file. An action that depends on a phone number, email, or website will prompt you when that value is missing. Use the activity tabs to review the complete history rather than relying only on the latest message. Attachments, notes, tasks, comments, and supported communication channels remain connected to the Lead. ## Convert a qualified lead [#convert-a-qualified-lead] Select **Convert to Deal** in the header when the Lead is qualified and active sales tracking should begin. During conversion, a new Contact and Organization are created from the Lead's information. On mobile you can also choose existing records instead. Review the details before confirming. The system prevents duplicate contacts and organizations. After conversion, continue opportunity management from the Deal. The active Lead list excludes converted leads. ## Delete a lead [#delete-a-lead] The delete action appears only when you have permission. Review linked records in the confirmation flow before deleting; deleting a Lead is different from converting or disqualifying it. ## Return to the queue [#return-to-the-queue] Use the breadcrumb in the header to return to the same Lead view. For filtering, bulk work, and view management, see [the Lead list guide](/docs/masters/lead/list). # Lead (/docs/masters/lead) In Pixelwand CRM, a Lead represents a potential customer who has shown some level of interest in your products or services. Leads can come from: * Website inquiries such as contact forms and live chat * Referrals from existing customers * Networking events and conferences * Paid marketing campaigns across social media and search ## Capturing lead data [#capturing-lead-data] The Lead workspace is the central place for capturing and managing potential customer information. This is where you collect details such as: * Name and contact information * Company information, when applicable * Lead source * Products, services, or needs they are interested in A Lead captures initial interest. It does not automatically create Contact or Organization records. ![](/docs-images/doc-image-3.webp) ## Converting leads to deals [#converting-leads-to-deals] Once you have qualified a Lead, convert it into a Deal to begin tracking the sales process. ![](/docs-images/doc-image-106.webp) During conversion, you can create new Contact and Organization records from the Lead or connect existing records when they are already in your CRM. ## Learn the workspace [#learn-the-workspace] * [Work with the Lead list](/docs/masters/lead/list) * [Work with Lead details](/docs/masters/lead/details) # Work with the Lead list (/docs/masters/lead/list) The Lead list is your working queue for new opportunities. Use it to find the right leads, switch between visual layouts, and take action without opening every record. Keep this guide open in the right sidebar while you work. Your filters, selections, and current page remain intact. ## Choose a useful view [#choose-a-useful-view] The view selector at the top left lets you open saved views and switch between **List**, **Table**, **Group by**, and **Kanban** layouts. **Table** is the default. List and Table both show rows. Use **List** for a compact view and **Table** for full columns, sorting, and resizing. * Use **List** for scanning fields and selecting multiple leads. * Use **Table** for sorting, resizing columns, and working with many fields. * Use **Group by** to summarize leads around a field that matters to your workflow. * Use **Kanban** to move leads visually between columns. By default columns are status, but you can group by any stage or select field. ## Find and organize leads [#find-and-organize-leads] Use the view name in the header to choose a saved view. Create a focused view when a team needs a repeatable set of filters, columns, and sorting. Add filters for fields such as status, owner, organization, source, or modified date. Clicking many field values in the list can also apply a matching filter directly. Choose the columns that help you decide what to do next. Resize columns when a value needs more room, and keep the most useful fields near the beginning of the row. Select a row to open its detail workspace. Returning to the list preserves the view context in the URL. ## Create or import leads [#create-or-import-leads] Use **Create** for a single lead. Enter the essential identity and contact details, then add more information from the Lead detail page. Use **Scan Card** to start from a business card. Review the detected values before saving. Use **Import** for a spreadsheet of leads. The overflow menu also provides **View Template** and **Download CSV Template**. Web forms for lead capture are managed from **Web Forms**. ## Work with several leads [#work-with-several-leads] Select rows to reveal bulk actions. Depending on your permissions and customizations, you can assign or clear assignment, edit values, export, or delete selected leads. For leads you can also enroll in a campaign, convert to a deal, or add to a Power Dialer queue. Clear the selection after completing the action so a later operation does not include old rows. In Kanban, selection also offers **Move to status**. ## Read activity signals [#read-activity-signals] Lead cards and rows can surface assignment, status, recent changes, and activity counts. Use these signals to spot unowned leads, stalled follow-ups, or records with active conversations. The Lead list focuses on active, unconverted leads. After conversion, continue the sales process from the resulting Deal. ## Next step [#next-step] When you are ready to qualify, communicate with, or convert a specific person, open the record and use [Lead details](/docs/masters/lead/details). # Note (/docs/masters/note) Notes capture context for leads and deals. Each note has a required title, rich content, and a color (Yellow, Blue, Green, Rose, Violet, or Slate). Notes are workspace-specific and appear linked to the lead or deal they reference. ![](/docs-images/doc-image-28.webp) ## Creating Notes [#creating-notes] There are two primary ways to create notes: 1. **Notes list view:** Open **Notes** from the sidebar. This is the centralized workspace to manage all notes, with color, search, and grid cards. ![](/docs-images/doc-image-26.webp) 2. **Lead or Deal record:** From the Lead or Deal page, use **New Note** in the Notes tab, or **New** → **New Note** from the Activity tab's dropdown. You can also use **Add Note** directly from the lead or deal lists. The Notes tab shows the history of notes linked to that specific record. ![](/docs-images/doc-image-5.webp) ## Using Notes Effectively [#using-notes-effectively] Notes are flexible. The editor supports rich text, lists, and task lists. Examples: * **Call summaries:** Capture key takeaways from conversations. Power Dialer and call intelligence can also generate summaries automatically. * **Meeting agendas and minutes:** Outline purpose and key points. * **Action items:** List follow-up actions. You can extract a task from a note with **Extract task with AI**. * **Research and insights:** Document findings about leads or markets. Notes created this way notify the team and appear in the timeline. By keeping context in notes, your team stays aligned and follow-ups become clear. # Organization (/docs/masters/organization) The Organization workspace stores company details such as website, annual revenue, territory, and team size for your leads and deals. Each organization is workspace-specific and appears with its logo where referenced. To create a new Organization, * Go to **Organizations** and click **Create** * Fill in the relevant details such as organization name, website, industry, territory, and size * Click **Create** ![](/docs-images/doc-image-103.webp) An organization's currency is set to your workspace currency on creation and cannot be changed later. ## Linking an Organization to a Deal [#linking-an-organization-to-a-deal] When you convert a lead to a deal, a new organization is created from the lead's details if a match does not already exist. On mobile you can also choose an existing organization. You can later change the linked organization from the deal's detail page. ![](/docs-images/doc-image-106.webp) # Task (/docs/masters/task) The task workspace is your central hub for managing follow-ups. Each task is workspace-specific and can be linked to a lead or deal. ## **With tasks, you can** [#with-tasks-you-can] * **View all tasks:** Get a clear overview of your workload, with views for today, tomorrow, overdue, and all tasks, plus kanban by status. * **Prioritize & organize:** See task details like due date and time, priority, and assignee to focus on what is urgent. * **Take action:** Create, edit, change status, and manage assignment. Status changes update the integrated ToDo and notify the team. ## Task creation [#task-creation] * **Title:** Add a clear and concise title. This is required. * **Description:** Provide details of what needs to be done. * **Status:** Choose the stage: **Backlog**, **Todo**, **In Progress**, **Done**, or **Canceled**. * **Assignee:** Assign to a team member or yourself. If left empty, it defaults to you. * **Due date:** Set the due date and time. If not set, it defaults to today. * **Priority:** Set **Low**, **Medium**, or **High**. * **Linked record:** Optionally link to a lead or deal. Tasks created from a lead or deal are linked automatically. ![Tasks](/docs-images/doc-image-101.webp) ## **Tasks** [#tasks] In the list workspace, you can switch between Table, List, and Kanban, filter, sort, and manage views. Your tasks appear across the workspace: on the tasks page, inside the lead or deal's **Tasks** tab and timeline, on the calendar when linked, and in the Overview widgets. ![Screenshot 2024-03-31 at 12.39.37 PM](/docs-images/doc-image-40.webp) # Mobile App Installation (/docs/mobile/mobile-app-installation) Pixelwand CRM offers a mobile-friendly interface through a Progressive Web App (PWA). This means you can access all the CRM functionalities directly on your phone. ## Supported Devices and Browsers [#supported-devices-and-browsers] The Pixelwand CRM PWA works on most modern smartphones and tablets. Here's a quick note about browser compatibility: * **Android:** Chrome is recommended for the best experience. * **iOS:** Safari is recommended. > NOTE: Firefox currently doesn't support PWA installation without additional plugins. ## How to Install [#how-to-install] Here's how to install the Pixelwand CRM mobile app on your phone: **Open the App URL:** In your mobile browser (Chrome or Safari), navigate to your Pixelwand CRM URL at `https://crm.pixelwand.io/crm`. ## Devices [#devices] *** ### Android (Chrome) [#android-chrome] 1. On Android, you will get a prompt to install the app on this URL. 2. If you do not see the prompt, tap on the hamburger menu (three dots), and tap on Install app from the list of options. 3. Tap on Install, and wait for a few seconds. 4. You will then be able to find the Pixelwand CRM app in your applications. You can login to this app with your site credentials. 1. On iOS, if you're using Safari, tap on the share button shown in the video below. 2. Scroll down the list of options, then tap Add to Home Screen. 3. If you do not see "Add to Home Screen", click on "Edit Actions" and you should find the option. 4. The icon will then appear on your home screen. You can login to this app with your site credentials. **Congratulations! You've successfully installed the Pixelwand CRM PWA on your mobile device.** # Assignment Rule (/docs/other-features/assignment-rule) Assignment Rules automate the process of assigning leads and deals to specific agents based on predefined conditions. This streamlines your workflow and ensures leads and deals are directed to the most qualified agents for faster resolution and improved customer experience. > **Account scope:** Each rule belongs to one workspace account, and every team only sees and manages its own rules. Managing rules (create, edit, duplicate, delete) is restricted to account owners and admins; other members cannot change them. ## **Creating an Assignment Rule** [#creating-an-assignment-rule] 1. **Open settings modal:** Click on top left dropdown and click "Settings" ![settings dropdown](/docs-images/doc-image-129.webp) 2. **Open Assignment Rules tab:** In the sidebar, under the Automation section, click on "Assignment Rules", then click on "New" ![](/docs-images/doc-image-125.webp) 3. **Define the Rule:** Fill in the following mandatory fields: * **Name:** Give your rule a descriptive name for easy identification. * **Description:** Describe in short what does the rule do * **Apply on:** Select for which doctype (Lead or Deal) the rule will apply * **Assignment condition:** Define condition using the conditions builder for the assignment rule, complex nested conditions are also supported ![](/docs-images/doc-image-100.webp) * **Users:** Choose the user(s) to whom Lead or Deal meeting the condition will be assigned. ## **Lead or Deal Routing** [#lead-or-deal-routing] Assignment Rules offer two rules for assigning Lead or Deal: 1. **Auto-rotate:** This method distributes Lead or Deal evenly among the selected users. Each user receives one assignment at a time, and the cycle repeats once all users have been assigned. 2. **Assign by workload:** This method assigns Lead or Deal to the user with the least workload, ensuring a fair distribution and preventing any single user from being overloaded. ## **Additional Fields** [#additional-fields] **Unassignment condition:** Define condition using the conditions builder for the unassignment rule, complex nested conditions are also supported. This will be used to unassign a Lead or Deal based on the condition specified **Assignment Schedule:** Select the days you want the assignment rule to be active *** By effectively utilizing Assignment Rules, you can significantly improve the efficiency and organization of your lead and deal management process. # Comment (/docs/other-features/comment) Add comments on any lead or deal to collaborate with your team, directly from the record's timeline. ![](/docs-images/doc-image-115.webp) ## Add a Comment [#add-a-comment] You add a comment from the activity area of a record: 1. Open a Lead or Deal and go to the **Comments** tab, or open **Activity** and use the **New** menu. 2. Click **New Comment** to open the editor. 3. Type your message. Use `@` to mention a teammate. They will be notified. 4. Attach files if needed. That's it. The comment appears in the timeline alongside emails, calls, tasks, and notes, and is visible to everyone with access to that record. # Data (/docs/other-features/data) The **Data** tab gives you a clean, organized view of all record information, organized into tabs, sections, and columns. It replaces the limited side panel and supports child tables. ![](/docs-images/data-layout.webp) Open a lead and update the Data layout: 1. Open any **Lead** or **Deal** and switch to the **Data** tab. 2. In the top right, click the pencil icon beside **Save**. The tooltip reads **Edit fields layout**. This is visible to workspace owners and admins on desktop. 3. The **Edit Data Fields Layout** dialog opens. Add, remove, or reorder tabs, sections, columns, and fields. Use **Add Field** to choose from available fields for that record. The list shows `Label: fieldname - fieldtype`. 4. Use **Show preview** to see the result, then click **Save**. The new layout is applied immediately to the Data tab for your workspace. # Email Communication (/docs/other-features/email-communication) Email in Pixelwand CRM lives on the record. Every message you send or receive is linked to its lead or deal and appears in the timeline for the whole team. ![](/docs-images/email-communication.webp) ## Creating an Email Template [#creating-an-email-template] Templates save you from rewriting the same messages. They support Jinja variables such as `{{ lead_name }}` and are workspace-specific. * Go to **Settings → Email Templates** and click **New**. * Choose **For**: **CRM Lead** or **CRM Deal**, then add **Name**, **Subject**, **Content**, and set **Enabled**. Content type can be **Rich Text** or **HTML**. * Click **Create** to save. To update an existing template, open it and click **Update**. Only **Enabled** templates appear when you insert them while composing. ## Sending an Email [#sending-an-email] Open any lead or deal to compose: 1. In the record's communication area, click **Reply** to start composing. The editor shows **From**, **To**, **Cc**, **Bcc**, and **Subject**. 2. Add recipients, write your message, and add attachments if needed. Use the **Insert Email Template** button to pull in a saved template. Its subject and body are copied in and remain editable. 3. Click **Send** to send immediately, or use **Schedule** to choose a future time. Scheduled emails can be cancelled from the thread until they are sent. Your **From** address comes from your connected outgoing email account. The editor remembers the last address you used. ## Using AI for Email [#using-ai-for-email] In the same editor, click **Generate with AI**: * Pick a **Quick Prompt**, for example **Polite Follow-up**, **Schedule Meeting**, **Introduction**, **Offer Discount**, or **Re-engage Cold Lead**, or describe the tone and purpose in your own words, such as *concise and friendly* or *formal proposal with next steps*. * The AI reads the current record's details along with recent emails, calls, and notes to draft a relevant and concise message signed with your name. * The draft is inserted into the editor. Review, edit, and then send, schedule, or save it as a template for reuse. You can regenerate with a different prompt at any time. ## Viewing Email History [#viewing-email-history] All messages for a record are grouped in the timeline: * **Activities** shows the full history: emails alongside calls, tasks, notes, and comments. * **Emails** shows only the email thread for that lead or deal, with reply and cancel actions for scheduled messages. Email delivery requires a connected email account. You can manage accounts from **Settings → Email Accounts** or Desk's **Email Account**. # Notification (/docs/other-features/notification) Stay informed about important activities across your workspace using Notifications. The panel is a central hub for your updates, with lists filtered to your team and delivered in-app and, where enabled, by email. ![](/docs-images/doc-image-7.webp) ## Accessing Notifications [#accessing-notifications] 1. Find **Notifications** in the sidebar. A badge shows the number of unread items. 2. Click to open the **Notifications** panel. ## Understanding Notifications [#understanding-notifications] The Notifications panel shows alerts across two tabs (**Workfeed** and **Account Watch**), grouped by type with an icon and color for each: * Mentions in comments * Task assignments, due today, and overdue * Lead and deal creation, assignment, and status changes, including conversion to a deal * Incoming and missed calls, incoming emails, SMS, and WhatsApp replies * Notes and comments, bulk import completion, and SLA breaches * Team invitations and membership changes, billing and trial updates, and the daily digest Types include **Mention, Task, Assignment, Lead, Deal, Call, Email, SMS, WhatsApp, Import, Reminder, Alert, Team, Billing,** and **Daily Digest**. Notifications are team-scoped, de-duplicated within a short window, and pushed in real time with an optional browser notification when permission is granted. ## Managing Notifications [#managing-notifications] Within the Notifications panel, you can: * **Open a notification:** Click an item to go directly to the related record (lead, deal, task, or team setting). This also marks that item as read. * **Mark all as read:** Use the dedicated button at the top of the panel to clear all unread items for the current team. Notification delivery is configured under **Platform → Notifications** in Settings (System Manager only), where each event can be toggled for **In-App** and **Email** and assigned an email template when applicable. # Service Level Agreement (/docs/other-features/service-level-agreement) An SLA (Service Level Agreement) is a formal agreement outlining the level of service a provider commits to deliver and the expectations a customer has for that service. In Pixelwand CRM, SLAs establish response time benchmarks for communication-related to Leads and Deals. ## Creating an SLA [#creating-an-sla] 1. **Switch to Desk:** Switch to the desk view by clicking the profile button in the top left corner and selecting "Switch to Desk." ![](/docs-images/doc-image-111.webp) 2. **Access SLA Master:** Go to "CRM Service Level Agreement Master" and click "Add CRM Service Level Agreement" 3. **Define SLA Details:** Fill in the following information: ![SLAGif](/docs-images/doc-image-38.webp) * **Apply On:** Select whether the SLA applies to Leads or Deals. * **Start & End Date:** Specify the date range during which the SLA will be active. * **Condition (Python Expression):** Enter a Python expression to determine when the SLA applies. For instance, you can use `doc.status == "Open"` to only set SLA for Open Leads/Deals. * **Priorities Table:** Define communication statuses and their corresponding first response time durations. The SLA will enforce the specific duration based on the communication status. * **Holiday List:** Create and link a holiday list to exclude holidays from response time calculations. * **Working Hours:** Set working hours for each day. Only communication received during these hours will be considered for calculating the first response due time. 4. **Enable the SLA:** Once you've configured the SLA details, ensure it's enabled. ### **Benefits of Using SLAs** [#benefits-of-using-slas] SLAs offer several advantages for your sales team: * **Improved Response Times:** By establishing clear response time goals, SLAs encourage prompt communication with potential and existing customers, leading to better engagement and conversion rates. * **Enhanced Customer Satisfaction:** Timely responses demonstrate your commitment to customer service, fostering trust and positive client relationships. * **Streamlined Workflow:** SLAs help prioritize communication tasks, ensuring your team focuses on the most critical leads and deals within designated timeframes. * **Performance Measurement:** SLAs provide a benchmark for evaluating your team's responsiveness and identifying areas for improvement. By effectively utilizing SLAs in Pixelwand CRM, you can empower your sales team to deliver exceptional customer service and achieve optimal sales performance. # Setting Up (/docs/setting-up) This guide will walk you through setting up Pixelwand CRM. You'll learn how to configure the essentials, bring in your data, and get your team into the app where daily sales work happens. ## Navigating your workspace [#navigating-your-workspace] After signup, you land on Overview, your home in the CRM app. This is where your team starts each day with a clear view of what needs attention. Admins also have access to the Pixelwand CRM workspace in Desk, which mirrors the same setup options for administration. ![](/docs-images/doc-image-27.webp) It is organized into two groups: * **Core records (Shortcuts):** Your primary objects: Leads, Deals, Organizations and Contacts. Create and customize these records to match your sales process. You will find them directly in the sidebar. * **Reference data (Meta):** Workspace configuration for those records: Lead Statuses, Deal Statuses, Lead Sources, Industries, Territories, Communication Statuses, Teams and similar. In the CRM app this maps to Settings → Statuses and System Configuration. For anything beyond these two groups (email, messaging, integrations), open Settings from the sidebar. Highlights include WhatsApp Business, Slack, Apollo, Telephony with 10DLC and Google Calendar, along with the standard workspace controls like Members, Billing, API Keys, Currency and Notifications, etc. ## Data population [#data-population] There are two ways to populate your CRM with data: * **Manual entry:** Add each record directly from its list or detail page. * **CSV import:** Download the Import Template from Leads, Deals or Contacts, fill it in Excel or CSV, and import. It runs in the background and creates a filtered view for the batch. The framework Data Import remains available in Desk if you prefer that route. ## Adding users [#adding-users] Invite teammates from **Invite team member** at the bottom of the sidebar. Admins can send invites and, under **Settings → Members / Invitations**, manage roles (Admin, Member, Viewer) and review pending invitations. This is what grants access to the workspace. ![](/docs-images/doc-image-121.webp) ## Accessing your CRM portal [#accessing-your-crm-portal] The **CRM Portal Page** entry in the Desk workspace opens the CRM app, the same place you see Overview and your lists, so the experience stays seamless. This is where your team works on leads and deals every day. ![](/docs-images/doc-image-110.webp) Invite team members from **Settings → Invite Members**. You can assign each member **Manager Access** (full control) or **Regular Access** (limited to assigned records). Invited members receive an email with a login link. ## Start your sales journey [#start-your-sales-journey] With these pieces in place, you can manage leads, track deals and collaborate with your team, all in the CRM app, with Desk available for deeper administration when needed. # Invite Users (/docs/settings/invite-users) Invite teammates by email and assign a role to control what they can access. Roles are **Admin**, **Member**, and **Viewer**. The workspace owner is shown as **Owner**. ## Access Levels [#access-levels] * **Admin:** Full access. Can invite and manage members, review pending invitations, manage shared lists, and edit workspace settings. Workspace owners are always Admin. * **Member:** Standard access. Works with leads, deals, and daily sales tools. Cannot manage members or workspace settings. * **Viewer:** Read-only access. Can view records without editing or managing the workspace. Only owners and admins can send and manage invitations. ## How to Invite Members [#how-to-invite-members] 1. Click **Invite team member** at the bottom of the left sidebar. Admins can also use **Invite User** at the top of Settings. 2. Enter the teammate's email address. 3. Select the role: **Admin**, **Member**, or **Viewer**. 4. Optionally add a **Personal Message** to include with the email. 5. Click **Send Invitation**. Pending invitations are listed under **Settings → Invitations**. From there admins can **Resend**, **Copy Link**, or **Cancel** an invitation. ## Invitation & Login Process [#invitation--login-process] 1. The invited teammate receives an email with an **Accept invitation** button. A personal message, if added, appears inside the email. The invitation **expires in 7 days**. 2. Opening the link shows a confirmation page. They must log in, then click **Accept Invitation** to join. They can also choose **Login with different account** if the email does not match. 3. After accepting, they land in the workspace and can update their details from **Settings → Profile**. If an invitation expires or is cancelled, it cannot be used. Expired invitations can be resent from **Settings → Invitations**, which extends the expiry. This ensures secure onboarding with role-based access. Only owners and admins can invite, and every invitation is tracked until accepted, declined, cancelled, or expired. # Profile (/docs/settings/profile) You can update your name, profile image, and password from the Profile Settings page. Your email is shown at the top for reference and is not editable. ## How to Update Your Profile [#how-to-update-your-profile] 1. Navigate to **Settings → Profile**. Profile is personal and available to every member, listed under **Profile Settings** at the top of the Settings page. 2. Update your **First name**, **Last name**, or **Phone number** as needed. 3. Hover the avatar and choose image to update your profile photo. Image changes save immediately and do not require clicking Update. Only image files are accepted. 4. Click **Change Password** at the top to set a new password. Enter **New Password** and **Confirm Password**. It must be at least 8 characters and include uppercase, lowercase, number, and symbol. The dialog shows when passwords do not match or match. 5. Click **Update** to save name or phone changes. The button stays disabled until something has changed. Ensure your profile details are up to date for a personalized experience. # Custom List (/docs/views/public-view) Custom lists are shared across your workspace. Any view you create is visible to every member of your team, grouped under **Lists** in the dropdown and sidebar. Pinned lists appear separately under **Pinned views**. ## What is a Custom List? [#what-is-a-custom-list] A custom list saves your current configuration: * **Filters:** Which records to show. * **Sorting:** The order of records. * **Columns and Layout:** Which fields and view type (List, Table, Kanban, Group by) to use. Because lists are team-scoped, a list you create is immediately available to others. No extra sharing step is needed. ## How to Create a Custom List [#how-to-create-a-custom-list] 1. Configure the list with filters, sorting, and columns as you want it saved. 2. Open the view dropdown in the list header and click **Create List**. ![](/docs-images/custom-list-create-1.webp) 3. Give the list a name and choose an icon, then click **Create**. ![](/docs-images/custom-list-create-2.webp) Your new list appears in the view dropdown under **Lists** and can be reapplied at any time. Open its three-dot menu to **Edit**, **Duplicate**, **Pin to sidebar**, **Set as default**, or **Delete**. > **Note:** All custom lists are shared by default. Use **Pin List** to surface a list in the sidebar, or **Set as default** to make it the default for its layout type. # Saved View (/docs/views/view) Views let you see the same data in the layout that fits your work. Filters, sorting, and columns are remembered, so your preferred setup is ready when you return. ## What are Views? [#what-are-views] A view is a combination of: * **Filters:** Which records to show based on criteria. * **Sorting:** The order of records (ascending, descending). * **Columns:** Which fields appear in the list. > **Note:** Views are shared across your workspace. The default **All** view and any saved views are visible to every member of the team. Pinned views appear separately in the sidebar. ## Understanding View Layouts [#understanding-view-layouts] **1. List View** ![](/docs-images/doc-image-138.webp) The view above shows the **List** layout: compact rows for scanning and working through records quickly. Changes to filters, sorting, or columns are saved automatically. **2. Kanban View** ![](/docs-images/doc-image-139.webp) The view above shows the **Kanban** layout: cards grouped by stage for drag-and-drop movement. The same filters and sorting apply here as in other layouts. Other layouts include **Table** for full columns and resizing, and **Group by** for summarizing around a field. You can switch between them from the view controls, and each layout remembers its own configuration. ## Saved View Actions [#saved-view-actions] Open the three-dot menu on a saved view to: * **Edit:** Change the name and icon. * **Delete:** Remove the view from the team. * **Pin View:** pin it to the sidebar for quick access. * **Set as Default:** make this view the default for its layout type. By using views, you can streamline your workflow and jump to the data you need. # Authentication (/docs/api/authentication) The Pixelwand CRM API authenticates external requests using a team **API key** and **API secret**. Every API key belongs to a single team, and any record created through the API is associated with that team automatically. ## Generating an API key [#generating-an-api-key] You generate a key from the team settings in the CRM: 1. Go to your team workspace. 2. Open the **API Keys** tab. It appears under **API Integration** and is visible to team owners and admins. 3. Click **Generate Key**. 4. Optionally add a description (e.g. "Website Contact Form"). 5. Click **Generate**. The **API key** is the document identifier (for example `abcd1234...`) and remains visible in the list as `Api Key: `. You can copy it at any time. The **API secret** is shown as `team_...` and is one-time: it appears as `team_XXXXXXXX` followed by `********` (`api_secret_masked`) after the first copy, and the **Copy** button is then disabled and shows **Copied**. The list also shows **Generated** and a **Not Copied / Copied** badge. > **Permissions:** Only team owners and admins can generate or delete API keys. Any team member with read access can view and, once, copy the secret. > > Treat the API secret like a password. Never expose it in client-side code or commit it to a public repository. If a secret is leaked, **delete** the key (trash icon in the API Keys list). This immediately invalidates it. Then generate a new one. ## Authorizing a request [#authorizing-a-request] Send the key and secret with every request using these headers: | Header | Description | | -------------- | ---------------------------------------------------------- | | `X-API-Key` | The team API key: the identifier shown in the list (hash). | | `X-API-Secret` | The matching API secret: the one-time `team_...` value. | No session or cookie is required. The endpoint is `allow_guest` and validates only these headers. ### Example [#example] ```bash curl -X POST https://crm.pixelwand.io/api/method/crm.api.leads.create_lead \ -H "X-API-Key: your_api_key" \ -H "X-API-Secret: your_api_secret" \ -d "name=Ada Lovelace" ``` If the key or secret is missing or invalid, no record is created. The API returns: ```json { "success": false, "error": "API key required", "message": "Authentication failed" } ``` Other messages include `Team ID required` (missing key) and `Invalid API key` (mismatch or not found), all with HTTP `PermissionError` semantics. The secret is verified by decrypting the stored `Password` field and comparing equality for that key's team. # API Reference (/docs/api) The Pixelwand CRM API lets you create leads from external sources and manage workspace records from your own applications, websites, and automation tools. ## Base URL [#base-url] All API requests are made to your CRM instance: ``` https://crm.pixelwand.io ``` Replace `crm.pixelwand.io` with your own CRM domain. ## How it works [#how-it-works] * Requests and responses use **JSON**. * External lead creation is authenticated with a team **API key and secret** sent as HTTP headers. See [Authentication](/docs/api/authentication). Other workspace operations use session authentication and are team-scoped. * Each API key is scoped to a single **team**, so records created through the API are automatically associated with that team. ## Next steps [#next-steps] * [Authentication](/docs/api/authentication): generate keys and authorize requests. * [Leads](/docs/api/leads): create leads from external sources. # Leads (/docs/api/leads) Create a lead from any external source (a website form, a landing page, or another system) using the Leads API. New leads are added to the team that owns the API key used in the request. ## Create a lead [#create-a-lead] ```http POST /api/method/crm.api.leads.create_lead ``` ### Headers [#headers] See [Authentication](/docs/api/authentication) for details. | Header | Required | Description | | -------------- | -------- | ------------------------ | | `X-API-Key` | Yes | The team API key. | | `X-API-Secret` | Yes | The matching API secret. | ### Body parameters [#body-parameters] Parameters can be sent as `form-data` or JSON. | Field | Required | Description | | --------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | | `name` | Yes | Full name of the lead. The first word becomes the first name; the rest becomes the last name. | | `email` | No | Email address. Validated; an invalid address is rejected. | | `phone` | No | Phone number. Skipped if the value is not a valid number. | | `mobile_no` | No | Mobile number. Skipped if the value is not a valid number. | | `country_code` | No | Dial code for phone parsing, for example `+91`. Used to split plain numbers into country code and national number. | | `source` | No | Lead source name (team-scoped `CRM Lead Source`). If the name does not exist for the team, it falls back to `API`. | | `organization` | No | Organization name. | | `job_title` | No | Job title. | | `website` | No | Website URL. | | `territory` | No | Territory. | | `industry` | No | Industry. | | `annual_revenue` | No | Annual revenue. | | `no_of_employees` | No | Number of employees. | | `currency` | No | Currency code. Overridden to the workspace currency on creation and locked thereafter. | | `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content` | No | UTM attribution fields. | | `` | No | Any field not listed above is captured into the lead's `extra_fields` JSON column (empty strings are ignored). See below. | ### Example request [#example-request] ```bash curl -X POST https://crm.pixelwand.io/api/method/crm.api.leads.create_lead \ -H "X-API-Key: your_api_key" \ -H "X-API-Secret: your_api_secret" \ -d "name=John Doe" \ -d "email=john@example.com" \ -d "phone=+1234567890" \ -d "country_code=+91" \ -d "source=Website" \ -d "utm_source=google" \ -d "referral_code=REF123" \ -d "campaign_id=CAMP456" ``` ### Extra fields [#extra-fields] Any parameter not in the list above is treated as a custom field and stored in the lead's `extra_fields` JSON column. These fields appear in the lead detail view under **Extra Fields** and behave identically to fields captured from unknown CSV columns during import. ```bash # These unknown fields get stored in extra_fields automatically -d "referral_code=REF123" -d "campaign_id=CAMP456" -d "custom_note=Found us via podcast" ``` The resulting `extra_fields` on the lead will be: ```json { "referral_code": "REF123", "campaign_id": "CAMP456", "custom_note": "Found us via podcast" } ``` ### Responses [#responses] **Success** ```json { "success": true, "lead_id": "CRM-LEAD-0001", "message": "Lead created successfully" } ``` If `phone` or `mobile_no` was skipped, the message includes a suffix like `Lead created successfully (skipped invalid fields: phone)`. **Error** ```json { "success": false, "error": "Name is required", "message": "Validation failed" } ``` Authentication errors return `error` as `API key required`, `Team ID required`, or `Invalid API key` with `message` as `Authentication failed`. ### Notes [#notes] * `name` is the only required field; a request without it is rejected. * Invalid `phone` or `mobile_no` values are silently skipped rather than failing the whole request, so the lead is still created. Numbers with `+` or `00` are split into national number and `country_code`; plain numbers need `country_code` to be parsed correctly. * If no `organization` is provided, the lead's organization defaults to the lead's name. If `source` is unknown for the team, it falls back to the `API` source. # Google Calendar (/docs/integrations/google-calendar) Google Calendar connects your personal calendar to Pixelwand CRM. You can view Google events beside CRM events and tasks, create entries in either product, and keep changes synchronized without copying dates manually. ## What the integration does [#what-the-integration-does] * Pulls events from each connected primary Google Calendar into the CRM calendar. * Pushes CRM events and tasks to the Google Calendar you select. * Synchronizes event dates when you drag an event to another time in CRM. * Supports multiple Google accounts for the same CRM user. * Lets you choose which main workspaces may expose your calendar to their owners and admins. * Keeps CRM Events and CRM Tasks as separate records. ## Connect a Google account [#connect-a-google-account] 1. Open your profile menu and select **Settings**. 2. Open **Google Calendar**. 3. Select **Connect account**. 4. Sign in to Google and approve calendar access. 5. After Google redirects you to Pixelwand CRM, confirm that the account shows its Google email address and a **Connected** status. To connect another account, select **Add account** and repeat the authorization flow. Each connection represents the primary calendar of the Google account shown on the connection card. ## Control workspace visibility [#control-workspace-visibility] When you connect an account, its calendar is initially visible to owners and admins of the workspace you were using. To change where it is visible: 1. Turn on **Workspace visibility** for the connection. 2. Select one or more main workspaces. 3. Select **Save**. Only owners and admins of the selected workspaces can view the shared calendar. Regular members see only their own connected calendars. Sub-accounts are not listed separately; access is configured against their main workspace. You can turn workspace visibility off to make the calendar private. This stops sharing the calendar without disconnecting it from your CRM account. ## Choose calendars to display [#choose-calendars-to-display] Open **Calendar** from the CRM navigation. Connected calendars appear under **Calendars** in the left sidebar. * Select a calendar to show its events. * Clear a calendar to hide its events without disconnecting it. * Use **Categories** to show or hide Events, Tasks, Leads, and Deals. * Use **Assignees** to narrow the calendar to particular team members. Pixelwand remembers whether you last used the Month, Week, or Day view in the current browser. ## Create an event and sync it to Google [#create-an-event-and-sync-it-to-google] 1. From the Calendar page, select **Create Event** or select a date. 2. Keep **Event** selected. 3. Add a title, start and end time, and any optional information. 4. Turn on **Sync with Google Calendar**. 5. Choose one of your connected calendars. 6. Select **Save Event**. Event options can include: * All-day scheduling * An optional related Lead or Deal * Event category * Participants * Repetition and repeat end date * Description and meeting link The Event is saved in CRM and a corresponding entry is created in the selected Google Calendar. ## Create a task and optionally sync it [#create-a-task-and-optionally-sync-it] Select **Task** in the create dialog when the item is work to complete rather than a meeting or appointment. Add the task title, due date, assignee, priority, and an optional related Lead or Deal. A CRM Task appears on the CRM calendar, but it does not create a separate CRM Event. To also create it in Google Calendar, turn on **Sync with Google Calendar** and choose a calendar before saving the Task. ## Move or update an event [#move-or-update-an-event] Drag an Event or Task to another date or time in the CRM calendar. Pixelwand updates the item immediately on screen and then sends the change to Google. The small loading indicator on the event shows while the update is being saved. If Google rejects the update, CRM restores the previous position and shows an error. Events imported from Google remain Events in CRM; they are not converted to Tasks. ## How synchronization works [#how-synchronization-works] Whenever the Calendar page requests events, Pixelwand first runs an incremental sync for every Google Calendar visible to the current workspace. It then returns the refreshed CRM calendar data. Incremental synchronization transfers only changes made since the previous successful pull. The **Sync** button on a connection card runs the same synchronization manually. Use it when you want to confirm a connection or retry after a temporary Google error. If Google Calendar is temporarily unavailable, Pixelwand continues to show the latest locally stored calendar data and retries on a later request. ## Deleted events [#deleted-events] When an event is deleted in Google Calendar, the next successful pull closes its linked CRM Event and removes it from the CRM calendar. Opening or refreshing the Calendar page performs this pull before events are displayed. Deleting a connection is different from deleting an event. Removing a connection clears its authorization and stops future synchronization, but existing CRM events remain available. ## Open, sync, or remove a connection [#open-sync-or-remove-a-connection] On **Settings → Google Calendar**, each connection provides: * **Sync:** pull the latest Google changes now. * **Open:** open the connected primary calendar in Google Calendar. * **Delete connection:** remove the stored authorization and stop syncing. ## Troubleshooting [#troubleshooting] ### The Google account is not shown as connected [#the-google-account-is-not-shown-as-connected] Return to **Settings → Google Calendar** and select **Continue with Google** if the connection says **Authorization required**. Complete the consent flow in the same browser, then select **Refresh**. ### A recent Google change is missing [#a-recent-google-change-is-missing] Reload the Calendar page or select **Sync** on the connection card. If another sync is already running, wait a moment and retry. ### A CRM item does not appear in Google Calendar [#a-crm-item-does-not-appear-in-google-calendar] Edit the Event or Task and confirm that **Sync with Google Calendar** is enabled and that a connected calendar is selected. Items created without this option remain CRM-only. ### A team calendar is missing from the sidebar [#a-team-calendar-is-missing-from-the-sidebar] The calendar owner must enable **Workspace visibility**, select your main workspace, and save. Only workspace owners and admins can view another member's shared calendar. ### Events remain visible after disconnecting [#events-remain-visible-after-disconnecting] This is expected. Disconnecting stops future synchronization but does not delete historical CRM Events. Individual events deleted in Google disappear after the next successful synchronization. # Integrations (/docs/integrations) Pixelwand CRM connects to the communication and productivity tools your team already relies on, so every conversation and record stays in one place. ## Available integrations [#available-integrations] * **[Google Calendar](/docs/integrations/google-calendar):** connect multiple Google accounts and synchronize calendars with CRM events and tasks. * **[Twilio](/docs/integrations/twilio):** make and receive calls directly from the CRM. * **[WhatsApp](/docs/integrations/whatsapp):** message customers right from the lead and deal pages. More integrations are added regularly. If there's a tool you'd like to see supported, let our team know. # Twilio (/docs/integrations/twilio) Twilio is a cloud communications platform that allows businesses to integrate voice, video, messaging, and authentication functionalities into their applications. This integration enables you to make calls directly from various pages within the CRM. ## Make call [#make-call] * **Lead page:** A call button is available in the right section above lead details. Use this button to initiate a call, but ensure the **Mobile No** field in the **Person** section includes the country code. ![](/docs-images/doc-image-34.webp) * **Deal page:** In the **Contacts** section on the right side. You can add multiple contacts and designate a primary contact. The call button will utilize the primary contact's number.\ ![](/docs-images/doc-image-30.webp) * **Contact page:** Directly initiate a call by clicking the **Mobile No** displayed below the contact's name.\ ![](/docs-images/doc-image-10.webp) ## Call pop-up [#call-pop-up] Upon making or receiving a call, a pop-up window appears displaying: * Caller name * Mobile number * Call status * Call duration * Mute button * Note button * Action buttons (Accept, Reject, Cancel Call) ![](/docs-images/doc-image-1.webp) This window can be minimized, allowing navigation to other screens, while remaining accessible in the far-right corner of the navbar.\ ![](/docs-images/doc-image-134.webp) ## Take notes during a call [#take-notes-during-a-call] While on a call, you can take notes using the note button. These notes are saved in the Call Log for later viewing and editing.\ ![](/docs-images/doc-image-130.webp) ## Twilio setup [#twilio-setup] To configure Twilio for use within the CRM, follow these steps: 1. **Twilio Subscription:** Obtain an active Twilio subscription (refer to Twilio's documentation for details). 2. **Twilio Credentials:** From your Twilio account, retrieve your Account SID, Auth Token, and Twilio Mobile Number. 3. **Settings**: Open Settings from your workspace, then go to **Integrations → Telephony**. ![](/docs-images/doc-image-29.webp) 4. **SMS Messaging:** In the **SMS Messaging** section (team-owned, separate from platform calling), turn on **Enabled** and add your Account SID and Auth Token. You can also enable **Record Calls** at this point. ![](/docs-images/doc-image-78.webp) 5. **Assign numbers:** In the **Assignment Review** table on the same page, assign a Twilio mobile number to each user who should be able to make calls. Make sure the Twilio number added does not contain spaces and special characters (it can still have + at the start)\ ![](/docs-images/doc-image-79.webp) ## Twilio API configuration [#twilio-api-configuration] For your CRM's API to connect with Twilio, perform the following configurations within Twilio: 1. **Incoming Call API URL:** Under **Phone Numbers** -> **Manage** -> **Active Numbers**, select your mobile number. Locate the **Voice Configuration** form and within the "**A call comes in**" section, add the following **URL** to the URL field: ``` "https:///api/method/crm.integrations.twilio.api.twilio_incoming_call_handler" ``` ![](/docs-images/doc-image-24.webp) This URL is responsible for handling incoming calls. 2. **Outgoing Call API URL:** Navigate to **Phone Numbers** -> **Manage** -> **TwiML apps** and select your app. In the **Voice Configuration** -> **Request URL** field, enter the following URL: ``` "https:///api/method/crm.integrations.twilio.api.voice" ``` ![](/docs-images/doc-image-25.webp) This URL is used for making outbound calls. > Please refer to Twilio's official guide for any additional Twilio configuration requirements. # WhatsApp (/docs/integrations/whatsapp) WhatsApp integration allows you to send and receive WhatsApp messages from within the lead and deal pages in Pixelwand CRM. This streamlines communication and keeps all interaction history centralised for better customer relationship management. ![wiki-hero2](/docs-images/CRMWhatsApp.webp) A dedicated WhatsApp tab is available on both Lead and Deal pages, providing a real-time chat window for efficient communication. * **Lead:** The mobile number field of a Lead is used to initiate and receive WhatsApp messages. * **Deal:** The primary contact number associated with a Deal is used for WhatsApp communication. ## Installation [#installation] WhatsApp integration is provided through a dedicated WhatsApp app. Contact your administrator to enable it on your instance. ![](/docs-images/doc-image-123.webp) ## Configuration Steps [#configuration-steps] To enable WhatsApp integration in Pixelwand CRM, follow these steps: 1. **Obtain WhatsApp Business Credentials:** Refer to the official WhatsApp guide for creating a WhatsApp Business account and acquiring the necessary credentials [WhatsApp Business Account Creation Guide](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started). ![](/docs-images/doc-image-12.webp) 2. **Configure WhatsApp Settings:** ![](/docs-images/doc-image-108.webp) * Click the dropdown menu on the top left logo and select "Settings." * Locate the **WhatsApp Settings**. * Enter the credentials obtained in step 1. * Enable the WhatsApp integration. 3. **Set up the Webhook:** ![](/docs-images/doc-image-37.webp) A webhook URL is required to establish communication between Pixelwand CRM and WhatsApp Business. Use the following URL format, replacing `` with your actual Pixelwand CRM site name and including the **Webhook Verify Token** you created in the **WhatsApp Settings** in **Verify token** field ``` https:///api/method/frappe_whatsapp.utils.webhook.webhook ``` ![](/docs-images/doc-image-107.webp) 4. **Subscribe to webhook fields**: Subscribe all webhook fields (recommended - whatsapp docs) but atleast subscribe to `messages` & `message_template_status_update` ![](/docs-images/doc-image-91.webp) ## Creating WhatsApp Templates [#creating-whatsapp-templates] To ensure compliance and streamline communication, Pixelwand CRM utilizes WhatsApp templates. These pre-approved messages can be created and managed within the system. ![](/docs-images/doc-image-133.webp) ![](/docs-images/doc-image-126.webp) 1. Navigate to the **WhatsApp Templates** DocType. 2. Click on **Add WhatsApp Template**. 3. Fill in the required details for your template message. 4. Save the template. With these configurations in place, you're ready to leverage WhatsApp Business for efficient communication with your leads and deal contacts directly within Pixelwand CRM. > **Important Note:** Due to WhatsApp Business limitations, you can only initiate communication by sending a pre-approved WhatsApp template. You can only send regular messages after receiving a reply from the customer.