[{"data":1,"prerenderedAt":20},["ShallowReactive",2],{"blog-post-en-automate-repetitive-data-entry-phoma-visual-flow-builder":3},{"slug":4,"lang":5,"title":6,"summary":7,"date":8,"tags":9,"tag_slugs":15,"thumbnail_url":16,"translations":17,"body":18,"asset_base":19},"automate-repetitive-data-entry-phoma-visual-flow-builder","en","Automate Repetitive Data Entry with Phoma’s Visual Flow Builder","Build visual automation flows in Phoma to fill forms, import data, and validate entries across one or many Android devices—no coding required.","2026-11-04",[10,11,12,13,14],"phoma","automation","android","data-entry","ui-flow",[10,11,12,13,14],"https://blog-api.phomaapp.com/api/blog/posts/automate-repetitive-data-entry-phoma-visual-flow-builder/thumbnail.svg?lang=en",[5],"## Introduction\n\nManual data entry is a time‑drain and a common source of typos, duplicates, and missed deadlines. Whether you are a QA tester validating app inputs, a small‑business owner syncing daily sales, or an operations team feeding data into a CRM, repeating the same taps, swipes, and text‑inputs every day adds up quickly. Phoma’s visual flow builder lets you capture those actions once and replay them on any Android device, even across a fleet of phones, without writing a line of code. In this guide we’ll walk through a complete, real‑world example of automating repetitive data entry, explain why each step matters, and give you concrete instructions you can copy‑paste into Phoma.\n\n## Why Automate Data Entry?\n\n- **Speed & Consistency** – A single tap can fill an entire form, eliminating the human factor that causes missed fields.\n- **Error Reduction** – Automated typing respects exact formatting (e.g., dates, phone numbers) and avoids copy‑paste mistakes.\n- **Scalability** – One flow can run on a single device or dozens, keeping data entry uniform across your team.\n- **Auditability** – Every step is recorded, making it easy to review, debug, and prove compliance.\n\n## Connect Your Phone to Phoma\n\nBefore you can interact with an app you need a stable connection.\n\n### USB Debugging\n1. Enable **Developer options** on the Android device (Settings → About phone → Build number → tap 7×).\n2. Open **Developer options** and turn on **USB debugging**.\n3. Connect the phone to your Windows PC with a USB cable.\n4. In Phoma, click **Add Device** → **USB** and select your device from the list. Phoma will install the necessary drivers automatically.\n\n### Wireless (ADB Pairing)\n1. Keep **USB debugging** enabled.\n2. On the same Wi‑Fi network, open a terminal and run `adb pair \u003Cphone_ip> 12345`. Phoma will show a pairing code; enter it on the phone.\n3. In Phoma choose **Wireless** → **Add wireless device**, scan the QR code, and the connection is established.\n\n> **Tip:** Always verify the connection by mirroring the screen (`scrcpy` is built‑in to Phoma). If you see the device’s screen, you’re ready to build the flow.\n\n## Inspect the App’s UI Hierarchy\n\nTo create reliable selectors you need to read the element tree of the target app.\n\n1. In Phoma, open the **Inspect** mode for the connected device.\n2. Navigate to the app you want to automate (e.g., a CRM).\n3. Tap an element (EditText, Button, ListView) and Phoma displays its **resource‑id**, **class**, **text**, and **bounds**.\n\n### Example Selector (CRM Login Screen)\n```\n// Username field\nresourceId=\"com.example.crm:id/et_username\"\nclassName=\"android.widget.EditText\"\ntext=\"\"\n\n// Password field\nresourceId=\"com.example.crm:id/et_password\"\nclassName=\"android.widget.EditText\"\ntext=\"\"\n\n// Login button\nresourceId=\"com.example.crm:id/btn_login\"\nclassName=\"android.widget.Button\"\ntext=\"SIGN IN\"\n```\n\nChoosing the **resource‑id** is usually the safest because it survives language changes, but if an app lacks an id you can fall back to **class** + **text** or **content‑desc**.\n\n## Build the Flow Step‑by‑Step\n\nPhoma’s flow editor works like a drag‑and‑drop timeline. Below is a concrete example that copies a contact from the device’s Contacts app into a CRM.\n\n### 1️⃣ Open Contacts App\n- **Action:** `Launch App` → select `com.android.contacts`\n- **Wait:** `Wait for element` with `resourceId=\"com.android.contacts:id/search_bar\"`\n\n### 2️⃣ Locate a Specific Contact\n- **Action:** `Tap` on `resourceId=\"com.android.contacts:id/contact_name\"` (e.g., “John Doe”)\n- **Action:** `Copy Text` → store in variable `{contact_name}`\n- **Action:** `Copy Text` → store in variable `{contact_phone}` (from `resourceId=\"com.android.contacts:id/phone_number\"`)\n\n### 3️⃣ Switch to CRM\n- **Action:** `Switch to recent app` → select `com.example.crm`\n- **Wait:** `Wait for element` with `resourceId=\"com.example.crm:id/et_name\"`\n\n### 4️⃣ Fill CRM Fields\n- **Action:** `Type Text` into `resourceId=\"com.example.crm:id/et_name\"` using `{contact_name}`\n- **Action:** `Type Text` into `resourceId=\"com.example.crm:id/et_phone\"` using `{contact_phone}`\n- **Action:** `Tap` on `resourceId=\"com.example.crm:id/btn_save\"`\n\n### 5️⃣ Verify Entry\n- **Action:** `Take Screenshot`\n- **Action:** `Read Text` from `resourceId=\"com.example.crm:id/tv_confirmation\"`\n- **Action:** `Assert Text Contains` `\"{contact_name}\"`\n\nThe flow can be saved with a descriptive name (e.g., **Import Contact – v1**) and reused whenever you need to bulk‑import contacts.\n\n## Real‑World Scenario: Daily Order Entry for a Small Business\n\nImagine a shop that records each day’s sales in an internal Android app called **ShopKeeper**. The same three fields (date, total amount, notes) are entered every morning.\n\n### Flow Outline\n1. **Open ShopKeeper** (`Launch App` → `com.shopkeeper.app`)\n2. **Tap \"Add Order”** (`resourceId=\"com.shopkeeper.app:id/btn_add\"`)\n3. **Select Date** (`resourceId=\"com.shopkeeper.app:id/spinner_date\"` → tap today’s option)\n4. **Enter Amount** (`resourceId=\"com.shopkeeper.app:id/et_amount\"` → type `{daily_total}`)\n5. **Enter Notes** (`resourceId=\"com.shopkeeper.app:id/et_notes\"` → type `{daily_notes}`)\n6. **Save** (`resourceId=\"com.shopkeeper.app:id/btn_save\"`)\n7. **Screenshot** for audit trail\n\n### Element Selector Example\n```\n// Date spinner\nresourceId=\"com.shopkeeper.app:id/spinner_date\"\nclassName=\"android.widget.Spinner\"\n\n// Amount EditText\nresourceId=\"com.shopkeeper.app:id/et_amount\"\nclassName=\"android.widget.EditText\"\n\n// Notes EditText\nresourceId=\"com.shopkeeper.app:id/et_notes\"\nclassName=\"android.widget.EditText\"\n\n// Save button\nresourceId=\"com.shopkeeper.app:id/btn_save\"\nclassName=\"android.widget.Button\"\ntext=\"SAVE\"\n```\n\n### Running the Flow on Multiple Devices\n- In Phoma, open the **Flows** tab, select the **Daily Order Entry** flow, then click **Run on Multiple Devices**.\n- Choose the list of phones you want (you can import a CSV with serial numbers).\n- Phoma will open each device, mirror the screen, and execute the steps sequentially, pausing between devices for a few seconds.\n\n## Describing Tasks to the AI Assistant\n\nPhoma includes an optional AI agent that can convert a plain‑language description into a visual flow. While the AI is not included in any paid plan, you can run it locally using your own API key.\n\n**Example prompt:**\n> \"Import today’s sales data from the clipboard into the ShopKeeper app on each connected device. The clipboard contains three values: date, amount, and notes. The app fields are identified by resource IDs et_date, et_amount, and et_notes. After filling, tap the save button and capture a screenshot.\"\n\nThe AI returns a JSON representation of actions. You can paste that JSON into Phoma’s **Import Flow** dialog, and Phoma will render the steps on the timeline for you to edit or run directly.\n\n## Testing and Validation\n\nEven a visual flow needs verification:\n\n- **Screenshots** after each major step help you see if the UI updated as expected.\n- **Read Text** actions let you capture dynamic content (e.g., a confirmation toast) and assert its presence.\n- **Condition nodes** (If/Else) let you branch based on text or element presence, ensuring the flow behaves correctly when data is missing.\n\n**Assertion Example**\n```\n// After saving a contact\nRead Text from resourceId=\"com.example.crm:id/tv_success\"\nAssert Text Contains \"Contact saved\"\n```\n\nIf the assertion fails, Phoma highlights the step and you can inspect the screenshot to see why the flow deviated (e.g., a changed resource‑id after an app update).\n\n## Troubleshooting Common Issues\n\n| Symptom | Likely Cause | Fix |\n|---------|--------------|-----|\n| Phone does not appear in Phoma | USB debugging disabled or driver missing | Re‑enable debugging, reinstall Windows ADB drivers, try a different USB cable |\n| Selector no longer works after an app update | Resource‑id changed | Re‑inspect the updated UI and update the selector in the flow |\n| Flow stops mid‑execution | Element not found within timeout | Increase **Wait for element** timeout or add a **Sleep** node before the step |\n| Screen mirror freezes | High latency on Wi‑Fi | Switch to USB connection or use a 5 GHz network |\n\nIf you encounter a persistent issue, open the device’s **Logcat** from within Phoma (Developer options → Enable “USB debugging (Phoma)” ) to see raw Android messages.\n\n## Summary\n\nAutomating repetitive data entry is a high‑impact use case that saves time, reduces errors, and scales across any number of Android devices. Phoma’s visual flow builder makes it possible to capture actions once—using reliable element selectors obtained through the built‑in inspector—and replay them on a single phone or an entire fleet. By following the step‑by‑step example of importing contacts into a CRM (and the daily order entry scenario), you can start building flows that handle everyday data tasks with the same reliability as a scripted test suite. Remember to validate each flow with screenshots and assertions, keep selectors up‑to‑date after app changes, and leverage Phoma’s AI assistant to accelerate flow creation. With these practices, your team can focus on higher‑value work while Phoma handles the repetitive typing, tapping, and validation behind the scenes.\n","https://blog-api.phomaapp.com/api/blog/posts/automate-repetitive-data-entry-phoma-visual-flow-builder/assets",1793780243733]