ā§Ļā§§ āĻŽāĻžāĻ°ā§āϚ, ⧍ā§Ļ⧍ā§Ģ¡6 āĻŽāĻŋāύāĻŋāϟ āĻĒāĻĄāĻŧāϤ⧇

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ UI āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ: āĻĒā§āϰāĻŋāĻ­āĻŋāω, āĻ…āύ⧁āĻŽāϤāĻŋ āĻ“ āφāύāĻĄā§

āϭ⧁āϞāĻŦāĻļāϤ āĻŦāĻĄāĻŧ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āĻŽāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ UI āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ: āĻĒā§āϰāĻŋāĻ­āĻŋāω-āĻĒā§āϰāĻĨāĻŽ āĻĢā§āϞ⧋, āĻ…āύ⧁āĻŽāϤāĻŋ āϝāĻžāϚāĻžāχ, āφāύāĻĄā§ āĻ…āĻĒāĻļāύ, āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžā§Ÿāύāϝ⧋āĻ—ā§āϝ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϏ⧁āϰāĻ•ā§āώāĻžāĻŦāϞāĻŋāĨ¤

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ UI āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ: āĻĒā§āϰāĻŋāĻ­āĻŋāω, āĻ…āύ⧁āĻŽāϤāĻŋ āĻ“ āφāύāĻĄā§

āϕ⧇āύ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦā§āϝāĻ°ā§āĻĨ āĻšā§Ÿ (āĻāĻŦāĻ‚ “āύāĻŋāϰāĻžāĻĒāĻĻ” āĻŽāĻžāύ⧇ āϕ⧀)

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻšāϞ⧋ “āĻ…āύ⧇āĻ• āφāχāĻŸā§‡āĻŽā§‡ āĻāĻ•āχ āĻ•āĻžāϜ āĻ•āϰāĻžâ€ āĻ•āύāĻŸā§āϰ⧋āĻ˛â€”āϝāĻž āĻŽāĻžāύ⧁āώ āĻĻā§āϰ⧁āϤ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻāϰ āĻŽāĻžāύ⧇ āĻšā§Ÿ āĻŦāĻžāĻ˛ā§āĻ• āĻāĻĄāĻŋāϟ (āĻāĻ•āϟāĻŋ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ), āĻŦāĻžāĻ˛ā§āĻ• āĻĄāĻŋāϞāĻŋāϟ, āĻ…āĻ¨ā§āϝ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻŦāĻž āĻ¸ā§āĻŸā§‡āĻœā§‡ āĻŽā§āĻ­ āĻ•āϰāĻž, āĻ•āĻžāωāϕ⧇ āĻ…ā§āϝāĻžāϏāĻžāχāύ āĻ•āϰāĻž, āĻŸā§āϝāĻžāĻ— āϝ⧋āĻ— āĻ•āϰāĻž āĻŦāĻž āϕ⧋āύ⧋ āĻ“ā§ŸāĻžāĻ°ā§āĻ•āĻĢā§āϞ⧋ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰāĻžāĨ¤

āĻāϗ⧁āϞ⧋ āĻŦā§āϝāĻ°ā§āĻĨ āĻšā§Ÿ āϏāϰāϞ āĻ•āĻžāϰāϪ⧇: āĻāϗ⧁āϞ⧋ āϧ⧀āϰ⧇ āϧ⧀āϰ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄ-āĻŦāĻžāχ-āϰ⧇āĻ•āĻ°ā§āĻĄ āϚāĻŋāĻ¨ā§āϤāĻž āĻŦāĻĻāϞ⧇ āĻĻā§āϰ⧁āϤāϤāĻž āύ⧇āϝāĻŧāĨ¤ āϝāĻ–āύ āĻ¸ā§āϕ⧋āĻĒ āĻ¸ā§āĻĒāĻˇā§āϟ āĻĨāĻžāϕ⧇ āϤāĻ–āύ āĻ“āχ āĻŸā§āϰ⧇āĻĄ āĻ āĻŋāĻ• āφāϛ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒā§āϰāĻžāϝāĻŧāχ āĻ¸ā§āϕ⧋āĻĒ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ āĻĨāĻžāϕ⧇, āĻĢāϞāĻžāĻĢāϞ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ, āĻāĻŦāĻ‚ āĻ…āύ⧁āĻŽāϤāĻŋ āύāĻŋ⧟āĻŽ āĻ…āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϟāĻŋ āĻ āĻŋāĻ• āĻŽāύ⧇ āĻšā§Ÿ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āϕ⧇āω āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧇ āϝ⧇ āϭ⧁āϞ ⧍ā§Ļā§Ļ āϰ⧇āĻ•āĻ°ā§āĻĄ āφāĻĒāĻĄā§‡āϟ āĻšā§Ÿā§‡āϛ⧇āĨ¤

āĻāĻ•āχ āϏāĻŽāĻ¸ā§āϝāĻž āĻŦāĻžāϰāĻŦāĻžāϰ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ:

  • āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ (āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻŦāύāĻžāĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž āφāχāĻŸā§‡āĻŽ, āĻĒ⧇āϜ āϜ⧁āĻĄāĻŧ⧇, “select all”-āĻāϰ āϏāĻžāϰāĻĒā§āϰāĻžāχāϜ)āĨ¤
  • āĻĒā§āϰāĻ­āĻžāĻŦ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻ•āϰāĻž āĻ•āĻ āĻŋāύ (āφāĻĒāύāĻŋ āĻ•āĻŋ āφāϏāϞ⧇ āĻŦāĻĻāϞāĻžāĻŦ⧇ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ āύāĻž)āĨ¤
  • āĻ…āύ⧁āĻŽāϤāĻŋ āĻĒāϰ⧇ āϚāĻžāϞāĻžāύ⧋ āĻšā§Ÿ āĻŦāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ UI-āϤ⧇ āϝāĻžāϚāĻžāχ āĻ•āϰāĻž āĻšā§ŸāĨ¤
  • “Undo” āύ⧇āχ, āĻ…āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ, āĻŦāĻž āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋāĻ•āϰāĨ¤
  • āϕ⧋āύ⧋ āĻ…āĻĄāĻŋāϟ āĻŸā§āϰ⧇āχāϞ āύ⧇āχ, āϤāĻžāχ āϕ⧇āω āϘāϟāύāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

āĻ•ā§āώāϤāĻŋ āĻĒā§āϰāĻžāϝāĻŧāχ āϏāĻžāĻŽāĻžāĻ¨ā§āϝ āĻšā§Ÿ āύāĻžāĨ¤ āĻ—ā§āϰāĻžāĻšāĻ•āϰāĻž āϭ⧁āϞ āχāĻŽā§‡āχāϞ āĻĒāĻžāϝāĻŧ, āχāύāĻ­ā§Ÿā§‡āϏ āϭ⧁āϞ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ⧇ āϝāĻžāϝāĻŧ, āĻŦāĻž āϏ⧇āϞāϏ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āϭ⧁āϞ āĻ­āĻžāϰāĻĒā§āϰāĻžāĻĒā§āϤāϕ⧇ reassigned āĻšā§ŸāĨ¤ āĻĄā§‡āϟāĻž āϰāĻŋāĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āϗ⧇āϞ⧇āĻ“ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āϘāĻŖā§āϟāĻž āϏāĻŽā§Ÿ āĻ¨ā§‡ā§Ÿ āĻāĻŦāĻ‚ āϏāĻ¨ā§āĻĻ⧇āĻš āϤ⧈āϰāĻŋ āĻ•āϰ⧇: “āĻāχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻ“āĻĒāϰ āĻ•āĻŋ āφāĻŽāϰāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ?”

“āύāĻŋāϰāĻžāĻĒāĻĻ” āĻŦāϞāϤ⧇ āϧ⧀āϰ āĻŦāĻž āϏāϤāĻ°ā§āĻ•āϤāĻžāĻŽā§‚āϞāĻ• āϏāϤāĻ°ā§āĻ•āĻŦāĻžāĻ°ā§āϤāĻž āĻŦā§‹āĻāĻžā§Ÿ āύāĻžāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāĻšā§āϛ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāĻŋāĻļā§āϚāϝāĻŧāĻ­āĻžāĻŦ⧇ āϤāĻŋāύāϟāĻŋ āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āφāϗ⧇ āϝ⧇ āĻŦāĻŋāσāĻ•āĻŽāĻŋāϟ āĻ•āϰāĻŦ⧇āύ:

  1. āĻ āĻŋāĻ• āϕ⧋āύ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāĻŦ⧇?
  2. āĻ āĻŋāĻ• āϕ⧀ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāĻŦ⧇, āĻāĻŦāĻ‚ āϕ⧀ āĻšāĻŦ⧇ āύāĻž?
  3. āĻāϟāĻž āϭ⧁āϞ āĻšāϞ⧇ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āĻ¸ā§ŽāĻ­āĻžāĻŦ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĢāĻŋāϰ⧇ āφāϏāĻž āϝāĻžāĻŦ⧇?

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰ⧁āύ: āφāωāĻŸā§‡āĻœā§‡āϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϞāĻŋāĻĄ āϟāĻŋāĻ•āĻŋāϟāϗ⧁āϞ⧋ āĻŦāĻžāĻ˛ā§āĻ•-āĻ•ā§āϞ⧋āϜ āĻ•āϰāϛ⧇āĨ¤ āϝāĻĻāĻŋ UI āϚ⧁āĻĒāϚāĻžāĻĒ āφāĻ°ā§āĻ•āĻžāχāĻ­ āĻšāĻ“ā§ŸāĻž āϟāĻŋāĻ•āĻŋāϟāĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇, āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻ•āĻžāωāĻ¨ā§āϟ āύāĻž āĻĻ⧇āĻ–āĻžāϝāĻŧ āĻāĻŦāĻ‚ āϕ⧋āύ⧋ āφāύāĻĄā§ āύāĻž āĻĻā§‡ā§Ÿ, āϤāĻžāĻšāϞ⧇ ā§Šā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻ•ā§āϞāĻŋāύāφāĻĒ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϘāϟāύāĻžāϰ āϰ⧂āĻĒ āĻ¨ā§‡ā§ŸāĨ¤

āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻŽā§‚āϞ āύ⧀āϤāĻŋ

āĻ­āĻžāϞ⧋ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻĻ⧁āχāϟāĻŋ āĻā§āρāĻ•āĻŋ āĻ•āĻŽāĻžā§Ÿ: āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϭ⧁āϞ āĻ•āĻŋāϛ⧁ āĻ•āϰ⧇ āĻŦāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϭ⧁āϞ āĻ•āĻŋāϛ⧁ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻŋ āϞ⧋āĻ•āĻĻ⧇āϰ āϧ⧀āϰ āĻ•āϰāϤ⧇ āϚāĻžāχāϛ⧇āύ āύāĻžâ€”āφāĻĒāύāĻŋ āϚāĻžāĻšā§āϛ⧇āύ āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻž āĻ¸ā§āĻĒāĻˇā§āϟ, āĻ…āĻ­āĻŋāĻĒā§āϰ⧇āϤ āĻāĻŦāĻ‚ āϝāĻžāϚāĻžāχāϝ⧋āĻ—ā§āϝ āĻ•āϰāĻžāĨ¤

āϏāĻŋāϞ⧇āĻ•āĻļāύāϕ⧇ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāĻĨāĻŽā§‡ āĻŽāĻžāύ⧁āώāĻĻ⧇āϰ āφāχāĻŸā§‡āĻŽ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻĻāĻŋāύ (āĻŦāĻž āĻĢāĻŋāĻ˛ā§āϟāĻžāϰāĻ•ā§ƒāϤ āϏ⧇āϟ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āĻ•āϰāϤ⧇ āĻĻāĻŋāύ), āϤāĻžāϰāĻĒāϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāύāĨ¤ āϝāĻ–āύ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ“ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϜāĻĄāĻŧāĻŋāϤ āĻĨāĻžāϕ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϤāĻ–āύāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇ āϝāĻ–āύ āϤāĻžāϰāĻž āĻāĻ–āύāĻ“ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāĻšā§āϛ⧇ āϕ⧋āύāϗ⧁āϞ⧋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤

āĻ•āĻŽāĻŋāϟ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ¸ā§āϕ⧋āĻĒ āĻĻ⧇āĻ–āĻžāύāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āϏāĻ āĻŋāĻ• āĻ•āĻžāωāĻ¨ā§āϟ, āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āϕ⧋āύ⧋ āĻŦāĻžāĻĻ āĻĻ⧇āĻ“ā§ŸāĻž āφāχāĻŸā§‡āĻŽ (āϝ⧇āϗ⧁āϞ⧋ āĻāĻĄāĻŋāϟ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž, āϝ⧇āϗ⧁āϞ⧋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϟāĻžāĻ°ā§āϗ⧇āϟ āĻ¸ā§āĻŸā§‡āĻŸā§‡ āφāϛ⧇ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ) āĻĻ⧇āĻ–āĻžāύāĨ¤ āĻāĻ•āϟāĻŋ āĻāĻ• āϞāĻžāχāύ⧇āϰ āϏāĻžāϰāĻžāĻ‚āĻļ āϝ⧇āĻŽāύ: “128 selected (filtered by: Status = Open, Assignee = Me; 6 excluded: no permission)” āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϏāĻžāϰāĻĒā§āϰāĻžāχāϜ āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇āĨ¤

āĻ§ā§āĻŦāĻ‚āϏāĻžāĻ¤ā§āĻŽāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž āĻ…āύ⧁āĻ­ā§‚āϤāĻŋ āĻĻāĻŋāύāĨ¤ āĻ¸ā§āĻĒāĻˇā§āϟ āϞ⧇āĻŦ⧇āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ (“Delete 128 records”), āĻļāĻ•ā§āϤ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞ āĻ•āĻŋāω āĻĻāĻŋāύ, āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āϰāĻžāϖ⧁āύāĨ¤ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟ āĻŸā§āϰāĻŋāĻ—āĻžāϰ (āĻāĻ•āϟāĻŋ āĻĄā§‡āĻĄāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻŦāĻžāϟāύ) āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻŽā§‡āύ⧁ āφāχāĻŸā§‡āĻŽ āύāϝāĻŧ āϝāĻž āĻŦāĻžāĻ•āĻŋāĻĻ⧇āϰ āĻŽāϤ⧋āχ āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤

āĻĢā§āϞ⧋āϕ⧇ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻāĻŦāĻ‚ āĻĒā§‚āĻ°ā§āĻŦāύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āϰāĻžāϖ⧁āύ: āϏāĻŋāϞ⧇āĻ•ā§āϟ, āϰāĻŋāĻ­āĻŋāω āĻ¸ā§āϕ⧋āĻĒ, āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ, āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻĻ⧇āϖ⧁āύāĨ¤ āĻŦāĻšā§-āϧāĻžāĻĒ⧇āϰ āωāχāϜāĻžāĻ°ā§āĻĄ āĻāĻĄāĻŧāĻžāύ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āϏāĻ¤ā§āϝāĻŋāχ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻĒāĻ›āĻ¨ā§āĻĻ āϞāĻžāϗ⧇āĨ¤

āϚāϟāĻĒāĻŸā§‡ āϝāĻžāϚāĻžāχ āĻ•āϰāϤ⧇ āϚāĻžāχāϞ⧇ āĻāϗ⧁āϞ⧋ āĻŽā§ŒāϞāĻŋāĻ•: āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ¸ā§āĻĒāĻˇā§āϟ, āĻ¸ā§āϕ⧋āĻĒ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĒāĻžāĻļ⧇ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ, āĻ§ā§āĻŦāĻ‚āϏāĻžāĻ¤ā§āĻŽāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāĻ•ā§āϰāĻŽā§‡ āφāϟāϕ⧇ āĻĒāĻĄāĻŧāϤ⧇ āĻ•āĻ āĻŋāύ, āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āϕ⧀ āĻšāĻŦ⧇ āĻŦāϞ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āĻŦāϞāĻž āφāϛ⧇, āĻāĻŦāĻ‚ āϰ⧇āϜāĻžāĻ˛ā§āϟ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ (āϏāĻĢāϞ, āφāĻ‚āĻļāĻŋāĻ• āϏāĻĢāϞāϤāĻž, āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž)āĨ¤

āĻĒā§āϰāĻŋāĻ­āĻŋāω-āĻĒā§āϰāĻĨāĻŽ UI: āĻĒā§āĻ°ā§Ÿā§‹āϗ⧇āϰ āφāϗ⧇ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĻ⧇āĻ–āĻžāύ

āĻ­āĻžāϞ⧋ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āϞāĻžāĻĢ āĻĻāĻŋā§Ÿā§‡ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇ āύāĻžāĨ¤ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻŦā§‹āϤāĻžāĻŽā§‡ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻžāϰ āφāϗ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻĻ⧇āĻ–āĻžāύ āϝāĻž āĻāĻ• āĻĒā§āϰāĻļā§āύ⧇āϰ āωāĻ¤ā§āϤāϰ āĻĻā§‡ā§Ÿ: “āĻ āĻŋāĻ• āĻ•āĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāĻŦ⧇?”

āĻĒā§āϰāĻžāϰāĻŽā§āϭ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϏāĻžāϰāĻžāĻ‚āĻļ āĻĻāĻŋāύ āϝāĻž āĻ­āϰāϏāĻžāϝ⧋āĻ—ā§āϝāĨ¤ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻŦ⧜ āĻšāϞ⧇ āĻ•āĻžāωāĻ¨ā§āϟ āĻŦ⧜ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻšā§‡ā§Ÿā§‡ āĻŦ⧇āĻļāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϛ⧇āύ, āĻĻ⧇āĻ–āĻžāύ āĻ•āϤāϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻĨ⧇āϕ⧇ āύāϤ⧁āύ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ⧇ āϝāĻžāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻŽāĻžāϞāĻŋāĻ• āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϛ⧇āύ, āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻŽāĻžāϞāĻŋāĻ• āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻ•āĻžāωāĻ¨ā§āϟ āĻ“ āύāϤ⧁āύ āĻŽāĻžāϞāĻŋāĻ• āĻĻ⧇āĻ–āĻžāύāĨ¤ āϏāĻžāϰāĻžāĻ‚āĻļ āĻĒā§āϰāϧāĻžāύ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦāĻžāϟāύ⧇āϰ āĻ•āĻžāϛ⧇āχ āϰāĻžāϖ⧁āύ āϝāĻžāϤ⧇ āĻŽāĻŋāϏ āĻ•āϰāĻž āĻ•āĻ āĻŋāύ āĻšā§ŸāĨ¤

āϤāĻžāϰāĻĒāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻĻāĻŋāύ āϝāĻžāϤ⧇ āφāĻļā§āϚāĻ°ā§āϝ āĻŦā§āϝāĻžāĻĒāĻžāϰ āϧāϰāĻž āĻĒā§œā§‡āĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āϜāĻ¨ā§āϝ (āϝ⧇āĻŽāύ “Set priority to High”) āĻ•āĻŋāϛ⧁ āύāĻŽā§āύāĻž āϏāĻžāϰāĻŋ āϝāĻĨ⧇āĻˇā§āϟāĨ¤ āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ āφāĻļāĻž āĻ•āϰ⧇ āĻŦāĻž āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻĨ⧇āϕ⧇ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻāϏ⧇āϛ⧇ āϝāĻžāϕ⧇ āϤāĻžāϰāĻž āĻĒ⧁āϰ⧋ āĻŽāύ⧇ āĻ•āϰāϤ⧇ āύāĻžāĻ“ āĻĒāĻžāϰ⧇, āϤāĻ–āύ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϤāĻžāϞāĻŋāĻ•āĻž (āĻŦāĻž āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āϝ⧋āĻ—ā§āϝ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āϏ⧇āϟ) āφāϰāĻ“ āĻ­āĻžāϞ⧋āĨ¤

āĻ•āĻŋ āĻšāĻŦ⧇ āύāĻž āϤāĻžāĻ“ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύāĨ¤ āĻāĻ•āϟāĻŋ āϛ⧋āϟ “will be skipped” āĻ…āĻ‚āĻļ āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻŦāĻžā§œāĻžā§Ÿâ€”āϏāĻšāϜ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰ⧁āύ āϕ⧇āύ āĻŦāĻžāĻĻ āĻĒā§œā§‡āϛ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ: āĻ…āύ⧁āĻŽāϤāĻŋ āύ⧇āχ, āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϟāĻžāĻ°ā§āϗ⧇āϟ āĻ¸ā§āĻŸā§‡āĻŸā§‡ āφāϛ⧇, āĻāĻ•āϟāĻŋ approval workflow-āĻ āϞāĻ• āφāϛ⧇, āĻŦāĻž āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻĄā§‡āϟāĻž āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĨ¤

āϕ⧀ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϤāĻž āĻšāϞ⧋ āĻĒā§āϰāĻŋāĻ­āĻŋāω āϏāϤāĻ°ā§āĻ•āϤāĻž-āĻŽāϤ⧋āχ āĻŦāĻžāĻ¸ā§āϤāĻŦ āύāĻŋ⧟āĻŽāϗ⧁āϞ⧋ āĻĒā§āϰāϤāĻŋāĻĢāϞāĻŋāϤ āĻ•āϰāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϕ⧋āύ⧋ āφāĻĒāĻĄā§‡āϟ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāĻŦ⧇, āĻĒā§āϰāĻŋāĻ­āĻŋāω āϏ⧇āϟāĻŋāϰ āφāϗ⧇ āĻĻ⧇āĻ–āĻžāϤ⧇ āĻšāĻŦ⧇, āĻĒāϰ⧇ āύ⧟āĨ¤

āĻāĻŽāύ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āĻĄāĻžā§ŸāĻžāϞāĻ— āϝ⧇ āϗ⧁āϞ⧋āχ āĻŽāĻžāύ⧁āώ āĻŦ⧁āĻāĻŦ⧇

āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āĻĄāĻžā§ŸāĻžāϞāĻ— āĻŦāĻžāϧāĻž āĻ¨ā§Ÿâ€”āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϜāĻŦāĻžāĻŦ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤ: “āφāĻŽāĻŋ āĻ•āĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦ⧁āĻā§‡āĻ›āĻŋ āĻ•āĻŋ āϘāϟāĻŦ⧇ āϝāĻĻāĻŋ āφāĻŽāĻŋ āĻāϟāĻŋ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻŋ?” āϝāĻĻāĻŋ āĻāϟāĻŋ āĻĻ⧁āχāĻŦāĻžāϰ āĻĻā§āϰ⧁āϤ āĻĒāĻĄāĻŧāĻžā§Ÿ āĻŦā§‹āĻāĻžāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇, āĻŽāĻžāύ⧁āώ āϤāĻž āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻŦ⧇āĨ¤

āĻ•āĻžāĻœā§‡āϰ āύāĻžāĻŽ āĻ“ āĻāĻ¨ā§āĻĄ āĻ¸ā§āĻŸā§‡āϟ āĻĻāĻŋā§Ÿā§‡ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤ Generic āϞ⧇āĻŦ⧇āϞ āϝ⧇āĻŽāύ “Update status” āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻžāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰ⧇āĨ¤ “Set status to Closed” āĻŦāĻž “Delete 24 customers” āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰ⧁āύāĨ¤

āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻĒāĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻĻ⧁āχāϟāĻŋ āĻŦāĻžāϟāύ āĻĨāĻžāĻ•āϞ⧇ āύāĻŋāϰāĻžāĻĒāĻĻāϟāĻŋāϕ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĢā§‹āĻ•āĻžāϏ āĻĻāĻŋāύāĨ¤ āϝāĻĻāĻŋ āĻ…āĻĒāĻļāύ āĻĨāĻžāϕ⧇ (āϝ⧇āĻŽāύ “Close tickets and notify customers”), āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ§ā§āĻŦāĻ‚āϏāĻžāĻ¤ā§āĻŽāĻ• āĻ…āĻĒāĻļāύāϕ⧇ āĻĒā§āϰāĻŋ-āĻšā§‡āĻ• āύāĻž āĻ•āϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ¸ā§āĻĒāĻˇā§āϟ āĻĒāĻ›āĻ¨ā§āĻĻ āϞāĻžāĻ—āĻžāύāĨ¤

āĻĄāĻžā§ŸāĻžāϞāĻ— āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āφāϏāϞ āĻā§āρāĻ•āĻŋ āϞāĻŋāϖ⧁āύāĨ¤ āĻŦāϞ⧁āύ āϕ⧀ āĻŦāĻĻāϞāĻžāĻŦ⧇, āϕ⧀ āĻšāĻŦ⧇ āύāĻž, āϕ⧀āϟāĻž āĻ¸ā§āĻĨāĻžāϝāĻŧā§€, āĻāĻŦāĻ‚ āϕ⧀ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āĻ¤â€”āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ “Are you sure?” āϞ⧇āĻ–āĻžāϰ āĻĨ⧇āϕ⧇ āĻŦāĻŋāϰāϤ āĻĨāĻžāϕ⧁āύāĨ¤

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ friction āĻĻāϰāĻ•āĻžāϰ āύ⧇āχāĨ¤ āĻ•āĻŽ-āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ, āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰāϝ⧋āĻ—ā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāϧāĻžāϰāĻŖ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āϝāĻĨ⧇āĻˇā§āϟ (āϝ⧇āĻŽāύ āĻŸā§āϝāĻžāĻ— āϝ⧋āĻ— āĻ•āϰāĻž)āĨ¤ āϟāĻžāχāĻĒ āĻ•āϰ⧇ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āĻ•āϰāĻž āĻ āĻŋāĻ• āϝ⧇āĻŽāύ type DELETE āĻŦāĻž type CLOSE 24 āωāĻšā§āϚ āĻā§āρāĻ•āĻŋāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āωāĻĒāϝ⧁āĻ•ā§āĻ¤â€”āĻāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ¸ā§āϕ⧋āĻĒāĻ“ āĻĻ⧇āϖ⧇ āĻ¨ā§‡ā§ŸāĨ¤

āĻŦāĻžāĻ˛ā§āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻ“ āĻāĻ•ā§āϏ⧇āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ

Build safer bulk actions
āĻĒā§āϰāĻŋāĻ­āĻŋāω, āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āĻāĻŦāĻ‚ āϰ⧇āϜāĻžāĻ˛ā§āϟāϏāĻš āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦāĻžāĻ˛ā§āĻ• āφāĻĒāĻĄā§‡āϟ āĻĢā§āϞ⧋ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ āĻ•āϰ⧁āύāĨ¤
AppMaster āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĻ⧇āϖ⧁āύ

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύāϗ⧁āϞ⧋āϤ⧇ āĻ…āύ⧁āĻŽāϤāĻŋ āύāĻŋ⧟āĻŽāϗ⧁āϞ⧋ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧇āĻļāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻšā§ŸāĨ¤ āĻāĻ•āϜāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ•āĻŋāϛ⧁ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻāĻĄāĻŋāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇, āĻ•āĻŋāϛ⧁ āĻĄāĻŋāϞāĻŋāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āύāĻž, āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻŋāĻ˛ā§āĻĄāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤ āĻ…āύ⧁āĻŽāϤāĻŋāϕ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻĢā§āϞ⧋āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧁āύ, “Apply” āĻāϰ āĻĒāϰ⧇ āϚāĻŽāĻ• āύ⧟āĨ¤

“āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāĻ¤â€ āĻŽāĻžāύ⧇ āϕ⧀ āϤāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϰ⧁āύāĨ¤ āĻāϟāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻļ⧁āϧ⧁ “āφāχāĻŸā§‡āĻŽ āĻ–ā§‹āϞāĻžāϰ āϝ⧋āĻ—ā§āϝ āĻ•āĻŋ āύāĻžâ€ āĻ¨ā§Ÿâ€”āĻāϟāĻŋ āĻ­āĻŋāω āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ, āĻāĻĄāĻŋāϟ āϰāĻžāχāϟ, āĻĄāĻŋāϞāĻŋāϟ āϰāĻžāχāϟ, āĻĢāĻŋāĻ˛ā§āĻĄ-āϞ⧇āϭ⧇āϞ āϰ⧁āϞ (āωāĻĻāĻžāĻšāϰāĻŖ: āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ owner, price āĻŦāĻž permissions āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž), āĻāĻŦāĻ‚ āĻ¸ā§āϕ⧋āĻĒ āϰ⧁āϞ (āĻļ⧁āϧ⧁ āϤāĻžāĻĻ⧇āϰ āϟāĻŋāĻŽ, āϰāĻŋāϜāĻŋ⧟āύ āĻŦāĻž āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āφāχāĻŸā§‡āĻŽ)āĨ¤

āĻāĻ• āϏāĻŋāϞ⧇āĻ•āĻļāύ⧇ āĻŽāĻŋāĻļā§āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĨ¤ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻ•āϟāĻž āĻ¸ā§Ž āĻĒāĻ¨ā§āĻĨāĻž āĻŦ⧇āϛ⧇ āύāĻŋā§Ÿā§‡ āϏ⧇āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āϜāĻžāύāĻžā§Ÿ:

  • āϕ⧇āĻŦāϞ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āφāχāĻŸā§‡āĻŽā§‡ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻ•āĻŋ āĻ¸ā§āĻ•āĻŋāĻĒ āĻšā§Ÿā§‡āϛ⧇ āϤāĻž āϏāĻžāϰāĻžāĻ‚āĻļ āĻĻāĻŋāύāĨ¤
  • āĻ…āĻĨāĻŦāĻž āĻ…ā§āϝāĻžāĻ•āĻļāĻžāύ āĻŦā§āϞāĻ• āĻ•āϰ⧁āύ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āϏāĻŋāϞ⧇āĻ•āĻļāύ⧇ āϕ⧇āĻŦāϞ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇āĨ¤

āĻĒā§āϰāĻĨāĻŽ āĻĒāĻ¨ā§āĻĨāĻž āĻšāĻžāχ-āĻ­āϞāĻŋāωāĻŽ āĻ•āĻžāĻœā§‡ āĻŽāϏ⧃āĻŖ āϞāĻžāϗ⧇āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§€ā§ŸāϟāĻŋ āωāĻšā§āϚ-āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻžāϜāϗ⧁āϞ⧋āϰ (āϝ⧇āĻŽāύ āĻĄāĻŋāϞāĻŋāϟ āĻŦāĻž āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻšā§‡āĻžā§āϜ) āϜāĻ¨ā§āϝ āĻ­āĻžāϞ⧋āĨ¤

āĻ•āĻ–āύ⧋āχ āĻāĻŽāύ āĻĄā§‡āϟāĻž āĻĢāĻžāρāϏ āĻ•āϰāĻŦ⧇āύ āύāĻž āϝāĻ–āύ āĻ•āĻŋāϛ⧁ āφāχāĻŸā§‡āĻŽ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝ āύ⧟āĨ¤ āĻŦā§āϞāĻ• āĻ•āϰāĻž āϰ⧇āĻ•āĻ°ā§āĻĄā§‡āϰ āύāĻžāĻŽ, āϟāĻžāχāĻŸā§‡āϞ āĻŦāĻž āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻĢāĻŋāĻ˛ā§āĻĄ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤ “12 items can’t be updated due to access rules” āĻŦāϞāĻžāχ āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤

āĻ­āĻžāϞ UI āĻĢāĻŋāĻĄāĻŦā§āϝāĻžāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āϕ⧀ āϘāĻŸā§‡āϛ⧇ āĻŦā§‹āĻāĻžāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ: āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋ-āĻšā§‡āĻ• āĻŦā§āϝāĻžāύāĻžāϰ (“You can update 38 of 50 selected items”), āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ•āĻžāϰāĻŖ āϕ⧋āĻĄ (“Blocked: not in your team”), āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻāĻĄāĻŋāϟ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž āĻāĻŽāύ āφāχāĻŸā§‡āĻŽ āϞ⧁āĻ•āĻžāϤ⧇ āĻĻā§‡ā§ŸāĨ¤

āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡, āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ āύāĻŋ⧟āĻŽ āφāĻŦāĻžāϰ āϚāĻžāĻĒ⧁āύāĨ¤ UI āĻĒā§āϰāĻŋ-āĻšā§‡āĻ• āĻĻāĻŋāϞ⧇āĻ“ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ“ āĻĢāĻŋāĻ˛ā§āĻĄ āϝāĻžāϚāĻžāχ āĻ•āϰāĻŦ⧇āĨ¤

āĻāĻŽāύ āφāύāĻĄā§ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āϝāĻž āύāĻŋāϰāĻžāĻĒāĻĻ āĻ“ āĻ¸ā§Ž āĻŽāύ⧇ āĻšā§Ÿ

Design honest undo
āĻŦāĻžāĻ˛ā§āĻ• āĻĄāĻŋāϞāĻŋāϟ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰ⧁āύ soft delete āĻ“ restore-āϏāĻš āϝāĻžāϤ⧇ āϭ⧁āϞāϗ⧁āϞ⧋ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āφāύāĻž āϝāĻžāϝāĻŧāĨ¤
AppMaster āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĻ⧇āϖ⧁āύ

āϏāĻŦāĻšā§‡ā§Ÿā§‡ āύāĻŋāϰāĻžāĻĒāĻĻ undo āĻšāϞ⧋ āϝ⧇ āφāĻĒāύāĻŋ āϏāĻ¤ā§āϝāĻŋāχ āĻĒā§‚āϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻĨāĻŽ āĻĨ⧇āϕ⧇āχ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž, āĻļ⧇āώ āĻŽā§āĻšā§‚āĻ°ā§āϤ⧇ āĻŦā§‹āϤāĻžāĻŽ āϝ⧋āĻ— āĻ•āϰāĻž āύ⧟āĨ¤

āĻāĻ•āϟāĻŋ āĻļāĻ•ā§āϤāĻĒā§‹āĻ•ā§āϤ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāϞ⧋ soft delete āĻāĻŦāĻ‚ āϏāĻŽā§ŸāϏ⧀āĻŽāĻŋāϤ restore āωāχāĻ¨ā§āĻĄā§‹āĨ¤ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋āϕ⧇ āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇āχ āĻŽā§āϛ⧇ āύāĻž āĻ•āϰ⧇ “deleted” āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧁āύ (āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖ āĻ­āĻŋāω āĻĨ⧇āϕ⧇ āϞ⧁āĻ•āĻŋā§Ÿā§‡ āĻĻāĻŋāύ), āϤāĻžāϰāĻĒāϰ āĻĒāϰ⧇ āĻ¸ā§āĻĨāĻžāϝāĻŧā§€āĻ­āĻžāĻŦ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύāĨ¤ āĻāϤ⧇ āϭ⧁āϞ āĻ•ā§āϞāĻŋāĻ•, āϭ⧁āϞ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ, āĻāĻŦāĻ‚ “āφāĻŽāĻŋ āϏ⧇āϗ⧁āϞ⧋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĻ›āĻŋ āĻ•āĻŋāύāĻž āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰāĻŋāύāĻŋ” āϧāϰāύ⧇āϰ āϭ⧁āϞ āϧāϰāĻž āĻĒā§œā§‡āĨ¤

āĻĻā§āϰ⧁āϤ āĻ•āĻ°ā§āĻŽāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ undo toast āĻ­āĻžāϞ⧋ āĻ•āĻžāϜ āĻ•āĻ°ā§‡â€”āϝāĻž āϤāĻžā§ŽāĻ•ā§āώāĻŖāĻŋāĻ• āĻāĻŦāĻ‚ āĻ•āĻŽ-āϘāĻžāϟāϤāĻŋāĨ¤ āĻāϟāĻŋāϕ⧇ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• āϰāĻžāϖ⧁āύ: āϕ⧀ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšā§Ÿā§‡āϛ⧇, āĻāĻ•āϟāĻŋ Undo āĻŦāĻžāϟāύ, āϟāĻžāχāĻŽ āϞāĻŋāĻŽāĻŋāϟ, āĻāĻŦāĻ‚ āϕ⧋āύ⧋ āφāχāĻŸā§‡āĻŽ āĻ¸ā§āĻ•āĻŋāĻĒ āĻ•āϰāĻž āĻšāϞ⧇ āϤāĻžāϰ āύ⧋āϟāĨ¤

āωāχāĻ¨ā§āĻĄā§‹ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ āĻā§āρāĻ•āĻŋāϰ āϏāĻ™ā§āϗ⧇ āĻŽāĻŋāϞāĻŋā§Ÿā§‡āĨ¤ āϛ⧋āϟ āϭ⧁āϞ⧇āϰ āϜāĻ¨ā§āϝ ā§§ā§Ļâ€“ā§Šā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āϏāĻžāϧāĻžāϰāĻŖāĨ¤ āϘāĻŖā§āϟāĻž āĻŦāĻž āĻĻāĻŋāύāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ soft delete + restore āĻ¸ā§āĻ•ā§āϰāĻŋāύ ā¤ŦāĨ‡ā¤šā¤¤ā¤°āĨ¤

āĻĻā§€āĻ°ā§āϘāĻ•āĻžāϞ āϚāϞāĻž āĻŦāĻžāĻ˛ā§āĻ• āϜāĻŦāϗ⧁āϞ⧋āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ “undo” āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŽāĻžāύ⧇ āĻ•ā§āϝāĻžāĻ¨ā§āϏ⧇āĻ˛â€”āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āύ⧟āĨ¤ āχāĻŽā§‡āχāϞ, āĻĒ⧇āĻŽā§‡āĻ¨ā§āϟ āĻŦāĻž āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āφāĻĒāĻĄā§‡āϟāϗ⧁āϞ⧋ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤāĻŋāĻ•āϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻŦāĻžāĻ•āĻŋ āĻ•āĻžāϜ āĻ•ā§āϝāĻžāĻ¨ā§āϏ⧇āϞ āĻ•āϰāĻžāϰ āĻ…āĻĒāĻļāύ āĻĻāĻŋāύ āĻāĻŦāĻ‚ āĻ•āĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻžāύāĨ¤

āϝāĻ–āύ undo āϏāĻŽā§āĻ­āĻŦ āύāĻž, āϏāϰāĻžāϏāϰāĻŋ āĻŦāϞ⧁āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻĒāĻĨ āĻĻāĻŋāύ: āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ IDs āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ, āĻ…āĻĄāĻŋāϟ āϞāĻ— āϞāĻŋāϖ⧁āύ, āĻāĻŦāĻ‚ āϝ⧇āĻ–āĻžāύ⧇ āϏāĻŽā§āĻ­āĻŦ āĻāĻ•āϟāĻŋ restore workflow āĻ…āĻĢāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϏ⧁āϰāĻ•ā§āώāĻž: āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ, idempotency, āĻ…āĻĄāĻŋāϟāϝ⧋āĻ—ā§āϝāϤāĻž

āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āϕ⧇āĻŦāϞ UI āϏāĻŽāĻ¸ā§āϝāĻž āύ⧟āĨ¤ āĻļāĻ•ā§āϤ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻĨāĻžāĻ•āϞ⧇āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĄāĻžāĻŦāϞ-āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇, āĻŦā§āϰāĻžāωāϜāĻžāϰ āϰāĻŋāĻŸā§āϰāĻžāχ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āϜāĻŦ āĻĻ⧁āχāĻŦāĻžāϰ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄāϕ⧇ āϧāϰ⧇ āύāĻŋāϤ⧇ āĻšāĻŦ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻāĻŦāĻ‚ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰāĻž āϝāĻžāĻŦ⧇āĨ¤

āĻ•āĻ ā§‹āϰ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻĻāĻŋā§Ÿā§‡ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āϟ āĻ•āϰ⧁āύ, āĻļ⧁āϧ⧁ āĻĒā§āϰāĻĨāĻŽāϟāĻŋ āύ⧟āĨ¤ āϝāĻĻāĻŋ ⧍ā§Ļā§Ļ āϰ⧇āĻ•āĻ°ā§āĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇ ā§ŠāϟāĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāĻŦ⧇ (āϰ⧇āϕ⧁āĻ‡ā§ŸāĻžāĻ°ā§āĻĄ āĻĢāĻŋāĻ˛ā§āĻĄ āĻŽāĻŋāϏāĻŋāĻ‚, āϭ⧁āϞ āĻ¸ā§āĻŸā§‡āϟ, āĻ…āύ⧁āĻŽāϤāĻŋ āύ⧇āχ), āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāύ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āϝāĻžāϚ āϰāĻŋāĻœā§‡āĻ•ā§āϟ āĻ•āϰāĻŦ⧇āύ āĻ•āĻŋ āφāĻ‚āĻļāĻŋāĻ• āϏāĻžāĻĢāĻ˛ā§āϝ āĻĻ⧇āĻŦ⧇āύ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽāĻāϰ āĻ¤ā§āϰ⧁āϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāĻŦ⧇āύāĨ¤

Idempotency āĻ…āϏ⧁āύ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āĻĄāĻŦāϞ-āĻ…ā§āϝāĻžāĻĒā§āϞāĻžāχ āϰ⧋āϧ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻ• idempotency key (āĻŦāĻž request ID) āĻĻāĻŋāύ āĻāĻŦāĻ‚ āφāωāϟāĻ•āĻžāĻŽ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āĻāĻ•āχ āϕ⧀ āĻĢāĻŋāϰ⧇ āĻāϞ⧇ āĻāĻ•āχ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻĢ⧇āϰāϤ āĻĻāĻŋāύāĨ¤

āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āĻāĻĄāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ optimistic locking āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄā§‡ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϏāύ āĻŦāĻž updated_at āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āϤāĻ–āύāχ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻŽāĻŋāĻ˛ā§‡â€”āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϞ⧇ āĻ•āύāĻĢā§āϞāĻŋāĻ•ā§āϟ āĻĢ⧇āϰāϤ āĻĻāĻŋāύ, āĻ…āĻ¨ā§āϝ āĻ•āĻžāϰ⧋ āĻ•āĻžāϜ āĻ“āĻ­āĻžāϰāϰāĻžāχāϟ āύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤

āĻĻ⧁āχāϟāĻŋ API āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻ…āύ⧇āĻ• āϏāĻšāĻžāϝāĻŧāĻ•:

  • Dry-run: āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻ“ āĻ…āύ⧁āĻŽāϤāĻŋ āĻšā§‡āĻ• āϚāĻžāϞāĻžāύ, āĻ•āĻžāωāĻ¨ā§āϟ āĻ“ āύāĻŽā§āύāĻž āĻŦāĻĻāϞ āĻĻ⧇āĻ–āĻžāύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϞāĻŋāĻ–āĻŦ⧇āύ āύāĻžāĨ¤
  • Apply: āĻ•āύāĻĢāĻžāĻ°ā§āĻŽāĻĄ āĻŸā§‹āϕ⧇āύ āĻŦāĻž āĻāĻ•āχ āĻ—āĻŖāĻŋāϤāĻ•ā§ƒāϤ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻ•āϰ⧁āύ, āϤāĻžāϰāĻĒāϰ āϞāĻŋāϖ⧁āύāĨ¤

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϰāĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻŋāĻ• āϏ⧀āĻŽāĻž āϝ⧋āĻ— āĻ•āϰ⧁āύ: āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ āφāχāĻŸā§‡āĻŽ āĻ•ā§āϝāĻžāĻĒ āϏ⧇āϟ āĻ•āϰ⧁āύ, āϰ⧇āϟ-āϞāĻŋāĻŽāĻŋāϟ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧁āύ (āĻĄāĻŋāϞāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāϝāĻŧāχ āĻļāĻ•ā§āϤ), āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāϚāϗ⧁āϞ⧋ āϟāĻžāχāĻŽāφāωāϟ āĻĻāĻŋāύ āϝāĻžāϤ⧇ āϕ⧋āύ⧋ āφāϟāϕ⧇ āĻĨāĻžāĻ•āĻž āĻĄāĻŋāĻĒ⧇āĻ¨ā§āĻĄā§‡āĻ¨ā§āϏāĻŋ āĻĒ⧁āϰ⧋ āϜāĻŦāϕ⧇ āĻŦā§āϞāĻ• āύāĻž āĻ•āϰ⧇āĨ¤

āĻ…āĻŦāĻļ⧇āώ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āĻšā§‡āĻžā§āϜāϕ⧇ āĻ…āĻĄāĻŋāϟāϝ⧋āĻ—ā§āϝ āϰāĻžāϖ⧁āύāĨ¤ āϕ⧇ āĻ•āϰāϞ⧋, āĻ•āĻŋ āĻŦāĻĻāϞāĻžāϞ⧋, āĻ¸ā§āϕ⧋āĻĒ āĻ•āĻŋ āĻ›āĻŋāĻ˛â€”āĻāχāϏāĻŦ āϞāĻ— āĻ•āϰ⧁āύāĨ¤ āĻāĻ•āϟāĻŋ āχāωāĻœā§‡āĻŦāϞ āĻ…āĻĄāĻŋāϟ āĻāĻ¨ā§āĻŸā§āϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āωāϚāĻŋāϤ āĻ…ā§āϝāĻžāĻ•ā§āϟāϰ, āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒ, āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ (āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ, āĻ•āĻžāωāĻ¨ā§āϟ), āφāϗ⧇/āĻĒāϰ⧇ āĻĄā§‡āϟāĻž (āĻŦāĻž āĻĄāĻŋāĻĢ) āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāϚ/āϜāĻŦ āφāχāĻĄāĻŋāĨ¤

āĻŦāĻŋāĻļā§āĻŦāĻžāϏāĻ­āĻ™ā§āĻ— āύāĻž āĻ•āϰ⧇ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻ¸ā§āϕ⧇āϞ āĻ•āϰāĻž

Handle big batches safely
āĻŦāĻĄāĻŧ āĻŦāĻžāĻ˛ā§āĻ• āϜāĻŦāϗ⧁āϞ⧋āϕ⧇ āϚāĻžāĻ‚āϕ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧇ āϚāĻžāϞāĻžāύ āĻāĻŦāĻ‚ queued, running, completed-āĻāϰ āĻŽāϤ⧋ āĻ¸ā§āĻŸā§‡āϟ āĻĻ⧇āĻ–āĻžāύāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ ā§Ģā§Ļ āĻĨ⧇āϕ⧇ ā§Ģā§Ļ,ā§Ļā§Ļā§Ļ āĻ āϗ⧇āϞ⧇ āĻā§āρāĻ•āĻŋ āĻļ⧁āϧ⧁āχ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϭ⧁āϞ āĻ¨ā§Ÿâ€”āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŽāĻžāĻāĻĒāĻĨ⧇ āĻ“āĻ­āĻžāϰāϞ⧋āĻĄ āĻšā§Ÿā§‡ āĻ…āĻ°ā§āϧ-āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϰ⧇āϖ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻŦā§‹āĻāĻžāύ⧋ āĻ•āĻ āĻŋāύāĨ¤

āĻ•āĻžāϜ āϚāĻžāĻ‚āϕ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄāϕ⧇ āĻāĻ• āϞāĻŽā§āĻŦāĻž āĻŸā§āϰāĻžāύāϜāĻŧā§āϝāĻžāĻ•āĻļāύ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻŦāĻĻāϞ⧇ āĻŦā§āϝāĻžāϚ (āωāĻĻāĻžāĻšāϰāĻŖ: ā§Ģā§Ļā§Ļ āĻĨ⧇āϕ⧇ ⧍,ā§Ļā§Ļā§Ļ) āĻ āĻĒā§āϰāϏ⧇āϏ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦā§āϝāĻžāĻšā§‡āϰ āĻĒāϰ āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧁āύāĨ¤ āĻ•āĻŋāϛ⧁ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧇ āφāĻĒāύāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻĨāĻžāĻŽāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ, āϕ⧋āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻŽāϞ⧋ āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ, āĻāĻŦāĻ‚ āĻŸā§‡āĻŦāĻŋāϞ āϞāĻ• āĻĻā§€āĻ°ā§āϘ āϏāĻŽāϝāĻŧ āϧāϰ⧇ āϰāĻžāĻ–āĻž āĻāĻĄāĻŧāĻžāĻŦ⧇āύāĨ¤

āĻŦāĻĄāĻŧ āϜāĻŦāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄā§‡ āϚāĻžāϞāĻžāύ āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻĻ⧇āĻ–āĻžāύ: queued, running (“X of Y” āϏāĻš), completed with issues, failed, āĻŦāĻž canceledāĨ¤

āφāĻ‚āĻļāĻŋāĻ• āϏāĻžāĻĢāĻ˛ā§āϝāϕ⧇ āĻ¸ā§ŽāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻžāύāĨ¤ ⧍ā§Ļ% āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧇ “Done” āĻĻ⧇āĻ–āĻžāĻŦ⧇āύ āύāĻžāĨ¤ āĻ•āĻŋ āϏāĻĢāϞ āĻšāϞ⧋ āĻāĻŦāĻ‚ āĻ•āĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϞ⧋ āĻĻ⧇āĻ–āĻžāύ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻ°ā§āĻĨāϗ⧁āϞ⧋āϤ⧇ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻ•āϰāĻž āϏāĻšāϜ āĻ•āϰāĻŦ⧇āύ: āĻļ⧁āϧ⧁ āĻŦā§āϝāĻ°ā§āĻĨ āφāχāĻŸā§‡āĻŽāϗ⧁āϞ⧋ retry āĻ•āϰ⧁āύ, āĻŦā§āϝāĻ°ā§āĻĨ ID āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ, āĻŦāĻž āĻāĻ•āϟāĻŋ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰāĻĄ āĻ­āĻŋāω āϖ⧁āϞ⧇ āĻĻāĻŋāύāĨ¤

āĻāĻ•āϟāĻŋ āϏāĻšāϜ āύāĻŋāϝāĻŧāĻŽ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ: āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϜāĻŦ⧇āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ• āĻŦāĻžāĻ•ā§āϝ⧇ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇āύ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻŦāĻŋāĻļā§āĻŦāĻžāϏāĻ“ āĻĨāĻžāĻ•āĻŦ⧇ āύāĻžāĨ¤

āϏāĻžāϧāĻžāϰāĻŖ āϭ⧁āϞ āĻ“ āĻĢāĻžāρāĻĻ āϝāĻž āĻāĻĄāĻŧāĻžāϤ⧇ āĻšāĻŦ⧇

āĻŦāĻšā§ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž “āχāωāϜāĻžāϰ-āĻāϰ āϭ⧁āĻ˛â€ āύāϝāĻŧāĨ¤ āĻāϗ⧁āϞ⧋ āϘāĻŸā§‡ āϝāĻ–āύ UI āϚ⧁āĻĒāϚāĻžāĻĒ â€œselected” āĻāϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇, āĻŦāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϧāϰ⧇ āĻ¨ā§‡ā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦāĻĄāĻŧ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāχ āĻšā§‡ā§Ÿā§‡āϛ⧇āύāĨ¤

āĻāĻ•āϟāĻŋ āĻ•ā§āĻ˛ā§āϝāĻžāϏāĻŋāĻ• āĻĢāĻžāρāĻĻ āĻšāϞ⧋ “all visible rows” āĻ“ “all results” āĻŽāĻŋāĻ•ā§āϏ āĻ•āϰāĻžāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ ⧍ā§ĻāϟāĻŋ āφāχāĻŸā§‡āĻŽ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻšā§‡āĻ•āĻŦāĻ•ā§āϏ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āϝāĻž ⧍ā§Ļ,ā§Ļā§Ļā§ĻāϟāĻŋ āϏāĻžāϰāĻŋāϰ āωāĻĒāϰ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĢ⧇āϞ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ “select all results” āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āύ, āĻāϟāĻŋ āφāϞāĻžāĻĻāĻž, āĻ¸ā§āĻĒāĻˇā§āϟ āϧāĻžāĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĒāĻžāĻļ⧇ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻ•āĻžāωāĻ¨ā§āϟ āϏāĻŦāϏāĻŽāϝāĻŧ āĻĻ⧇āĻ–āĻžāύāĨ¤

āφāϰ⧇āĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻšā§āϛ⧇ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ“ Apply āĻ•āϰāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻ—ā§‹āĻĒāύ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻāĻ•āϟāĻŋ āϏ⧇āϟ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻļ⧇āϝāĻŧāĻžāϰāĻĄ āĻ­āĻŋāω āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšā§Ÿ āĻŦāĻž āϤāĻžāϞāĻŋāĻ•āĻž āϰāĻŋāĻĢā§āϰ⧇āĻļ āĻšā§Ÿā§‡ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϏāϰ⧇ āϝāĻžā§Ÿâ€”āĻ…ā§āϝāĻžāĻ•āĻļāύāϟāĻŋ āϏ⧇āχ āĻ­āĻŋāĻ¨ā§āύ āϏ⧇āĻŸā§‡ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻšāĻŦ⧇āĨ¤ āĻ…ā§āϝāĻžāĻ•āĻļāύāϕ⧇ āĻ¸ā§āĻ¨ā§āϝāĻžāĻĒāĻļāĻŸā§‡ āĻŦāĻžāρāϧ⧁āύ (āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ IDs) āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻŦāĻĻāϞ⧇ āϝāĻžāϝāĻŧ āϤāĻŦ⧇ āϏāϤāĻ°ā§āĻ• āĻ•āϰ⧇ āĻĻāĻŋāύāĨ¤

āĻ­ā§€āĻĄāĻŧāĻ­ā§‚āϤ āĻŽā§‡āύ⧁āĻ“ āĻ•ā§āώāϤāĻŋ āĻ•āĻ°ā§‡â€”āϝāĻĻāĻŋ “Delete” “Export” āĻ“ “Tag”-āĻāϰ āĻĒāĻžāĻļ⧇ āĻĨāĻžāϕ⧇, āϭ⧁āϞ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ āĻ§ā§āĻŦāĻ‚āϏāĻžāĻ¤ā§āĻŽāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āφāϞāĻžāĻĻāĻž āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āύāĻĢāĻžāĻ°ā§āĻŽā§‡āĻļāύ āĻĻāĻŋāύāĨ¤

āĻāĻŦāĻ‚ āĻ•āĻ–āύ⧋āχ āĻ­āϰāϏāĻž āĻ•āϰāĻŦ⧇āύ āύāĻž āϝ⧇ “UI āĻŦāĻžāϟāύ āϞ⧁āĻ•āĻžāĻ¨ā§‹â€ āĻšāϞ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻžâ€”āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϏāĻŦāϏāĻŽā§Ÿ āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽ āϝāĻžāϚāĻžāχ āĻ•āϰāĻŦ⧇āĨ¤

āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĻā§āϰ⧁āϤ āϏ⧇āĻĢāϟāĻŋ āĻšā§‡āĻ•āϞāĻŋāĻ¸ā§āϟ

Add an audit trail fast
AppMaster Data Designer āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ PostgreSQL-āĻ audit āϞāĻ— āĻāĻŦāĻ‚ āϜāĻŦ āĻšāĻŋāĻ¸ā§āϟāϰāĻŋ āĻŽāĻĄā§‡āϞ āĻ•āϰ⧁āύāĨ¤
āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āĻļāĻŋāĻĒ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻŦ⧇āϏāĻŋāĻ•āϗ⧁āϞ⧋ āĻšā§‡āĻ• āĻ•āϰ⧁āύ, āϝāĻž “āφāĻŽāĻŋ āϤāĻž āĻ•āϰāϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ āύāĻžāĻ•āĻŋ āύāĻžâ€ āĻŽā§āĻšā§‚āĻ°ā§āϤāϗ⧁āϞ⧋ āφāϟāĻ•āĻžāĻŦ⧇ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āχāĻ¨ā§āϟāĻžāϰ⧋āϗ⧇āĻļāύāϗ⧁āϞ⧋ āĻ…āύ⧇āĻ• āϏāĻšāϜ āĻ•āϰāĻŦ⧇āĨ¤

āĻ¸ā§āϕ⧋āĻĒ āĻ¸ā§āĻĒāĻˇā§āϟāϤāĻž āĻĻāĻŋā§Ÿā§‡ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻ āĻŋāĻ• āĻ•āĻŋ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāĻŦ⧇ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻž āωāϚāĻŋāϤ, āϕ⧇āĻŦāϞ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϞ⧇āĻŦ⧇āϞ āύ⧟āĨ¤ āφāχāĻŸā§‡āĻŽ āĻ•āĻžāωāĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ/āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻĻ⧇āĻ–āĻžāύ āϝāĻž āϏ⧇āχ āĻ•āĻžāωāĻ¨ā§āϟ āϤ⧈āϰ⧀ āĻ•āϰ⧇āϛ⧇ (āωāĻĻāĻžāĻšāϰāĻŖ: “132 tickets matching: Status = Open, Assigned to = Me”)āĨ¤

āϤāĻžāϰāĻĒāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϤāĻŋāύāϟāĻŋ āωāĻšā§āϚ-āĻā§āρāĻ•āĻŋ āĻ…āĻ‚āĻļ āϞ⧁āĻ•āĻžāύ⧋ āύ⧇āχ: āĻĒā§āϰāĻ­āĻžāĻŦ, āĻ…āύ⧁āĻŽāϤāĻŋ, āĻāĻŦāĻ‚ āĻĒāϰāĻŋāĻŖāĻžāĻŽāĨ¤

  • āĻ¸ā§āϕ⧋āĻĒ āĻ¸ā§āĻĒāĻˇā§āϟ: āϰ⧇āĻ•āĻ°ā§āĻĄ āϏāĻ‚āĻ–ā§āϝāĻž āĻĒā§āϞāĻžāϏ āϏ⧇āχ āϏ⧇āϟ āϤ⧈āϰāĻŋāϰ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ/āϏāĻŋāϞ⧇āĻ•āĻļāύāĨ¤
  • āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻŋāĻ­āĻŋāω: āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻŦāĻž āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ diff-āĻ¸ā§āϟāĻžāχāϞ āϏāĻžāϰāϏāĻ‚āĻ•ā§āώ⧇āĻĒāĨ¤
  • āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽā§‡ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĒā§āĻ°ā§Ÿā§‹āĻ—: UI āϤ⧇ āύ⧟, āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āĨ¤
  • āĻĢāĻŋāϰ⧇ āφāϏāĻžāϰ āĻŦāĻžāĻ¸ā§āĻ¤ā§āϝāĻŋāĻ• āωāĻĒāĻžāϝāĻŧ: undo/restore āϝ⧇āĻ–āĻžāύ⧇ āϏāĻŽā§āĻ­āĻŦ, āύāϤ⧁āĻŦāĻž āϰāĻžāύ āĻšāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ “irreversible” āĻ“ā§ŸāĻ°ā§āĻŖāĻŋāĻ‚āĨ¤
  • āĻĢāϞāĻžāĻĢāϞ āύāĻĨāĻŋāϭ⧁āĻ•ā§āϤ: āĻ…āĻĄāĻŋāϟ āϞāĻ— āĻāĻŦāĻ‚ āĻ¸ā§āĻĒāĻˇā§āϟ āφāωāϟāĻ•āĻžāĻŽ āϏāĻžāϰāĻžāĻ‚āĻļ (succeeded, skipped, failed āĻāĻŦāĻ‚ āϕ⧇āύ)āĨ¤

āĻŦāĻžāĻ¸ā§āϤāĻŦ āωāĻĻāĻžāĻšāϰāĻŖ: āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāĻ•āĻŋāϟāϗ⧁āϞ⧋ āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻŦāĻžāĻ˛ā§āĻ•-āĻ•ā§āϞ⧋āϜ āĻ•āϰāĻž

Get clean generated code
āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰ⧇ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ-āϰ⧇āĻĄāĻŋ āϏ⧋āĻ°ā§āϏ āĻ•āĻĄ āĻĒāĻžāĻ¨â€”āφāĻĒāύāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋ auditable āĻ“ predictable āϰāĻžāϖ⧁āύāĨ¤
āĻāĻ–āύāχ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰ⧁āύ

āĻāĻ•āϟāĻŋ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϞāĻŋāĻĄ āĻĒā§‹āĻ¸ā§āϟ-āĻ•ā§āϝāĻžāĻŽā§āĻĒ⧇āχāύ āĻ•ā§āϞāĻŋāύāφāĻĒ āϚāĻžāϞāĻžāĻšā§āϛ⧇āĨ¤ āĻļāϤ āĻļāϤ āϟāĻŋāĻ•āĻŋāĻŸā§‡ āĻŸā§āϝāĻžāĻ— “promo-2026” āφāϛ⧇, āĻāĻŦāĻ‚ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ self-service āĻĻāĻŋā§Ÿā§‡ āϰ⧇āϜāϞāĻ­ āĻšā§Ÿā§‡ āϗ⧇āϛ⧇āĨ¤ āϤāĻžāϰāĻž āĻŦāĻžāĻ•āĻŋ āϗ⧁āϞ⧋ āĻŦāĻžāĻ˛ā§āĻ•-āĻ•ā§āϞ⧋āϜ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϭ⧁āϞāĻ­āĻžāϞ VIP āϕ⧇āϏ āĻŦāĻž āĻ…āĻ¨ā§āϝ āϟāĻŋāĻŽā§‡āϰ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻžāϧ⧀āύ āϟāĻŋāĻ•āĻŋāϟ āĻŦāĻ¨ā§āϧ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ āύāĻžāĨ¤

āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāĻž āϤāĻžāϞāĻŋāĻ•āĻž āĻĨ⧇āϕ⧇ āϟāĻŋāĻ•āĻŋāϟ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ “Close selected” āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇āĨ¤ āĻ•āĻŋāϛ⧁āχ āĻŦāĻĻāϞāĻžāύ⧋āϰ āφāϗ⧇ āϤāĻžāϰāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻĻ⧇āϖ⧇ āϝāĻž āĻĒā§āϰāĻ­āĻžāĻŦāϕ⧇ āĻ•āĻ‚āĻ•ā§āϰāĻŋāϟ āĻ•āϰ⧇ āϤ⧋āϞ⧇:

  • āĻ•āĻžāωāĻ¨ā§āϟ āϏāĻžāϰāĻžāĻ‚āĻļ: 183 āϟāĻŋ āĻ•ā§āϞ⧋āϜ āĻšāĻŦ⧇, 12 āϟāĻŋ āĻ¸ā§āĻ•āĻŋāĻĒ āĻšāĻŦ⧇, 4 āϟāĻŋ āĻŽāύ⧋āϝ⧋āĻ— āĻĻāĻžāĻŦāĻŋ āĻ•āϰ⧇āĨ¤
  • āĻ¸ā§āĻ•āĻŋāĻĒ āĻšāĻ“āϝāĻŧāĻžāϰ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āĻžāϰāĻŖ (āϝ⧇āĻŽāύ “Already closed” āĻŦāĻž “VIP account, cannot bulk-close”)āĨ¤
  • āĻāĻ•āϟāĻŋ āϛ⧋āϟ āύāĻŽā§āύāĻž āϤāĻžāϞāĻŋāĻ•āĻž (10 āφāχāĻŸā§‡āĻŽ) āĻāĻŦāĻ‚ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āϏ⧇āϟ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āĻ…āĻĒāĻļāύāĨ¤
  • āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ: status āĻšāĻŦ⧇ “Closed”, reason āĻšāĻŦ⧇ “Campaign cleanup”āĨ¤
  • āĻ¸ā§āĻĒāĻˇā§āϟ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻŦāĻžāϟāύ: “Close 183 tickets”—āĻ­āĻžāĻ—ā§āϝāĻ•ā§āϰāĻŽā§‡ “Confirm” āύ⧟āĨ¤

āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āϜāĻŦ āϚāĻžāϞāĻžā§Ÿ āĻāĻŦāĻ‚ āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āĻĻ⧇āĻ–āĻžā§ŸāĨ¤ āĻ•āĻžāϜ āĻļ⧇āώ āĻšāϞ⧇ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āĻĻ⧇āĻ–āĻžā§Ÿ āĻ•āϤāϟāĻŋ āϏāĻĢāϞ, āϕ⧋āύāϗ⧁āϞ⧋ āĻŦā§āϝāĻ°ā§āĻĨ āĻāĻŦāĻ‚ āϕ⧇āύ (āωāĻĻāĻžāĻšāϰāĻŖ: āϕ⧋āύ⧋ āϟāĻŋāĻ•āĻŋāϟ āϰāĻžāύāϕ⧇āϰ āϏāĻŽā§Ÿ āĻāĻ•āϜāύ āĻāĻœā§‡āĻ¨ā§āϟ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧇āϛ⧇)āĨ¤

āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡, āĻĢā§āϞ⧋āϟāĻž āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĨāĻžāϕ⧇: āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϟāĻŋāϕ⧇āĻŸā§‡ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻ…āύ⧁āĻŽāϤāĻŋ āĻšā§‡āĻ• āĻ•āϰāĻž, āĻ…ā§āϝāĻžāϞāĻžāωāĻĄ āĻ¸ā§āĻŸā§‡āϟ āĻ­ā§āϝāĻžāϞāĻŋāĻĄ āĻ•āϰāĻž, āĻāĻ•āϟāĻŋ āĻ…āĻĄāĻŋāϟ āϰ⧇āĻ•āĻ°ā§āĻĄ (āĻŦā§āϝāĻžāϚ āφāχāĻĄāĻŋ āϏāĻš) āϞ⧇āĻ–āĻž, āϛ⧋āϟ āϚāĻžāĻ‚āϕ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϰ⧇āϜāĻžāĻ˛ā§āϟ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻžāĨ¤

āφāύāĻĄā§āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āφāϚāϰāĻŖ āĻ•āϰāĻž āĻšā§Ÿ, āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āύ⧟āĨ¤ UI-āϤ⧇ ā§Šā§Ļ āĻŽāĻŋāύāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ “Undo this batch” āĻ…āĻĢāĻžāϰ āĻĨāĻžāϕ⧇āĨ¤ āĻāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϞ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϜāĻŦ āĻļ⧁āϰ⧁ āĻšā§Ÿ āϝāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏ⧇āχ āĻŦā§āϝāĻžāϚ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻĻāϞāĻžāύ⧋ āϟāĻŋāĻ•āĻŋāϟāϗ⧁āϞ⧋āϰ āĻĒā§‚āĻ°ā§āĻŦ⧇āϰ status āĻ“ reason āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āĻ°ā§‡â€”āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āϤāĻ–āύāχ āϝāĻĻāĻŋ āϏ⧇āϗ⧁āϞ⧋ āϤāĻ–āύ āĻĨ⧇āϕ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āύāĻž āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤

āĻĒāϰ⧇āϰ āϧāĻžāĻĒ: āĻāχ āϏāĻĒā§āϤāĻžāĻšā§‡ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āωāĻ¨ā§āύāϤāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧁āύ

āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϰāĻŋāĻĄāĻŋāϜāĻžāχāύ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχāĨ¤ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻŦ⧇āϛ⧇ āύāĻŋāύ āϝ⧇āϟāĻž āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāĻ—ā§āϰāĻ¸ā§āϤ āĻ…ā§āϝāĻžāĻ•āϏāĻŋāĻĄā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāĻ•āĻŋāϟ āĻ•āĻŽāĻžā§Ÿ, āϤāĻž āϚāĻžāϞ⧁ āĻ•āϰ⧁āύ, āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāĻ—āϤāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤

āĻĒā§āϰāĻĨāĻŽā§‡ āĻ¸ā§āĻĒāĻˇā§āϟāϤāĻž āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ: āĻāĻ•āϟāĻŋ āĻ¸ā§āϕ⧋āĻĒ āϞ⧇āĻŦ⧇āϞ āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝāĻž āĻŦāϞāĻŦ⧇ āĻ āĻŋāĻ• āĻ•āĻŋ āĻŦāĻĻāϞāĻžāĻŦ⧇ (“37 selected invoices”), āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻ•āĻļāύ āϰāĻžāύ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āϰ⧇āϜāĻžāĻ˛ā§āϟ āϏāĻžāϰāĻžāĻ‚āĻļ āĻĻ⧇āĻ–āĻžāύ (āĻ•āϤāϟāĻŋ āϏāĻĢāϞ, āĻŦā§āϝāĻ°ā§āĻĨ āĻ“ āϕ⧇āύ)āĨ¤ āĻāϟ⧁āϕ⧁āχ āĻ…āύ⧇āĻ• “āφāĻŽāĻŋ āĻ­āĻžāĻŦāĻ›āĻŋāϞāĻžāĻŽ āĻāϟāĻž āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽâ€ āϏāĻ™ā§āĻ•āϟ āĻĒā§āϰāϤāĻŋāĻšāϤ āĻ•āϰāĻŦ⧇āĨ¤

āϤāĻžāϰāĻĒāϰ āωāĻšā§āϚ-āĻā§āρāĻ•āĻŋāϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĻāĻŋāϕ⧇ āϝāĻžāύāĨ¤ āĻŽā§āϝāĻžāϏ āĻĄāĻŋāϞāĻŋāϟ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻšā§‡āĻžā§āϜ āĻ“ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ-āϏ⧇āύāϏāĻŋāϟāĻŋāĻ­ āφāĻĒāĻĄā§‡āϟāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϗ⧇āϰ āφāϗ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻŦāĻž dry-run āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāĻĨāĻŽ ā§§ā§Ļ āφāχāĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāϰāϞ “before -> after” āĻŸā§‡āĻŦāĻŋāϞāĻ“ āϭ⧁āϞ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϧāϰāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āĻ…āĻ°ā§āĻĄāĻžāϰ āϝāĻž āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϟāĻŋāĻŽā§‡āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇:

  • āĻŦāĻžāϟāύ⧇āϰ āĻĒāĻžāĻļ⧇ āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ•āĻžāωāĻ¨ā§āϟ + āĻ¸ā§āĻĒāĻˇā§āϟ āĻ¸ā§āϕ⧋āĻĒ āĻŸā§‡āĻ•ā§āϏāϟ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
  • āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝ⧇āĻ–āĻžāύ⧇ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āĻ•āĻžāϰāĻŖ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāĻŦ⧇ (permission, validation)āĨ¤
  • āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻŦāĻž dry-run āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
  • āĻĄāĻŋāϞāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ restore āϝ⧋āĻ— āĻ•āϰ⧁āύ (soft delete + restore view) āĻāĻŦāĻ‚ āϰāĻŋāϕ⧋āĻ­āĻžāϰāĻŋ āĻ…āĻĒāĻļāύ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻĒāϰ⧇ āĻ¤ā§ŽāĻ•ā§āώāĻŖāĻžā§Ž āĻĻ⧇āĻ–āĻžāύāĨ¤
  • āĻŦ⧜ āĻŦā§āϝāĻžāϚāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄā§‡ āϚāĻžāϞāĻžāύ āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāϞ⧇ āύ⧋āϟāĻŋāĻĢāĻžāχ āĻ•āϰ⧁āύāĨ¤

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ internal āϟ⧁āϞ āĻŦāĻž āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĒā§āϝāĻžāύ⧇āϞ AppMaster-āĻ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ, āφāϞāĻžāĻĻāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻœā§‹āĻĄāĻŧāĻžāϰ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχ: Data Designer-āĻ PostgreSQL-āĻ audit āĻ“ āϜāĻŦ āĻŸā§‡āĻŦāĻŋāϞ āĻŽāĻĄā§‡āϞ āĻ•āϰ⧁āύ, Business Process Editor-āĻ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āύāĻŋ⧟āĻŽ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧁āύ, āĻāĻŦāĻ‚ āĻ“āϝāĻŧ⧇āĻŦ/āĻŽā§‹āĻŦāĻžāχāϞ UI āĻŦāĻŋāĻ˛ā§āĻĄāĻžāϰ⧇ āĻĒā§āϰāĻŋāĻ­āĻŋāω, āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āĻ“ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻ¸ā§āĻ•ā§āϰāĻŋāύ āĻŦāĻžāύāĻžāύāĨ¤ āϟāĻŋāĻŽ āϝāĻžāϰāĻž āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āĻ•āϰāϛ⧇ āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ appmaster.io-āĻ“ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āϜāĻžā§ŸāĻ—āĻž āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ end-to-end āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ āĻ•āϰ⧇ āĻĻ⧇āϖ⧇ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āĻšā§‡āĻ•āϗ⧁āϞ⧋ āĻĻ⧈āύāĻ¨ā§āĻĻāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻ•āϤāϟāĻž āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āϞāĻžāϗ⧇āĨ¤

āĻĒā§āϰāĻļā§āύ⧋āĻ¤ā§āϤāϰ

What does “safe” bulk action actually mean?

“āύāĻŋāϰāĻžāĻĒāĻĻ” āĻŽāĻžāύ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāĻŋāĻļā§āϚāĻŋāϤ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāĻ°ā§‡â€”āĻ•āύāĻĢāĻžāĻ°ā§āĻŽ āĻ•āϰāĻžāϰ āφāϗ⧇ āϕ⧋āύ āϰ⧇āĻ•āĻ°ā§āĻĄāϗ⧁āϞ⧋ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāĻŦ⧇, āϕ⧋āύ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋ āĻŦāĻĻāϞ⧇ āϝāĻžāĻŦ⧇, āĻāĻŦāĻ‚ āϭ⧁āϞ āĻšāϞ⧇ āĻĢāĻŋāϰ⧇ āφāϏāĻžāϰ āĻĒāĻĨ āϕ⧀āĨ¤ āĻāϟāĻŋ āĻĻā§āϰ⧁āϤ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϚ⧁āĻĒāϚāĻžāĻĒ āĻŦ⧜ āϭ⧁āϞ āĻ•āϰāĻž āĻ•āĻ āĻŋāύ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤāĨ¤

How do I prevent “select all” from updating way more records than expected?

āϏāĻŋāϞ⧇āĻ•āĻļāύāϕ⧇ āĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āϰāĻžāϖ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦāĻžāϟāύ⧇āϰ āĻĒāĻžāĻļ⧇ āĻšā§‚ā§œāĻžāĻ¨ā§āϤ āĻ¸ā§āϕ⧋āĻĒ āĻĻ⧇āĻ–āĻžāύāĨ¤ “Select all results” āϕ⧇ āĻāĻ•āϟāĻž āφāϞāĻžāĻĻāĻž, āχāĻšā§āĻ›āĻžāĻ•ā§ƒāϤ āϧāĻžāĻĒ āϰāĻžāϖ⧁āύ āĻāĻŦāĻ‚ āϏ⧇āĻ–āĻžāύ⧇āχ āĻ¸ā§āĻĒāĻˇā§āϟ āĻ•āϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āφāϛ⧇ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻžāύ, āϝāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ “āϝāĻž āφāĻŽāĻŋ āĻĻ⧇āĻ–āĻŋ” āĻāĻŦāĻ‚ “āϝāĻž āĻŽā§‡āĻ˛ā§‡â€ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤ āύāĻž āĻšā§ŸāĨ¤

What should a good bulk-change preview show?

āĻŽāĻžāĻā§‡ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āĻ¨â€”āĻŦāĻŋāĻļā§āĻŦāĻžāϏāϝ⧋āĻ—ā§āϝ āϏāĻžāϰāĻžāĻ‚āĻļ āĻĻ⧇āĻ–āĻžāύ āϝāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϰ⧁āϞ āĻ…āύ⧁āϏāĻžāϰ⧇āĨ¤ āĻ•āϤāϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻŦāĻĻāϞāĻžāĻŦ⧇, āĻ•āϤāϟāĻŋ āĻ¸ā§āĻ•āĻŋāĻĒ āĻšāĻŦ⧇ āϤāĻž āĻĻ⧇āĻ–āĻžāύāĨ¤ āϤāĻžāϰāĻĒāϰ āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻĻāĻŋāĻ¨â€”āϝ⧇āĻŽāύ āĻ•ā§āώ⧁āĻĻā§āϰ āύāĻŽā§āύāĻž āϏāĻžāϰāĻŋ āĻŦāĻž āĻŦāĻĻāϞāĻžāύ⧋āϰ āφāϗ⧇/āĻĒāϰ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŽāĻžāύāĨ¤

How do I write confirmation dialogs people won’t ignore?

āĻĄāĻžā§ŸāĻžāϞāϗ⧇ āĻ•āĻžāĻœā§‡āϰ āύāĻžāĻŽ āĻ“ āĻšā§‚ā§œāĻžāĻ¨ā§āϤ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻŦāϞ⧁āύ, āϝ⧇āĻŽāύ “Delete 24 customers” āĻŦāĻž “Set status to Closed for 183 tickets”āĨ¤ āĻ…āĻ¸ā§āĻĒāĻˇā§āϟ “Are you sure?” āĻāĻĄāĻŧāĻžāύ āĻāĻŦāĻ‚ āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻŦā§‹āϤāĻžāĻŽāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĢā§‹āĻ•āĻžāϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻŦ⧇āύ āύāĻžāĨ¤

What’s the best way to handle mixed permissions in a bulk selection?

āĻŽāĻŋāĻļā§āϰ āĻ…āύ⧁āĻŽāϤāĻŋāϗ⧁āϞ⧋āχ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•â€”āĻāĻ•āϟāĻŋāϕ⧇ āĻ¸ā§Ž āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āϏāĻžāĻŽāϞāĻžāύ: āĻ…āĻĨāĻŦāĻž āĻļ⧁āϧ⧁ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āφāχāĻŸā§‡āĻŽāϗ⧁āϞ⧋āϤ⧇āχ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•āĻŋāĻĒ āĻ•āϰāĻž āĻŦāĻŋāώ⧟āϗ⧁āϞ⧋ āϏāĻžāϰāĻžāĻ‚āĻļ⧇ āĻĻ⧇āĻ–āĻžāύ, āĻ…āĻĨāĻŦāĻž āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻŦā§āϞāĻ• āĻ•āϰ⧇ āĻĻāĻŋāύ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āϏāĻŋāϞ⧇āĻ•āĻļāύ⧇ āϕ⧇āĻŦāϞ āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇āĨ¤ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϏāĻŦāϏāĻŽāϝāĻŧ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ“ āĻĢāĻŋāĻ˛ā§āĻĄā§‡ āĻ…āύ⧁āĻŽāϤāĻŋ āϝāĻžāϚāĻžāχ āĻ•āϰāĻŦ⧇āĨ¤

Should a bulk action fail the whole batch if some records can’t be updated?

āĻĒāĻžāĻ°ā§āĻļā§āĻŦāĻŦāĻ°ā§āϤ⧀ āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞ⧋āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻ‚āĻļāĻŋāĻ• āϏāĻžāĻĢāĻ˛ā§āϝ āĻ āĻŋāĻ• āφāϛ⧇, āϝāĻĻāĻŋ āϤāĻž āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻ•āϤāϟāĻŋ āϏāĻĢāϞ, āĻ•āϤāϟāĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻāĻŦāĻ‚ āϕ⧇āĻ¨â€”āĻāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāύ, āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϝāĻžāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻŦ⧁āĻā§‡ āĻ āĻŋāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻž āϏāĻšāĻžāϝāĻŧāĻ• āϤāĻĨā§āϝ āĻĻāĻŋāύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻĄā§‡āϟāĻž āĻĢāĻžāρāϏ āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤

When should I use an undo toast vs a restore workflow?

āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āϏāĻšāϜ āĻŦāĻ¸ā§āϤ⧁āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ undo toast āϝāĻĨ⧇āĻˇā§āϟāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĄāĻŋāϞāĻŋāĻŸā§‡āϰ āϜāĻ¨ā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāϞ⧋ soft delete + restore window, āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āϭ⧁āϞ āĻ•ā§āϞāĻŋāĻ•, āϭ⧁āϞ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻ•āĻ­āĻžāϰ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āϏāĻ¤ā§āϝāĻŋāχ āĻĢāĻŋāϰ⧇ āφāύāĻž āϏāĻŽā§āĻ­āĻŦ āύāĻž (āχāĻŽā§‡āχāϞ, āĻĒ⧇āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āĻŽāϤ⧋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āϏāĻžāχāĻĄ-āĻāĻĢ⧇āĻ•ā§āϟ), āϤāĻ–āύ āϏāϰāĻžāϏāϰāĻŋ recovery path āĻĻ⧇āĻ–āĻžāύāĨ¤

What should an audit log capture for bulk actions?

āĻ•āĻžāϰāĻ“ āύāĻžāĻŽā§‡ āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āϚāĻžāϞāĻžāύ⧋ āĻšāϞ⧇ āϞāϗ⧇ āϞāĻŋāϖ⧁āĻ¨â€”āϕ⧇ āϚāĻžāϞāĻŋāϝāĻŧ⧇āϛ⧇, āĻ•āĻ–āύ āϚāĻžāϞāĻŋāϝāĻŧ⧇āϛ⧇, āϕ⧋āύ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ/āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ¸ā§āϕ⧋āĻĒ āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ āĻ•āĻŋ āĻŦāĻĻāϞ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāϚ āĻŦāĻž āϜāĻŦ āφāχāĻĄāĻŋ āĻāĻŦāĻ‚ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āφāωāϟāĻ•āĻžāĻŽ āϏāĻžāϰāĻžāĻ‚āĻļ āϏāĻš āϞāĻ— āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϟāĻŋāĻŽ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

What backend checks prevent double-applies and race conditions?

āϏ⧇āĻŽ āϕ⧀-āϏāĻš idempotency āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āϝāĻžāϤ⧇ āĻāĻ•āχ āĻ…āύ⧁āϰ⧋āϧ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻāϞ⧇ āĻāĻ•āχ āφāωāϟāĻ•āĻžāĻŽ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻĄāĻŦāϞ-āφāĻĒāϞāĻžāχ āĻĨ⧇āϕ⧇ āĻŦāĻžāρāϚāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄā§‡ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻ“ optimistic locking āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝāĻžāϤ⧇ āĻ…āĻ¨ā§āϝ āĻ•āĻžāϰ⧋ āĻ•āϰāĻž āύāϤ⧁āύ āĻāĻĄāĻŋāϟ āĻŽā§āϛ⧇ āύāĻž āϝāĻžā§ŸāĨ¤ Dry-run āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻ•āĻŋ āĻšāĻŦ⧇ āϤāĻž āφāϗ⧇ āĻĻ⧇āĻ–āĻž āĻ­āĻžāϞ⧋āĨ¤

How do I scale bulk actions to tens of thousands of records without breaking reliability?

āĻŦāĻĄāĻŧ āĻŦā§āϝāĻžāϚāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāϜāϕ⧇ āϚāĻžāĻ‚āϕ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āϜāĻŦ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻžāϞāĻžāĻ¨â€”queued, running, completed with issues āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻžāϏ āĻĻ⧇āĻ–āĻžāύāĨ¤ āφāωāϟāĻĒ⧁āϟ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻŦāϞ⧁āĻ• āĻ•āĻŋ āĻļ⧇āώ āĻšāϝāĻŧ⧇āϛ⧇, āĻ•āĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ⧇āϛ⧇, āφāϰ āĻ•āĻŋ āĻŦāĻžāϤāĻŋāϞ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰ⧁āύ āϝ⧇ āĻāĻ• āϞāĻžāχāύ⧇ āϜāĻŦ⧇āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϏāĻšāϜ
āĻ•āĻŋāϛ⧁ āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ•āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇āϰ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āϏāĻš āĻ…ā§āϝāĻžāĻĒāĻŽāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤
āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻšāĻŦ⧇āύ āϤāĻ–āύ āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ• āϏāĻĻāĻ¸ā§āϝāϤāĻž āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

āĻāĻŦāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžāĻ•
āĻŦāĻžāĻ˛ā§āĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ UI āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ: āĻĒā§āϰāĻŋāĻ­āĻŋāω, āĻ…āύ⧁āĻŽāϤāĻŋ āĻ“ āφāύāĻĄā§ | AppMaster