22 рдлрд╝рд░ре░ 2025┬╖8 рдорд┐рдирдЯ рдкрдврд╝рдиреЗ рдореЗрдВ

рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ UX

рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реНрд╕, рдЗрд╡реЗрдВрдЯреНрд╕ рдФрд░ рдПрдХреНрд╢рди рдХреЗ рд▓рд┐рдП UX рдФрд░ рд╕реНрдХреАрдорд╛ рдкреИрдЯрд░реНрдиред

рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ UX

рдХреНрдпреЛрдВ рдПрдбрдорд┐рди рдкреИрдирд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдЕрдирджреЗрдЦрд╛ рд╣реЛрддрд╛ рд╣реИ

рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдбрдорд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЗрд╕рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ тАФ рд╡реЗ рдЗрд╕рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдзреНрдпрд╛рди рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдмрджрд▓реЗ рдХрдо рдлрд╛рдпрджрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реЛ рдпрд╛ рдСрд░реНрдбрд░ рдЕрдЯрдХрд╛ рд╣реЛ, рддреЛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд▓рдВрдмреА рдзреВрд╕рд░ "updated" рдЗрд╡реЗрдВрдЯ рд╕реВрдЪреА рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ред

рдПрдХ рдкрдардиреАрдп, рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдЕрдкрдиреА рдЬрдЧрд╣ рддрднреА рдмрдирд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ:

  • рдХрд┐рд╕рдиреЗ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ (рдФрд░ рдЬрд╣рд╛рдБ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реЛ, рд╡рд╣рд╛рдВ рд╕реЗ рдХрд┐рд╕ рд╕реНрдерд╛рди рд╕реЗ)
  • рдХреНрдпрд╛ рдмрджрд▓рд╛ (рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо рдФрд░ рдкрд╣рд▓реЗ/рдмрд╛рдж рдХреЗ рдорд╛рди)
  • рдХрдм рд╣реБрдЖ (рдФрд░ рдХрд┐рд╕ timezone рдореЗрдВ)
  • рдХреНрдпреЛрдВ рд╣реБрдЖ (рдПрдХ рдХрд╛рд░рдг, рдЯрд┐рдХрдЯ, рдСрдЯреЛрдореЗрд╢рди рдХрд╛ рдирд╛рдо, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдВрдХреЗрдд)

рдЕрдзрд┐рдХрддрд░ рд▓реЙрдЧ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдмрд╛рдд рдкрд░ рдлреЗрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдо рд╡рд┐рдлрд▓рддрд╛ рд╢реЛрд░ рд╣реИ: рд╣рд░ рд╕реЗрд╡ 20 рдПрдВрдЯреНрд░реАрдЬрд╝ рдмрдирд╛рддреА рд╣реИ, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЬреЙрдмреНрд╕ рд╣рд░ рдорд┐рдирдЯ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрд╕реЗрд╕реЗрдЬрд╝ рдорд╛рдирд╡реАрдп рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВред рдбрд┐рдлрд╝ рдЕрдХреНрд╕рд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВтАФрдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ "status changed" рдкрд░ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ "Pending -> Approved" рд╣реБрдЖ, рдпрд╛ рдЖрдкрдХреЛ JSON рдХрд╛ рдмреНрд▓реЙрдм рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рджреЗрдЦрдиреЗ рдХреА рдХреЛрдИ рдХреНрд▓реВ рдирд╣реАрдВ рд╣реЛрддреАред

рд╕рдВрджрд░реНрдн рдХреА рдХрдореА рдХрд╛рдо рдФрд░ рдХрд░ рджреЗрддреА рд╣реИред рдЖрдк рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рдкрд╛рддреЗ рдХрд┐ рдХрд┐рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдиреЗ рдмрджрд▓рд╛рд╡ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛, рдпрд╣ рдореИрдиреНрдпреБрдЕрд▓ рдерд╛ рдпрд╛ рдСрдЯреЛрдореЗрдЯреЗрдб, рдпрд╛ рджреЛ рдлрд╝реАрд▓реНрдб рд╕рд╛рде рдХреНрдпреЛрдВ рдмрджрд▓реЗред

рдкрд░рд┐рдгрд╛рдо рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЯреАрдореЗрдВ рдСрдбрд┐рдЯ рдЯреНрд░реЗрд▓ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИрдВ рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ, рдкреВрдЫрддрд╛рдЫ рдХрд░рдиреЗ, рдпрд╛ рдХрд╛рдо рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреА рд╣реИрдВред рдпрд╣ рддрдм рдЦрддрд░рдирд╛рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рд░рд┐рд╕реНрдЯреЛрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╕рдкреЛрд░реНрдЯ рд╕рдордп рдШрдЯрд╛рддрд╛ рд╣реИ, рд░рд┐рдкреАрдЯ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд▓реНрджреА рд╕реЗ рдкрд╣рд▓реЗ/рдмрд╛рдж рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдСрдбрд┐рдЯ UI рдХреЛ рдбрд┐рдмрдЧ рд╕реНрдХреНрд░реАрди рдХреА рддрд░рд╣ рди рджреЗрдЦреЗрдВтАФрдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рдлреАрдЪрд░ рд╕рдордЭрдХрд░ рджрдмрд╛рд╡ рдореЗрдВ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВред

рдХрд╛рдо рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ (Jobs to be done)

рдПрдХ рдкрдардиреАрдп рдЗрддрд┐рд╣рд╛рд╕ рдПрдХ рдлреИрд╕рд▓реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдХреМрди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реЛред "рд╣рд░ рдХреЛрдИ" рдХреЛрдИ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рд╣реИред рдХрдИ рдПрдбрдорд┐рди рдкреИрдирд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдСрдбрд┐рдЯ рд╡реНрдпреВ рд╕рдкреЛрд░реНрдЯ, рдСрдкреНрд╕ рдФрд░ рдореИрдиреЗрдЬрд░реНрд╕ рд╕рднреА рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рдХрд┐рд╕реА рдХрд╛ рднреА рдХрд╛рдо рдирд╣реАрдВ рд╣реЛрддрд╛ред

рдЕрдкрдиреЗ рдкреНрд░рд╛рдердорд┐рдХ рд░реЛрд▓ рдЪреБрдиреЗрдВ рдФрд░ рд╡реЗ рдХрд┐рд╕ рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХрд╣рд╛рдиреА рдЪрд╛рд╣рд┐рдПред
  • рдСрдкреНрд╕ рдХреЛ рдкреИрдЯрд░реНрди рджреЗрдЦрдиреЗ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдкрдХрдбрд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред
  • рдлрд╝рд╛рдЗрдиреЗрдВрд╕ рдХреЛ рдЕрдкреНрд░реВрд╡рд▓, рд░рд┐рдлрдВрдб рдФрд░ рдЪрд╛рд░реНрдЬрдмреИрдХ рдХреЗ рд▓рд┐рдП рд╕рдмреВрдд рдЪрд╛рд╣рд┐рдПред
  • рдореИрдиреЗрдЬрд░реНрд╕ рдХреЛ рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдбреВрдмреЗ рдЬрд╡рд╛рдмрджреЗрд╣реА рдЪрд╛рд╣рд┐рдПред

рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╢реАрд░реНрд╖ рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

  • рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрдм рдФрд░ рдХрд┐рд╕рдиреЗ рдмрджрд▓рд╛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛
  • рдмрджрд▓рд╛рд╡ рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдпрд╛ рд╕рд╣рдХрд░реНрдореА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдордЭрд╛рдирд╛
  • рдЧрд▓рддреА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ undo рдХрд░рдирд╛ (рдкрд┐рдЫрд▓рд╛ рдорд╛рди рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдирд╛)
  • рдЕрдиреБрдкрд╛рд▓рди рдФрд░ рдСрдбрд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдпрд╛ рд░рд┐рдЯреЗрдВрд╢рди

рдЕрдЧрд▓рд╛ рдХрджрдо: рдЖрдк рдХреНрдпрд╛ рдЯреНрд░реИрдХ рдХрд░реЗрдВрдЧреЗ рдпрд╣ рддрдп рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВред рдПрдХ рдареЛрд╕ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдЗрддрд┐рд╣рд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдлрд╝реАрд▓реНрдб рдПрдбрд┐рдЯ, рд╕реНрдЯреЗрдЯрд╕ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди, рдФрд░ рдкреНрд░рдореБрдЦ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреНрд░рд┐рдпрд╛рдПрдБ (рдЬреИрд╕реЗ "approved", "locked", "refunded") рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдХрдИ рдЯреАрдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб/рдбрд┐рд▓реАрдЯ, рдкрд░рдорд┐рд╢рди рдмрджрд▓рд╛рд╡, рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди-рдЯреНрд░рд┐рдЧрд░ рдЕрдкрдбреЗрдЯ рднреА рдЬреЛрдбрд╝рддреА рд╣реИрдВред рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдирд╣реАрдВ рдЯреНрд░реИрдХ рдХрд░рддреЗ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЙрд╕реЗ рдЫреБрдкрд╛ рд░рд╣рд╛ рд╣реИред

рдЖрдЦрд┐рд░ рдореЗрдВ, рд░рд┐рд╕реНрдЯреЛрд░ рдирд┐рдпрдо рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд░рд┐рд╕реНрдЯреЛрд░ рддрднреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрд░реНрдердкреВрд░реНрдг рд╣реЛред рд╢рд┐рдкрд┐рдВрдЧ рдкрддрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдкрд░ "paid" рд╕реНрдЯреЗрдЯрд╕ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рддрдм рдмреНрд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм payout рдкреНрд░реЛрд╕реЗрд╕ рд╣реЛ рдЪреБрдХрд╛ рд╣реЛред UI рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рдХрд╛рд░рдг рдмрддрд╛рдЗрдП ("Restore disabled: refund already issued").

рдПрдХ рдЫреЛрдЯрд╛ рдкрд░рд┐рджреГрд╢реНрдп: рдЧреНрд░рд╛рд╣рдХ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдкреНрд▓рд╛рди рдмрд┐рдирд╛ рдЕрдиреБрдорддрд┐ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рд╣реЛ рдЧрдпрд╛ред рд╕рдкреЛрд░реНрдЯ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдЬреЗрдВрдЯ рдиреЗ рдХрд┐рдпрд╛, рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдХрд┐рдпрд╛, рдпрд╛ рдмрд┐рд▓рд┐рдВрдЧ рдирд┐рдпрдо рдиреЗ рдХрд┐рдпрд╛, рдФрд░ рдХреНрдпрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗрдВтАФUI рдирд┐рд░реНрдгрдп рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдСрдбрд┐рдЯ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдкреИрдЯрд░реНрди

рдЕрдЧрд░ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЧрдВрджрд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рднреА рдЧрдВрджрд╛ рд╣реЛрдЧрд╛ред UI рд╕рд┐рд░реНрдлрд╝ рдЙрди рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдЬрд┐рддрдирд╛ рд╣реА рд╕рд╛рдлрд╝ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдкреАрдЫреЗ рд╣реИрдВред

рдЗрд╡реЗрдВрдЯ рдмрдирд╛рдо рд╕реНрдиреИрдкрд╢реЙрдЯ

рдЗрд╡реЗрдВрдЯ рдореЙрдбрд▓ рд╕рд┐рд░реНрдл рд╡рд╣реА рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓рд╛ (рдлрд╝реАрд▓реНрдб, рдкрд╣рд▓реЗ, рдмрд╛рдж)ред рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЙрдбрд▓ рд╣рд░ рдПрдбрд┐рдЯ рдХреЗ рдмрд╛рдж рдкреВрд░рд╛ рд░рд┐рдХреЙрд░реНрдб рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рдПрдбрдорд┐рди рдкреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЕрдХреНрд╕рд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рд░рдЦреЗрдВ, рдФрд░ рддреЗрдЬрд╝ рд╡реНрдпреВ рдпрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓реНрдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд░рдЦреЗрдВред

рдЗрд╡реЗрдВрдЯреНрд╕ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрд┐рд╕рдиреЗ рдФрд░ рдХрдмред рд╕реНрдиреИрдкрд╢реЙрдЯреНрд╕ рддрдм рдорджрдж рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "рд╕рдордп X рдкрд░ рд╕реНрдерд┐рддрд┐" рдЬрд▓реНрджреА рд╕реЗ рджрд┐рдЦрд╛рдиреА рд╣реЛ, рдпрд╛ рдЬрдм рдХрдИ рдлрд╝реАрд▓реНрдб рдПрдХ рд╕рд╛рде рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рд╣реЛрдВред

рдиреНрдпреВрдирддрдо рдЬреЛ рдЖрдкрдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдкреНрд░рддреНрдпреЗрдХ рдЪреЗрдВрдЬ рд░рд┐рдХреЙрд░реНрдб рдЫреЛрдЯрд╛ рд░рдЦреЗрдВ, рдкрд░ рдЗрддрдирд╛ рдкреВрд░рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рдордЭрд╛ рд╕рдХреЗред рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдиреНрдпреВрдирддрдо:

  • actor_id (рдФрд░ actor_type рдЬреИрд╕реЗ user, system, integration)
  • occurred_at (UTC рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк)
  • entity_type + entity_id (рдХреМрди рд╕рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдбрд┐рдЯ рд╣реБрдЖ)
  • field_key (рд╕реНрдерд┐рд░, рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдмрд▓ рдирд╣реАрдВ)
  • before_value + after_value (рдЯреЗрдХреНрд╕реНрдЯ рдпрд╛ JSON рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рд╛рде рдореЗрдВ data_type)

"рдХреНрдпреЛрдВ рд╣реБрдЖ" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдВрдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВред рдПрдХ рдЫреЛрдЯрд╛ рдХрдореЗрдВрдЯ рдЕрдХреНрд╕рд░ рдХрд╛рдлреА рд╣реЛрддрд╛ рд╣реИ, рдкрд░ рд╕рдВрд░рдЪрд┐рдд рд╕рдВрджрд░реНрдн рдмреЗрд╣рддрд░ рд╣реЛрддреЗ рд╣реИрдВ: ticket_id, workflow_run_id, import_batch_id, рдпрд╛ automated_reason рдЬреИрд╕реЗ "nightly sync"ред

рдорд▓реНрдЯреА-рдлрд╝реАрд▓реНрдб рдПрдбрд┐рдЯреНрд╕ рдХреЛ рдПрдХ рдЪреЗрдВрдЬ рд╕реЗрдЯ рдореЗрдВ рдЧреНрд░реБрдк рдХрд░реЗрдВ

рд▓реЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗтАФрд╡реЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ "рдореИрдВрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдкрддрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛" рднрд▓реЗ рд╣реА рдкрд╛рдБрдЪ рдлрд╝реАрд▓реНрдб рдмрджрд▓реЗ рд╣реЛрдВред рдЗрд╕реЗ change_set_id рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХрд░реЗрдВ рдЬреЛ рдХрдИ рдлрд╝реАрд▓реНрдб рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╕рд░рд▓ рдкреИрдЯрд░реНрди:

  • рдПрдХ change_set рд░реЛ рдкреНрд░рддрд┐ рд╕реЗрд╡ рдПрдХреНрд╢рди
  • рдХрдИ field_change рд░реЛ рдЬреЛ рдЙрд╕ change_set рдХреЛ рдкреЙрдЗрдВрдЯ рдХрд░реЗрдВ
  • change_set рдкрд░ рдПрдХ рд╕рд╛рдЭрд╛ рдХрд╛рд░рдг/рдХрдореЗрдВрдЯ (рд╣рд░ рдлрд╝реАрд▓реНрдб рдкрд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ)

рдЗрд╕рд╕реЗ UI рдПрдХ рд╕реЗрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдардиреАрдп рдПрдВрдЯреНрд░реА рджрд┐рдЦрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдкрд░ рд╣рд░ рдлрд╝реАрд▓реНрдб рдбрд┐рдлрд╝ рджрд┐рдЦрд╛ рд╕рдХрддреА рд╣реИред

рдРрд╕рд╛ рд▓реЗрдЖрдЙрдЯ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдЬрд▓реНрджреА рд╕реНрдХреИрди рдХрд░ рд╕рдХреЗрдВ

рдЕрдЪреНрдЫрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЙрд╕реА рдЬрдЧрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдБ рд╕рд╡рд╛рд▓ рд╣реЛрддрд╛ рд╣реИ: рд░рд┐рдХреЙрд░реНрдб рдбрд┐рдЯреЗрд▓ рд╕реНрдХреНрд░реАрди рдкрд░ред "History" рдЯреИрдм рдХреЛ "Details" рдФрд░ "Notes" рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рд╕рдВрджрд░реНрдн рди рдЦреЛрдПрдБ рдФрд░ рдмрд┐рдирд╛ рдзрд╛рдЧрд╛ рдЫреЛрдбрд╝реЗ рджреЗрдЦ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛ред

рдПрдХ рдЕрд▓рдЧ рдСрдбрд┐рдЯ рдкреЗрдЬ рдХрд╛ рднреА рд╕реНрдерд╛рди рд╣реИтАФрдЬрдм рдХрд╛рдо рдХреНрд░реЙрд╕-рд░рд┐рдХреЙрд░реНрдб рд╕рд░реНрдЪ рдХрд╛ рд╣реЛ (рдЙрджрд╛рд╣рд░реНрдг: "рдХрд▓ Kim рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рд╣рд░ рдкреНрд░рд╛рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдЦрд╛рдУ") рдпрд╛ рдСрдбрд┐рдЯрд░реНрд╕ рдХреЛ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдЪрд╛рд╣рд┐рдПред рд░реЛрдЬрд╝рдорд░реНрд░рд╛ рдХреЗ рд╕рдкреЛрд░реНрдЯ рдФрд░ рдСрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб-рд╕реНрддрд░реАрдп рдЗрддрд┐рд╣рд╛рд╕ рдмреЗрд╣рддрд░ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпреВ рдХреЛ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдЪрд╛рд░ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП: рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрд┐рд╕рдиреЗ рдмрджрд▓рд╛, рдХрдм рд╣реБрдЖ, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдмрдбрд╝реА рдПрдбрд┐рдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред рдирдпрд╛ рд╕рдмрд╕реЗ рдКрдкрд░ рдЬрд╛рд░реА рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, рдкрд░ рдПрдбрд┐рдЯ рд╕реЗрд╢рди рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдЧреНрд░реБрдкрд┐рдВрдЧ рд╣реА рдкрдардиреАрдп рдмрдирд╛рддреА рд╣реИ: рдПрдХ рдЖрдЗрдЯрдо рдкреНрд░рддрд┐ рд╕реЗрд╡ рдПрдХреНрд╢рди, рдФрд░ рдмрджрд▓реЗ рд╣реБрдП рдлрд╝реАрд▓реНрдб рдЗрд╕рдХреА рдЕрдВрджрд░ред

рд╕реНрдХреИрди рддреЗрдЬрд╝ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рд╡рд╣реА рджрд┐рдЦрд╛рдПрдБ рдЬреЛ рдмрджрд▓рд╛ред рдкреВрд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдлрд┐рд░ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рди рдХрд░реЗрдВтАФрдпрд╣ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╢реЛрд░ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрд╕рд▓реА рдПрдбрд┐рдЯреНрд╕ рдХреЛ рдвреВрдБрдврдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрд╡реЗрдВрдЯ рдХрд╛рд░реНрдб рдЖрдорддреМрд░ рдкрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рд╣реЗрдбрд░: рдирд╛рдо (рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рд▓реЗрдмрд▓) рдФрд░ рд╕рдЯреАрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк
  • рд╕реЛрд░реНрд╕ рд▓реЗрдмрд▓: Manual edit, Import, API, Automation
  • рдмрджрд▓реЗ рдлрд╝реАрд▓реНрдб: рд╣рд░ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрди рдЬрд┐рд╕рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдорд╛рди
  • "Show more" рд▓рдВрдмреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП
  • рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝реАрд▓реНрдб рдКрдкрд░ рдкрд┐рди (status, owner, price)

"рдХрд┐рд╕рдиреЗ рдХрд┐рдпрд╛" рдФрд░ "рдХрдм" рдХреЛ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдЗрдПтАФрдЫрд┐рдкрд╛ рдХрд░ рдордд рд░рдЦреЗрдВред рдПрдХ рд╕рдорд╛рди рдЕрд▓рд╛рдЗрдирдореЗрдВрдЯ рдФрд░ рдПрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдлреЙрд░реНрдореИрдЯ рд░рдЦреЗрдВред

рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдХреЗ рдбрд┐рдлрд╝ рдЬреЛ рдкрдардиреАрдп рд░рд╣реЗрдВ

рдЙрдЪреНрдЪ-рдЬреЛрдЦрд┐рдо рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреНрд░реИрдХ рдХрд░реЗрдВ
рдЕрдкреНрд░реВрд╡рд▓, рд░рд┐рдлрдВрдб рдФрд░ рдкрд░рдорд┐рд╢рди рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдЕрдЯреНрд░реАрдмреНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдХрд░реЗрдВред
рд╢реБрд░реВ рдХрд░реЗрдВ

рд▓реЛрдЧ рддрдм рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬрдм рдХреБрдЫ рдЧрд╝рд▓рдд рджрд┐рдЦрддрд╛ рд╣реИред рдЕрдЧрд░ рдбрд┐рдлрд╝ рд╕реНрдХреИрди рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рди рд╣реИ, рддреЛ рд╡реЗ рд╣рд╛рд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╣рдХрд░реНрдореА рд╕реЗ рдкреВрдЫ рд▓реЗрддреЗ рд╣реИрдВред рдЕрдЪреНрдЫреЗ рдбрд┐рдлрд╝ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ: рдПрдХ рд▓рд╛рдЗрди рдкрд░ Before -> After рджрд┐рдЦрд╛рдПрдБ, рдХреЗрд╡рд▓ рдмрджрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рдорд╛рди рд▓рдВрдмрд╛ рд╣реЛ (рдЬреИрд╕реЗ рдкрддреЗ) рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреА рд╣реЛ, рдкрд░ рдпрд╣ рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред рд╕рд░рд▓ рдирд┐рдпрдо: рдЗрдирд▓рд╛рдЗрди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдЦреЗрдВ, рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб рддрдм рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рд░реИрдкрд┐рдВрдЧ рд╕реЗ рдлрд░реНрдХ рдЫрд┐рдк рдЬрд╛рдПред

рд▓рдВрдмреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрдпрд╛рди рд░рдЦреЗрдВред рдПрдХ рдкреИрд░рд╛ рдбрд┐рдлрд╝ рдХреЛ рдШрдирд╛ рд▓рд┐рд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдирд╛ рд╕рдм рдХреБрдЫ рд╢реЛрд░ рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯрд╛ рдПрдХреНрд╕рд░реНрдЯ (рдкрд╣рд▓реЗ 120тАУ200 рдХреИрд░реЗрдХреНрдЯрд░) рджрд┐рдЦрд╛рдПрдБ рдФрд░ рдПрдХреНрд╕рдкреИрдВрдб рдХрдВрдЯреНрд░реЛрд▓ рджреЗрдВ рдЬреЛ рдкреВрд░рд╛ рдорд╛рди рджрд┐рдЦрд╛рдПред рдЬрдм рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛ, рддреЛ рд▓рд╛рдЗрди рдмреНрд░реЗрдХреНрд╕ рдмрдирд╛рдП рд░рдЦреЗрдВред рд╕рд┐рд░реНрдлрд╝ рдХреЛрдб рдЬреИрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП fixed-width рдлреЙрдиреНрдЯ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рдмрджрд▓реЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдБрдЦ рдХреЛ рдПрдХ рдПрдВрдХрд░ рдорд┐рд▓реЗред

рдирдВрдмрд░реНрд╕, рдХрд░реЗрдВрд╕реА рдФрд░ рддрд╛рд░реАрдЦреЗрдВ рдЕрдХреНрд╕рд░ "рдмрджрд▓реА рдирд╣реАрдВ" рджрд┐рдЦрддреА рд╣реИрдВ рднрд▓реЗ рд╣реА рдмрджрд▓реА рд╣реЛрдВред рдЬрдм рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдХрдЪреНрдЪрд╛ рдорд╛рди рдФрд░ рдпреВрдЬрд╝рд░-рдлреЗрдпрд░рд┐рдВрдЧ рдлреЙрд░реНрдореИрдЯ рджреЛрдиреЛрдВ рджрд┐рдЦрд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг: "10000" рд╕реЗ "10,000.00 USD" рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИтАФрдкреНрд░реЗрд╕рд┐рд╢рди рдФрд░ рдХрд░реЗрдВрд╕реА рдХрд╛ рдлрд░реНрдХ рд╣реИ, рд╕рд┐рд░реНрдлрд╝ рдкреНрд░рд╕реНрддреБрддрд┐ рдирд╣реАрдВред

Enums рдФрд░ рд╕реНрдЯреЗрдЯрд╕ рдПрдХ рдФрд░ рдЬрд╛рд▓ рд╣реИрдВред рд▓реЛрдЧ рд▓реЗрдмрд▓ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдирд▓ рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд▓реЗрдмрд▓ рджрд┐рдЦрд╛рдПрдБ рдФрд░ рд╕рдкреЛрд░реНрдЯ/рдХрдореНрдкреНрд▓рд╛рдпрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░реНрдирд▓ рд╡реИрд▓реНрдпреВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдПрдБред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдбрд┐рдлрд╝ рдкреИрдЯрд░реНрди рдЬреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд░рд╣реЗрдВ

  • рдЗрдирд▓рд╛рдЗрди: Before -> After, рдХреЗрд╡рд▓ рд╕рдВрдкрд╛рджрд┐рдд рднрд╛рдЧ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ
  • рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб: рд▓рдВрдмреЗ, рдорд▓реНрдЯреА-рдкрд╛рд░реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рджреЛ рдХреЙрд▓рдо
  • рдХреЕрд▓реИрдкреНрд╕реНрдб рд▓рдВрдмрд╛ рдЯреЗрдХреНрд╕реНрдЯ: рдПрдХреНрд╕рд░реНрдЯ рдФрд░ рдПрдХреНрд╕рдкреИрдВрдб, рд▓рд╛рдЗрди рдмреНрд░реЗрдХреНрд╕ рдмрдирд╛рдП рд░рдЦреЗрдВ
  • рдЯрд╛рдЗрдкреЗрдб рдлрд╝реЙрд░рдореИрдЯрд┐рдВрдЧ: рдорд╛рди рдФрд░ рдлреЙрд░реНрдореИрдЯ рджрд┐рдЦрд╛рдПрдБ (timezone, currency, precision)
  • рд╕реНрдЯреЗрдЯрд╕/рдПрдирдо: рд▓реЗрдмрд▓ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЗрдВрдЯрд░рдирд▓ рдХреЛрдб

рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛ рд╢реЛрд░ рдШрдЯрд╛рдПрдБ рдмрд┐рдирд╛ рддрдереНрдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдП

рдЕрдзрд┐рдХрддрд░ рд▓реЛрдЧ рдЗрддрд┐рд╣рд╛рд╕ рддрднреА рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬрдм рдХреБрдЫ рдЧрд╝рд▓рдд рд▓рдЧрддрд╛ рд╣реИред рдЕрдЧрд░ рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди 300 рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдПрдбрд┐рдЯреНрд╕ рд╕реЗ рднрд░реА рд╣реЛ, рд╡реЗ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред рдЕрдЪреНрдЫреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рджреЛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рддреЗрдЬреА рд╕реЗ рд╢реЛрд░ рдШрдЯрд╛рдПрдБ, рдФрд░ рдкреВрд░рд╛ рд╕рдЪ рдПрдХ рдХреНрд▓рд┐рдХ рдкрд░ рдЙрдкрд▓рдмреНрдз рд░рдЦреЗрдВред

рдЫреЛрдЯреЗ, рдЕрдиреБрдорд╛рдирд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

  • рдЯрд╛рдЗрдо рд░реЗрдВрдЬ (last hour, 24 hours, 7 days, custom)
  • рдПрдХреНрдЯрд▒ (рдПрдХ рд╡реНрдпрдХреНрддрд┐, рд╕рд░реНрд╡рд┐рд╕ рдЕрдХрд╛рдЙрдВрдЯ, unknown)
  • рдлрд╝реАрд▓реНрдб (status, price, address, permissions)
  • рдЪреЗрдВрдЬ рдЯрд╛рдЗрдк (created, updated, cleared, restored)
  • рд╕реЛрд░реНрд╕ (user action vs automation/import/API)

рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рдлреИрдВрд╕реА рдХрдВрдЯреНрд░реЛрд▓реНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВред рдПрдХ рдареЛрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ "Important fields" рдФрд░ "Last 7 days", рд╕рд╛рде рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк "All fields" рдФрд░ рд▓рдВрдмреА рд░реЗрдВрдЬ рдХреЗ рд▓рд┐рдПред "Show noise" рдЯреЙрдЧрд▓ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреИрд╕реЗ last_seen_at, рдорд╛рдореВрд▓реА рдлреЙрд░реНрдореИрдЯрд┐рдВрдЧ рдПрдбрд┐рдЯреНрд╕, рдпрд╛ рдСрдЯреЛ-рдХреИрд▓рдХреБрд▓реЗрдЯреЗрдб рдЯреЛрдЯрд▓реНрд╕ред рд▓рдХреНрд╖реНрдп рддрдереНрдп рдЫреБрдкрд╛рдирд╛ рдирд╣реАрдВтАФрдЬрдм рддрдХ рдЬрд╝рд░реВрд░реА рди рд╣реЛ, рдЙрдиреНрд╣реЗрдВ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рд╣реИред

рд╣рд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рд░реНрдЪ рдЕрдХреНрд╕рд░ рд╢рдХ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реЗ рдлреЙрд░рдЧрд┐рд╡рд┐рдВрдЧ рд░рдЦреЗрдВ: рдкрд╛рд░реНрд╢рд┐рдпрд▓ рдореИрдЪ_ALLOW рдХрд░реЗрдВ, рдХреЗрд╕-рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВ, рдФрд░ рдлрд╝реАрд▓реНрдб рдирд╛рдо, рдПрдХреНрдЯрд▒ рдирд╛рдо рдФрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдорд╛рдиреЛрдВ рдкрд░ рд╕рд░реНрдЪ рдХрд░реЗрдВред рдЕрдЧрд░ рдХреЛрдИ "refund" рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдиреЛрдЯреНрд╕, рд╕реНрдЯреЗрдЯрд╕ рдмрджрд▓рд╛рд╡ рдФрд░ рдкреЗрдореЗрдВрдЯ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдмрд┐рдирд╛ рдЕрдВрджрд╛рдЬрд╝рд╛ рд▓рдЧрд╛рдпреЗ рджрд┐рдЦрдиреЗ рдЪрд╛рд╣рд┐рдПред

рд╕реЗрд╡реНрдб рдлрд╝рд┐рд▓реНрдЯрд░ рд╡реНрдпреВрдЬрд╝ рдмрд╛рд░-рдмрд╛рд░ рдЬрд╛рдВрдЪреЛрдВ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рд╕рдкреЛрд░реНрдЯ рдЯреАрдореЗрдВ рдПрдХ рд╣реА рдЪреЗрдХ рд╣рд░ рдЯрд┐рдХрдЯ рдкрд░ рдЪрд▓рд╛рддреА рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдХреБрдЫ рдФрд░ рд░реЛрд▓-рдлреНрд░реЗрдВрдбрд▓реА рд░рдЦреЗрдВ (рдЙрджрд╛., "Customer-facing fields only" рдпрд╛ "Automation changes").

рд░рд┐рд╕реНрдЯреЛрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рд╣реЛрдВ

рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдПрдбрдорд┐рди рдкреИрдирд▓ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ рдпрд╛ рдЬрдм рдЬрд╝рд░реВрд░рдд рд╣реЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░реЗрдВред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЖрдЬрд╝рдорд╛рдПрдБ

рдПрдХ рд░рд┐рд╕реНрдЯреЛрд░ рдмрдЯрди рддрднреА рдорджрджрдЧрд╛рд░ рд╣реИ рдЬрдм рд▓реЛрдЧ рдЙрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВред рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рд╕рд╛рд╡рдзрд╛рди, рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдПрдбрд┐рдЯ рдорд╣рд╕реВрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдПрдХ рдЬрд╛рджреБрдИ рд░реЛрд▓рдмреИрдХред

рдЬрд╣рд╛рдБ рдЗрд░рд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╡рд╣рд╛рдБ рд░рд┐рд╕реНрдЯреЛрд░ рджрд┐рдЦрд╛рдПрдБред рд╕рд╛рдзрд╛рд░рдг рдлрд╝реАрд▓реНрдбреНрд╕ (status, plan, assignee) рдХреЗ рд▓рд┐рдП рдкрд░-рдлрд╝реАрд▓реНрдб рд░рд┐рд╕реНрдЯреЛрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓реЗрдЧрд╛ред рдорд▓реНрдЯреА-рдлрд╝реАрд▓реНрдб рдПрдбрд┐рдЯреНрд╕ (address block, permissions set, billing details) рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ change_set рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ, рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рд╕реНрдЯреЛрд░ рдХреЗ рдкрд╛рд╕ "restore all from this edit" рдСрдлрд░ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдзрд╛-рдЖрдзрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдЬреАрдм рд╕рдВрдпреЛрдЬрди рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдХрд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рднрд╛рд╡ рд╕реНрдкрд╖реНрдЯ рджрд┐рдЦрд╛рдПрдБред рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрдиреНрдлрд░реНрдореЗрд╢рди рд░рд┐рдХреЙрд░реНрдб, рдлрд╝реАрд▓реНрдб рдФрд░ рд╕рдЯреАрдХ рдорд╛рдиреЛрдВ рдХрд╛ рдирд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓реЗрдЧрд╛ред

  • рд╕рд╣реА рдЕрдиреБрдорддрд┐ рдЬрд╝рд░реВрд░реА рдХрд░реЗрдВ (edit рд╕реЗ рдЕрд▓рдЧ) рдФрд░ рджрд┐рдЦрд╛рдПрдБ рдХрд┐ рдХреМрди рдЕрдиреБрдорддрд┐ рд░рдЦрддрд╛ рд╣реИред
  • рдареАрдХ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдХреЗ рдорд╛рди рдХрдиреНрдлрд░реНрдо рдХрд░реЗрдВред
  • рд╕рд╛рдЗрдб-рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВ (рдЙрджрд╛., рдИрдореЗрд▓ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдкрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
  • рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреЗрдВ: рдкрд╣рд▓реЗ рдкреНрд░реАрд╡реНрдпреВ, рдлрд┐рд░ рдЕрдкреНрд▓рд╛рдИред

рдХрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╡рд╣ рдЬрдЧрд╣ рд╣реИрдВ рдЬрд╣рд╛рдБ рднрд░реЛрд╕рд╛ рдЯреВрдЯрддрд╛ рд╣реИтАФрдЗрдиреНрд╣реЗрдВ рд╢рд╛рдВрддрд┐рдкреВрд░реНрд╡рдХ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВред рдЕрдЧрд░ рдИрд╡реЗрдВрдЯ рдХреЗ рдмрд╛рдж рдлрд╝реАрд▓реНрдб рдлрд┐рд░ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рди рдХрд░реЗрдВред

рдХрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ

рдЬрдм рдХрд░рдВрдЯ рд╡реИрд▓реНрдпреВ рдЗрд╡реЗрдВрдЯ рдХреЗ "after" рд╕реЗ рдЕрд▓рдЧ рд╣реЛ, рдЫреЛрдЯрд╛ рдХрдВCompare рд╡реНрдпреВ рджрд┐рдЦрд╛рдПрдБ: "рдЖрдк рдЗрд╕реЗ X рдкрд░ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдкрд░ рд╡рд░реНрддрдорд╛рди рдорд╛рди Y рд╣реИред" рдлрд┐рд░ рд╡рд┐рдХрд▓реНрдк рджреЗрдВ: рдлрд┐рд░ рднреА рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдкреБрд░рд╛рдиреЗ рдорд╛рди рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ, рдпрд╛ рд░рджреНрдж рдХрд░реЗрдВред рдпрджрд┐ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рддреЛ рд░рд┐рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг рдмреЙрдХреНрд╕ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рд░рд╣реЗред

рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рди рдорд┐рдЯрд╛рдПрдБред рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рдПрдХ рдирдП рдЗрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдЕрдЯреНрд░реАрдмреНрдпреВрд╢рди рд╣реЛ: рдХрд┐рд╕рдиреЗ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛, рдХрдм, рдФрд░ рдХрд┐рд╕ рдЗрд╡реЗрдВрдЯ рд╕реЗ рдЖрдпрд╛ рдерд╛ред

рдЪрд░рдг-рджрд░-рдЪрд░рдг: рдкрдврд╝рдиреЗ рд▓рд╛рдпрдХ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдПрдВрдб-рдЯреВ-рдПрдВрдб рд▓рд╛рдЧреВ рдХрд░рдирд╛

рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд┐рд╕реНрдЯреЛрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВ
рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдХреЗ рдорд╛рди рджрд┐рдЦрд╛рдХрд░ рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рдкреНрд░реАрд╡реНрдпреВ рдХрд░реЗрдВ рдФрд░ рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рдирдП рдЗрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдХрд░реЗрдВред
рд░рд┐рд╕реНрдЯреЛрд░ рдмрдирд╛рдПрдВ

рдЖрдк рднрд░реЛрд╕реЗрдордВрдж рдЗрддрд┐рд╣рд╛рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдХреБрдЫ рдирд┐рд░реНрдгрдп рдкрд╣рд▓реЗ рд╕реЗ рдХрд░ рд▓реЗрдВ рдФрд░ UI, API, рдФрд░ рдСрдЯреЛрдореЗрд╢рдиреНрд╕ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕реБрд╕рдВрдЧрдд рд░рдЦреЗрдВред

рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ 5-рд╕реНрдЯреЗрдк рдмрд┐рд▓реНрдб

  • Step 1: рдЙрди рдПрдВрдЯрд┐рдЯреАрдЬрд╝ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрд┐рд╣рд╛рд╕ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд╛рдж рдпрд╛ рдкреИрд╕реЗ рдХреЗ рдЬреЛрдЦрд┐рдо рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: users, orders, pricing, permissions. рдпрджрд┐ рдЖрдк рдЗрди рдкрд░ "рдХрд┐рд╕рдиреЗ рдФрд░ рдХрдм рдмрджрд▓рд╛" рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ, рддреЛ рд╕рдкреЛрд░реНрдЯ рдФрд░ рдлрд╝рд╛рдЗрдиреЗрдВрд╕ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред
  • Step 2: рдЕрдкрдирд╛ рдЗрд╡реЗрдВрдЯ рд╕реНрдХреАрдорд╛ рдФрд░ рдХреНрдпрд╛ рдПрдХ change set рдЧрд┐рдирд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рддрдп рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рд╕реЗрд╡ рдПрдХ рдЗрд╡реЗрдВрдЯ рдмрдиреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдлрд╝реАрд▓реНрдб рдПрдбрд┐рдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред entity type/id, actor (user рдпрд╛ system), source (admin UI, API, automation), timestamp, рдФрд░ рдмрджрд▓реЗ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рд╕реВрдЪреА with before/after рд╡реИрд▓реНрдпреВрдЬрд╝ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред
  • Step 3: рд╣рд░ рдЬрдЧрд╣ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рдмрджрд▓рд╛рд╡ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВред UI рдПрдбрд┐рдЯ рдЖрд╕рд╛рди рд╣реИрдВ; рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ API рдХреЙрд▓реНрд╕ рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЬреЙрдмреНрд╕ рд╣реИред auditing рдХреЛ рдПрдХ рдЬрдЧрд╣ рд░рдЦреЗрдВ (service layer рдпрд╛ business logic) рддрд╛рдХрд┐ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдЫреВрдЯреЗ рдирд╣реАрдВред
  • Step 4: рд░рд┐рдХреЙрд░реНрдб рдкреЗрдЬ рд╣рд┐рд╕реНрдЯреНрд░реА UI рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рд╕рд╛рде рдмрдирд╛рдПрдВред рд░рд┐рд╡рд░реНрд╕-рдХреНрд░реЛрдиреЛрд▓реЙрдЬрд┐рдХрд▓ рд▓рд┐рд╕реНрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рд╣рд░ рдЖрдЗрдЯрдо рдореЗрдВ who, when, рдФрд░ рдЫреЛрдЯрд╛ "changed 3 fields" рд╕рд╛рд░рд╛рдВрд╢ рд╣реЛред рдлрд╝рд┐рд▓реНрдЯрд░реНрд╕ рдЙрди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╡рд╛рд▓реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП: рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛, рдПрдХреНрдЯрд▒ рджреНрд╡рд╛рд░рд╛, рд╕реЛрд░реНрд╕ рджреНрд╡рд╛рд░рд╛, рдФрд░ "рд╕рд┐рд░реНрдл рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБ"ред
  • Step 5: рд╕рдЦреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд░рд┐рд╕реНрдЯреЛрд░ рдЬреЛрдбрд╝реЗрдВред рд░рд┐рд╕реНрдЯреЛрд░ рдПрдХ рдирдпрд╛ рдмрджрд▓рд╛рд╡ рд╣реИ, рдЯрд╛рдЗрдо рдорд╢реАрди рдирд╣реАрдВред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡реИрд▓реНрдпреВ рдХреЛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░реЗ, рддреЛ рдПрдХ рддрд╛рдЬрд╝рд╛ рдСрдбрд┐рдЯ рдЗрд╡реЗрдВрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рдмрддрд╛рдпреЗ рдХрд┐ рдХрд┐рд╕рдиреЗ рдХрд┐рдпрд╛, рдХреНрдпрд╛ рдмрджрд▓рд╛ рдФрд░ (рдпрджрд┐ рдЬрд╝рд░реВрд░реА рд╣реЛ) рдХреНрдпреЛрдВред

рд╢рд┐рдк рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдкрд░рд┐рджреГрд╢реНрдп рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ: рдПрдХ рд╕рдкреЛрд░реНрдЯ рдПрдЬреЗрдВрдЯ рдСрд░реНрдбрд░ рдЦреЛрд▓рддрд╛ рд╣реИ, рдкреНрд░рд╛рдЗрд╕рд┐рдВрдЧ рдлрд╝реАрд▓реНрдбреНрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╣реА рд╕реЗрд╡ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ subtotal, discount рдФрд░ tax рдмрджрд▓реЗ, рдлрд┐рд░ рд╕рд┐рд░реНрдл discount рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рд╡рд╣ рдлреНрд▓реЛ рдмрд┐рдирд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ рдФрд░ рдЬрд╛рд▓

рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрддрд┐рд╣рд╛рд╕ рд╡реНрдпреВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░рдг рд╕реЗ рдлреЗрд▓ рд╣реЛрддреЗ рд╣реИрдВ: рд╡реЗ рдзреНрдпрд╛рди рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддреЗред рдЕрдЧрд░ рд▓реЙрдЧ рд╢реЛрд░ рдпрд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред

рдПрдХ рдЖрдо рдЬрд╛рд▓ рдЕрдзрд┐рдХ рд▓реЙрдЧрд┐рдВрдЧ рд╣реИред рдЕрдЧрд░ рдЖрдк рд╣рд░ рдХреАрд╕реНрдЯреНрд░реЛрдХ, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕рд┐рдВрдХ рдЯрд┐рдХ рдпрд╛ рдСрдЯреЛ-рдЕрдкрдбреЗрдЯ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рдЧреНрдирд▓ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧреА рдХрдорд┐рдЯреНрд╕ рд▓реЙрдЧ рдХрд░реЗрдВ: "Status changed", "Address updated", "Limit increased"тАФрди рдХрд┐ "User typed A, then B"ред

рдмрд╣реБрдд рдХрдо рд▓реЙрдЧ рдХрд░рдирд╛ рднреА рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИред рдмрд┐рдирд╛ рдПрдХреНрдЯрд▒, рдмрд┐рдирд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рдмрд┐рдирд╛ рдХрд╛рд░рдг, рдпрд╛ рдмрд┐рдирд╛ рдкрд╣рд▓реЗ рдорд╛рди рдХреЗ рд╕реНрдЯреЛрд░ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдирд╣реАрдВтАФрдпрд╣ рдЕрдлрд╡рд╛рд╣ рд╣реИред

рд▓реЗрдмрд▓ рднреА рднрд░реЛрд╕рд╛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд░реЙ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо (рдЬреИрд╕реЗ cust_id), рдЗрдВрдЯрд░рдирд▓ IDs, рдпрд╛ рдХреНрд░рд┐рдкреНрдЯрд┐рдХ рдПрдирдо рдорд╛рди рдЧреИрд░-рдЯреЗрдХреНрдирд┐рдХрд▓ рд╕реНрдЯрд╛рдл рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред рдорд╛рдирд╡-рд░реЗрдЦреАрдп рд▓реЗрдмрд▓ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ ("Customer", "Plan", "Shipping address") рдФрд░ IDs рдХреЗрд╡рд▓ рдЬрдм рдЬрд╝рд░реВрд░рдд рд╣реЛ рддрднреА рджрд┐рдЦрд╛рдПрдБред

рд╡реЗ рдЧрд▓рддрд┐рдпрд╛рдБ рдЬреЛ рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдорд╛рд░ рджреЗрддреА рд╣реИрдВ:

  • рд╕рд┐рд╕реНрдЯрдо рд╢реЛрд░ рдХреЛ рдлрд░реНрд╕реНрдЯ-рдХреНрд▓рд╛рд╕ рдЗрд╡реЗрдВрдЯреНрд╕ рдорд╛рдирдирд╛ (syncs, heartbeats, auto-calculations)
  • рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ (missing actor, reason, source)
  • рддрдХрдиреАрдХреА рдлрд╝реАрд▓реНрдб рдХреАрдЬрд╝ рджрд┐рдЦрд╛рдирд╛ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рдмреНрджреЛрдВ рдХреЗ
  • рдЕрд╕рдВрдмрдВрдзрд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдПрдХ рдмреНрд▓реЙрдм рдореЗрдВ рдорд┐рд▓рд╛рдирд╛ рдЬрд┐рд╕рд╕реЗ рдбрд┐рдлрд╝ рд╕реНрдХреИрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ
  • рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рдЖрдХреНрд░рд╛рдордХ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛рдирд╛

рд░рд┐рд╕реНрдЯреЛрд░ рдХреНрд╖реЗрддреНрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИред рдПрдХ-рдХреНрд▓рд┐рдХ undo рддреЗрдЬрд╝ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХреБрдЫ рдФрд░ рддреЛрдбрд╝ рди рджреЗ (payments, permissions, inventory)ред рд░рд┐рд╕реНрдЯреЛрд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рд╛рдПрдВ:

  • рд╣рдореЗрд╢рд╛ рдХрдиреНрдлрд░реНрдо рдХрд░реЗрдВ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдмрддрд╛рдПрдВ рдХреНрдпрд╛ revert рд╣реЛрдЧрд╛
  • рд╕рд╛рдЗрдб-рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВ (рдХрд┐рд╕реА рдирд┐рдпрдо рдХрд╛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдирд╛, рдирд┐рд░реНрднрд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рдкреБрдирдГрдЧрдгрдирд╛)
  • рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг рдиреЛрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
  • рд░рд┐рд╕реНрдЯреЛрд░ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реБрдЖ рджрд┐рдЦрд╛рдПрдБ (рдирдпрд╛ рдЗрд╡реЗрдВрдЯ, рдЫреБрдкрд╛ рд╣реБрдЖ рдПрдбрд┐рдЯ рдирд╣реАрдВ)

рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдЪреЗрдХрд▓рд┐рд╕реНрдЯ

рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рдПрдбрдорд┐рди рдЯреВрд▓реНрд╕ рд╢рд┐рдк рдХрд░реЗрдВ
рдмреИрдХрдПрдВрдб, рд╡реЗрдм рдПрдбрдорд┐рди рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдЯреВрд▓ рдмрд┐рдирд╛ рд╣реИрдВрдб-рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдВред
рдЕрдм рд╢реБрд░реВ рдХрд░реЗрдВ

рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╡реНрдпреВ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХрд╛ рд╕рдкреЛрд░реНрдЯ рдЯреАрдо рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред рдпрджрд┐ "рдХреНрдпрд╛ рдмрджрд▓рд╛, рдХрдм рдФрд░ рдХрд┐рд╕рдиреЗ" рдХрд╛ рдЬрд╡рд╛рдм рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрди рд╕реЗ рджреЗрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ than рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рд▓реЛрдЧ рдЗрд╕реЗ рдЦреЛрд▓рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред

  • 10-рд╕реЗрдХрдВрдб рдЯреЗрд╕реНрдЯ: рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рд╕реЗ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдЯреАрдХ рдПрдВрдЯреНрд░реА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдХрд╛рд░рдг рджрд┐рдЦрд╛рддреА рд╣реИ, рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдорд╛рди рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд▓рд┐рдХ рдХреЗ?
  • рд╣рд░ рдмрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдЕрдЯреНрд░реАрдмреНрдпреВрд╢рди: рд╣рд░ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐рд╕рдиреЗ рдХрд┐рдпрд╛ (рдирд╛рдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдпрд╛ рдХрд┐рд╕рдиреЗ рдХрд┐рдпрд╛ (system, import, automation), рд╕рд╛рде рдореЗрдВ рдкрдардиреАрдп рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдФрд░ рдпрджрд┐ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ timezoneред
  • рддреЗрдЬрд╝ рдиреЕрд░реЛрдЗрдВрдЧ рдмрд┐рдирд╛ рд╢рдВрдХрд╛ рдХреЗ: рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рдПрдХ рдлрд╝реАрд▓реНрдб рдФрд░ рддрдВрдЧ рдЯрд╛рдЗрдо рд╡рд┐рдВрдбреЛ рдкрд░ рдЬрд▓реНрджреА рдХреВрджрдирд╛ рдЖрд╕рд╛рди рд╣реЛ, рдФрд░ UI рджрд┐рдЦрд╛рдП рдХрд┐ рдХрд┐рддрдиреЗ рдкрд░рд┐рдгрд╛рдо рдмрдЪреЗ рд╣реИрдВред
  • рд░рд┐рд╕реНрдЯреЛрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рдЧреЗ, рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ: рд░рд┐рд╕реНрдЯреЛрд░ рдХреЗрд╡рд▓ рд╕рд╣реА рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рджрд┐рдЦреЗ, рдХрдиреНрдлрд░реНрдореЗрд╢рди рдорд╛рдВрдЧреЗ рдЬреЛ рдлрд╝реАрд▓реНрдб рдФрд░ рд╕рдЯреАрдХ рд╡реИрд▓реНрдпреВ рдХрд╛ рдирд╛рдо рд▓реЗ, рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рджреЗ рдпрджрд┐ рдпрд╣ рдирдИ рдмрджрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдЧрд╛ред
  • рд░рд┐рд╕реНрдЯреЛрд░реНрд╕ рдЕрд╕рд▓реА рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рд╣реЛрдВ: рд░рд┐рд╕реНрдЯреЛрд░ рдПрдХ рдирдпрд╛ рдСрдбрд┐рдЯ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдП (рдЫреБрдкрд╛ рдЙрд▓рдЯрд╡рд╛рд▓рд╛ рдирд╣реАрдВ) рдЬреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗ рдХрд┐рд╕рдиреЗ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛, рдХреМрди рд╕рд╛ рдорд╛рди рд░рд┐рд╕реНрдЯреЛрд░ рд╣реБрдЖ рдФрд░ рдХреНрдпрд╛ рдмрджрд▓рд╛ред

рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ "рд╕рдкреЛрд░реНрдЯ рд╡рд┐рд╡рд╛рдж" рдбреНрд░рд┐рд▓ рд╣реИ: рдмрд╣реБрдд рдПрдбрд┐рдЯ рд╡рд╛рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдЪреБрдиреЗрдВ рдФрд░ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рд╕реЗ рдкреВрдЫреЗрдВ: "рдХрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдЕрд▓рдЧ рд╢рд┐рдкрд┐рдВрдЧ рдкрддрд╛ рдХреНрдпреЛрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ?" рдЕрдЧрд░ рд╡реЗ Address рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдкрд╣рд▓реЗ/рдмрд╛рдж рдбрд┐рдлрд╝ рджреЗрдЦрд╛рдХрд░ 10 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрджрд░ рдПрдХреНрдЯрд▒ рдкрд╣рдЪрд╛рди рд▓реЗрдВ, рддреЛ рдЖрдк рдЕрдЪреНрдЫреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг: рдСрдбрд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдХреЗ рд╕рд╛рде рд╕рдкреЛрд░реНрдЯ рд╡рд┐рд╡рд╛рдж рдХрд╛ рд╕рдорд╛рдзрд╛рди

рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЯрд┐рдХрдЯ рдЦреЛрд▓рддрд╛ рд╣реИ: "рдореЗрд░реЗ рдЗрдирд╡реЙрдЗрд╕ рдХрд╛ рдХреБрд▓ рдпреЛрдЧ рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмрджрд▓ рдЧрдпрд╛ред рдореБрдЭреЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЪрд╛рд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ред" рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИтАФрдмрд╢рд░реНрддреЗ рд╡рд╣ рдкрдардиреАрдп рдФрд░ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реЛред

рдЗрдирд╡реЙрдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ, рд╕рдкреЛрд░реНрдЯ рдПрдЬреЗрдВрдЯ History рдЯреИрдм рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╢реЛрд░ рдХреЛ рдШрдЯрд╛рддрд╛ рд╣реИред рд╡реЗ рдкрд┐рдЫрд▓реЗ 7 рджрд┐рдиреЛрдВ рдХрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдФрд░ Discount рдФрд░ Total рдлрд╝реАрд▓реНрдбреНрд╕ рдЪреБрдирддреЗ рд╣реИрдВред рдлрд┐рд░ рд╡реЗ рдПрдХреНрдЯрд▒ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ (рди рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдпрд╛ рдСрдЯреЛрдореЗрд╢рди)ред

рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдЕрдм рддреАрди рд╕реНрдкрд╖реНрдЯ рдПрдВрдЯреНрд░реАрдЬрд╝ рджрд┐рдЦрд╛рддреА рд╣реИ:

  • 2026-01-18 14:12, Actor: Sales Rep, Field: Discount, 10% -> 0%, Reason: "Promo expired"
  • 2026-01-18 14:12, Actor: System, Field: Total, $90 -> $100, Reason: "Recalculated from line items"
  • 2026-01-18 14:13, Actor: Sales Rep, Comment: "Customer requested removal"

рдХрд╣рд╛рдиреА рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреБрд▓ рдЙрд╕реА рдХреЗ рдмрд╛рдж рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реБрдЖред рдПрдЬреЗрдВрдЯ рдЕрдм рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдЯрд╛рдирд╛ рд╕рд╣реА рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдХрдореЗрдВрдЯ рдФрд░ рдкреНрд░рдореЛ рдирд┐рдпрдо рджреЗрдЦрдХрд░ред

рдЕрдЧрд░ рдпрд╣ рдЧрд▓рддреА рдереА, рддреЛ рдПрдЬреЗрдВрдЯ Discount рдлрд╝реАрд▓реНрдб рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд┐рд╕реНрдЯреЛрд░ рдлреНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред UI рдкреНрд░реАрд╡реНрдпреВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓реЗрдЧрд╛ (Discount рд╡рд╛рдкрд╕ 10% рд╣реЛрдЧрд╛, Total рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реЛрдЧреА) рдФрд░ рдиреЛрдЯ рдорд╛рдВрдЧрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • "Discount: 10% -> 0%" рдХреЗ рдкрд╛рд╕ Restore рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
  • рдХрдореЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВ: "Ticket #18421 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ Restore рдХрд┐рдпрд╛ рдЧрдпрд╛ред Promo рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИред"
  • рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдФрд░ рдмрд┐рд▓рд┐рдВрдЧ рдЯреАрдо рдХреЛ рдиреЛрдЯрд┐рдлрд╛рдИ рдХрд░реЗрдВ (рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рднреА)

рдпрджрд┐ рдЖрдк AppMaster (appmaster.io) рдЬреИрд╕рд╛ рдХреЛрдИ рдиреЛ-рдХреЛрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк PostgreSQL рдореЗрдВ рдСрдбрд┐рдЯ рдЯреЗрдмрд▓ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, Business Processes рдореЗрдВ рдСрдбрд┐рдЯ рд░рд╛рдЗрдЯреНрд╕ рд╕реЗрдВрдЯреНрд░рд▓рд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣реА рд╣рд┐рд╕реНрдЯреНрд░реА UI рдкреИрдЯрд░реНрди рд╡реЗрдм рдФрд░ рдореЛрдмрд╛рдЗрд▓ рджреЛрдиреЛрдВ рдкрд░ рд░реАрдпреВрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрд╣рд╛рдиреА рдЬрд╣рд╛рдБ рднреА рдЖрдкрдХреА рдЯреАрдо рдХрд╛рдо рдХрд░реЗ рд╡рд╣рд╛рдБ рдПрдХ рдЬреИрд╕реА рд░рд╣реЗред

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди

Why do users ignore change history in admin panels?

Most people ignore it because itтАЩs hard to scan and full of low-value noise. Make each entry answer four things immediately: who did it, what changed with before/after values, when it happened in a consistent format, and why or from what source it happened.

What changes should we track to make history useful without creating noise?

Log meaningful commits, not every tiny update. Track field edits, status transitions, and key workflow actions, and clearly label whether the actor was a person, an automation, an import, or an API call so system noise doesnтАЩt look like human behavior.

Should we store audit data as events or full snapshots?

Start with an event model that stores only what changed, then optionally add lightweight snapshots if you need fast тАЬstate at time XтАЭ viewing or bulk restore. A hybrid is often best: events for truth and readability, snapshots for performance and multi-field restore cases.

What fields are non-negotiable in an audit record?

A practical minimum is actor identity and type, timestamp in UTC, entity type and ID, a stable field key, and before/after values with a data type. Add optional context like a comment, workflow run ID, import batch ID, or an automation reason so тАЬwhyтАЭ can be answered later.

How do we group multi-field edits so the timeline stays readable?

Use a change set ID to group all field changes from one save or workflow run. Then the UI can show one readable entry like тАЬChanged 5 fieldsтАЭ with an expand view, instead of flooding the timeline with 20 separate rows.

WhatтАЩs the best way to display before/after diffs for different field types?

Default to inline before-and-after on one line, and switch to side-by-side only when wrapping hides the meaningful difference. For long text, show a short excerpt by default and expand on demand while preserving line breaks so it stays readable.

How should we handle time zones in audit history?

Pick one timestamp format and keep storage in UTC, then display in the viewerтАЩs timezone when it matters. If teams work across time zones, show the timezone label next to the displayed time so тАЬwhenтАЭ is unambiguous during support calls.

Which filters actually help people find the right change fast?

Start with a small set that matches real questions: time range, actor, field, change type, and source (manual vs automation/import/API). Set a safe default like тАЬlast 7 daysтАЭ plus тАЬimportant fields,тАЭ and make it obvious how to reveal everything when needed.

How do we make restore actions feel safe and prevent bad rollbacks?

Treat restore as a new, visible edit with strict permissions and a clear preview of what will change. If the current value differs from the event youтАЩre restoring, show the conflict plainly and require a deliberate choice so you donтАЩt overwrite newer work silently.

How can we implement this end to end on AppMaster without missing API or automation changes?

Centralize audit writes in one place so UI edits, API calls, and background jobs all log the same way. In AppMaster, you can model audit tables in PostgreSQL, write audit events from Business Processes, and reuse the same history UI patterns across web and mobile so the story stays consistent.

рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди
рдХреБрдЫ рдмрдирд╛рдПрдВ рдЕрджреНрднреБрдд

рдлреНрд░реА рдкреНрд▓рд╛рди рдХреЗ рд╕рд╛рде рдРрдкрдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
рдЬрдм рдЖрдк рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ рддрдм рдЖрдк рдЙрдЪрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ
рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб-рд╕реНрддрд░реАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ UX | AppMaster